http/1.1 (2) 썸네일형 리스트형 [Java] WAS의 HTTP 버전에 따른 확장성 구현 (2): 요청 메세지 파싱 객체 설계 내가 직접 구현중인 WAS의 HTTP 버전을 공통으로 처리하는 구조에서 요청 메세지의 파싱하는 객체를 설계하고 적용할려고한다. 이때 해당 객체를 설계하고 적용할려는 과정에서 겪게되는 문제를 해결하는 과정을 쓴 글이다. 공통의 구조로 여러 HTTP 버전을 처리할수 있다면, 재사용성과 확장성이 확보되어 유지보수하기 좋을것이다. 여기서 각 객체의 역할은 공통적이어야 한다. 이때 인터페이스를 정의하고 구현체를 외부에서 주입(Dependency Injection)하여, 객체 간의 결합도를 낮추고 코드의 유연성 및 재사용성을 높일수 있다.1. HTTP 버전에 따른 파싱 로직 파악하기WAS의 HTTP 버전에 따른 확장성 구현 (1) - HTTP1.1과 HTTP2.0의 메세지 전송 포맷과 방식 차이 이해에서 HTTP/.. WAS의 HTTP 버전에 따른 확장성 구현(1) - HTTP1.1과 HTTP2.0의 메세지 전송 포맷과 방식의 차이 이해 1. HTTP/1.1과 HTTP/2.0의 메세지 전송 포맷의 차이HTTP/1.1과 HTTP/2.0은 메세지의 전송 포맷과 방식이 다르다. 텍스트 기반의 HTTP/1.1 메시지 포맷HTTP/1.1에서 메세지는 텍스트 기반 메세지이며, header와 body를 CRLF(\r\n)으로 구별한다. 따라서 HTTP/1.1 메세지를 전달 받은 웹 서버는 텍스트 단위로 파싱을 수행해야한다. 바이너리 프레임 기반의 HTTP/2.0 메시지 전송 포맷과 헤더 압축반면, HTTP/2.0에서는 메세지가 바이너리 프레임 단위로 나뉘어 전송되며, header frame와 data frame으로 구분된다. 따라서 바이너리 형식으로 인코딩된 프레임을 전달받은 웹서버는 바이너리 디코딩을 해서 파싱을 해야한다. 그리고 HTTP/1... 이전 1 다음