was 구현3 JAVA TCP 소켓을 사용하여 HTTP통신이 가능한 WAS 직접 구현하기 -4 Servlet 상속 구조 Servlet의 상속구조를 살펴보면 가장 최상위 인터페이스인 Servlet에서부터 GenericServlet, HttpServlet로 내려와우리가 사용하는 서블릿은 HttpServlet를 상속받아 사용한다. 우선, 가장 최상위 인터페이스인 Servlet의 공식문서를 살펴보면, 아래와 같은 메소드를 가지고있다. 서블릿의 생명주기에 관한 메소드인 init() -> service() -> destroy() 와,기타 Servlet에 대한 정보, 초기화에 필요한 객체(이를테면 DB 커넥션등)들을 가져오는 ServletConfig()가 있다. 즉, 모든 Servlet은 init() -> service() -> destroy() 의 과정을 통해 실행된다는 것을 알수있다. 그런데, Gene.. 2024. 9. 26. JAVA TCP 소켓을 사용하여 HTTP통신이 가능한 WAS 직접 구현하기 -3 클라이언트로부터 받은 메시지를 HTTP 형식에 맞는 Request , Response 객체에 담아 파싱하기 우선 HTTP 메시지 형식에 대해 간단히 알아보면,아래와 같이 Start Line / Header / Body(선택) 로 되어있다. 클라이언트로 부터 TCP 소켓을 사용하여 받아온 메시지를 읽어와 HTTP 형식으로 파싱하기위해실제 HTTP 메시지를 살펴보자. - Start Line은 공백(" ")을 기준으로 구분되며 HttpMethod / URL / HTTP protocol 로 나뉘어져있다. - header는 key : value 형식으로 있으며 start line 다음 줄부터 빈줄(blank line)까지 다양한 header들이 있다.- body는 headers의 빈줄(blank line.. 2024. 9. 24. JAVA TCP 소켓을 사용하여 HTTP통신이 가능한 WAS 직접 구현하기 -2 WAS는 어떤기능을 가지고있어야 하는가? 이전에 알아보았던 Tomcat이 클라이언트의 요청을 받아 관련된 서블릿을 생성해주는 과정을 바탕으로 직접 구현해볼 WAS가 어떠한 기능을 가지고 있어야할지 일종의 기능요구사항들을 작성해보자. 1. 클라이언트의 HTTP 메시지를 수신할수있어야한다. - 해당 HTTP 메시지를 읽고,쓰기쉽도록 적절한 형식으로 파싱할수 있어야한다.2. 수신된 HTTP 메시지(Request)를 누구에게 전달할지 결정할수있도록 Connector가 필요하다. - Connector은 특정 PORT와 특정 프로토콜에 해당하는 커넥터들이 여러개 필요하지만, 여기에서는 HTTP 프로토콜만 다루도록 한다.3. 전달받은 Request를 처리해줄 일종의 Servlet 기능을 제공해야한다. .. 2024. 9. 19. 이전 1 다음