HTTP 2.0 에 대하여...
- HTTP 2.0 등장배경
- HTTP 2.0 특징
- 정리
https://github.com/itdar/TIL/commit/533167fb17d0c7d0a25ec6dcc9f905778a5b93fd
1. HTTP 2.0 등장배경 (2015)
- 과거의 웹 요청 및 전송속도에 쓰던 전송기술이 현대와 맞지 않음
- HTTP 1.1 이 1999년도에 나온 후 웹 전송기술의 표준이 게속 유지되었음
- 옛날의 웹 요청과 다르게 최근에는 요청의 횟수와 요청 리소스 용량도 많아짐
- 전송속도도 옛날에 비해 100배 이상 빨라지게 됨
2. HTTP 2.0 특징
- 바이너리 프로토콜
- 텍스트가 아닌 Binary 프레임으로 구성
- 파싱이 더 빠르고 오류 발생 가능성이 낮음
- HEADERS frame(헤더), DATA frame(바디) 으로 구성됨
- 텍스트가 아닌 Binary 프레임으로 구성
- 멀티플렉싱
- 하나의 TCP Connection 내에서 다수의 Stream 생성
- 하나의 요청이 지연되면 나머지 응답도 늦어지는(HOL) HTTP Pipelining 과 다르게 각각의 요청/응답을 독립적으로 처리
- 다수의 요청/응답을 동시에 처리 가능
- 프레임마다 관련된 요청 순서번호 (Stream #) 을 기재해서 요청 순서에 상관없이 데이터 전송 가능 (하나의 TCP 세션 사용)
- 헤더 압축
- 반복적으로 사용되는 헤더를 헤더 테이블 내의 인덱스로 표기
- 헤더 크기를 80% 정도 줄임
- 이전 헤더 내용을 테이블에 저장, 다음 요청에서 동일 헤더 사용 시 테이블 인덱스 번호만 사용함
- 반복적으로 사용되는 헤더를 헤더 테이블 내의 인덱스로 표기
- 우선순위 설정
- Stream 별로 우선 순위를 지정
- 중요한 리소스의 처리 지연을 방지
- Stream 별로 우선 순위를 지정
- 서버 푸시
- 클라이언트가 요청하지 않아도 필요가 예상되는 리소스를 서버가 미리 전송함 (추가 프로그래밍 필요)
3. 정리
- 변화된 웹서비스 및 네트워크 환경에 맞게 15년여만에
HTTP 표준 개정 - HTTP 2.0을 통해 웹서비스 성능 향상을 기대
- 다만, 환경에 따라서는 오히려 성능 저하가 올 수 있음
- 웹서비스 최적화 기법의 재검토가 필요
- 주요 브라우저의 h2(https) only 정책으로 인해 기존 웹서비스에 대한 수정/보완 작업이 필요
Reference
'Programming' 카테고리의 다른 글
HTTP 메시지에 관하여.. (HTTP/1.1 기준) (0) | 2022.08.19 |
---|---|
MySQL vs Cubrid, 차이에 관하여... (0) | 2022.08.04 |
DispatcherServlet 에 관하여... (스프링 디스패처서블릿) (0) | 2022.07.22 |
GRASP 책임할당패턴에 대하여... (0) | 2022.07.19 |
HTTPS 에 관하여.. (0) | 2022.07.13 |