WAS의 Thread와 MultiThread 이해
·
Web
ThreadThread란 프로세스 내부에서 실행되는 작은 작업 단위로 애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 말한다. Java에서 main method를 실행하면 main이라는 이름을 가진 Thread가 실행되며 하나의 Thread는 한번에 하나의 코드 라인만 수행한다. 만약 동시 처리가 필요하다면 Thread를 추가적으로 생성 해야한다. Servlet 객체의 호출클라이언트에서 Request가 전달되면 Thread가 Servlet 객체를 호출한다. 그림에서 Example Servlet을 호출하는 무언가는(그림에서 물음표) Thread이다. Single Thead일 때 단일 요청단일 Thread에 요청이 하나일 때 동작 과정은 다음과 같다.클라이언트 요청 및 TCP/IP 연결Thread 할당..
Servlet
·
Web
ServletServlet은 HTTP 프로토콜 기반 요청 및 응답을 처리하는데 사용된다. JAVA에서 Servlet은 HttpServlet 클래스를 상속받아 구현되며, 웹 애플리케이션 개발의 핵심 기술 중 하나이다. Servlet의 역할서버에서 요청에 대한 동작 과정은 다음과 같다.서버와 TCP/IP 연결HTTP Request Message 필요한 형태로 변환하여 읽기HTTP Method 및 URL 분석HTTP Header 분석HTTP Message Body 읽기 및 변환분석한 결과를 통해 프로세스 실행비지니스 로직 실행HTTP Response Message 생성HTTP Start Line 생성Header 생성HTTP Message Body에 응답 데이터를 요청한 형식에 맞춰 응답처리가 불가하다면 예외처..
Web Server와 WAS
·
Web
Web Server웹 서버는 HTTP 기반으로 동작하며 정적 리소스(HTML, CSS, JS, 이미지 등)를 제공한다. Web Server 구조클라이언트의 HTTP 요청에 대해서 서버에 있는 정적 리소스를 HTTP 응답한다. 대표적인 Web Server 대표적인 웹 서버로 Nginx와 Apache가 있다. WAS(Web Application Server)WAS는 HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다. 추가적으로 코드를 실행해서 Application 로직을 수행하고 DB와 상호작용하여 동적 컨텐츠를 생성한다. WAS의 구조 WAS도 정적 리소스를 포함할 수 있다. 대표적인 Web Application ServerTomcat, 스프링 부트에 내장되어 있다. Web Server와 WAS(Web..
Restful API
·
Web
Restful API란 REST를 잘 준수하는 API로 HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 통해 자원을 관리한다. 자원은 고유한 URI로 식별되며, HTTP 메서드를 통해 다양한 작업을 수행한다. 즉, REST 기반으로 서비스 API를 구현한 것으로 HTTP API를 잘 설계하는 규칙이라고 정리할 수 있다. REST란?REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 정보를 주고 받는 것을 의미한다. URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD에 대한 정보를 표현하는 것이다. REST API를 작성하는 방법리소스는 명사를 사용해야 한다.단수가 아닌 복수 형태를 사용해야 한다.만..
HTTP의 이해
·
Web
HTTP(Hyper Text Transfer Protocol)HTTP는 서버와 클라이언트가 서로 데이터를 주고 받기 위해 사용되는 통신 규약이다. TEXT, IMAGE, FILE, HTML, JSON 등 다양한 형태의 데이터가 HTTP를 통해 전송된다. HTTP의 진화 과정HTTP/0.9GET 메서드만 지원HTTP 헤더 없음HTTP/1.0메서드, 헤더, 상태코드가 추가됐다.요청 헤더 : http 버전이 생김응답 헤더 : 상태 코드와 content-type이 생겨 html파일 외 다른 타입의 파일도 전송단기 커넥션 : connection 하나당 1요청, 1응답만 가능HTTP/1.1현재 가장 많이 사용하며, 대부분의 기능이 추가Persistent connection : 지정한 timeout 동안 연속적인 요..