1. 프레임
- R : 예약된 2비트. 값의 의미가 정의되어 있지 않으며 0이 어야한다.
- 길이 : 페이로드의 길이를 나타내는 14비트 무부호 정수. 프레임 헤더는 포함되지 않는다
- 종류 : 프레임의 종류
- 플래그 : 8비트 플래그. 프레임의 종류에 따라 값이 다르다
- R : 예약된 1비트
- 스트림 식별자 ; 31비트. 특별히 0은 커넥션 전체와 연관된 프레임을 의미한다
2. 스트림과 멀티플렉싱
- 하나의 커넥션에 여러 개의 스트림이 동시에 열릴 수 있다
- 우선순위도 가질 수 있다.
- 31비트의 무부호정수로 된 고유한 식별자를 갖는다
- 서버와 클라이언트는 스트림을 상대방과 협상 없이 일방적으로 만든다
3. 헤더 압축
- 헤더는 HPACK명세에 정의된 헤더 압축 방법으로 압축한 뒤 '헤더 블록 조각'들로 쪼개져서 전송된다
- 받는 쪽에서는 이 조각들을 이은 뒤 압축을 풀어 원래의 헤더 결합으로 복원한다
4. 서버 푸시
- 서버가 하나의 요청에 대해 응답으로 여러 개의 리소스를 보낼 수 있도록 한다
- 리소스를 푸시하려는 서버는 먼저 클라이언트에게 자원을 푸시할 것임을 PUSH_PROMISE 프레임을 보내어 미리 알려주어야 한다.
- 클라이언트는 RST_STRAM프레임을 보내어 푸시를 거절 할 수 있다.
- 서버 푸시를 끄고 싶다면 SETTINGS_ENABLE_PUSH를 0으로 설정한다
5. 보안 이슈
- 중개자 캡슐화 공격
- HTTP/2.0 메시지를 중간의 프락시가 HTTP/1.1 메시지로 변환할 때 메시지의 의미가 변질될 가능성이 있다
- 긴 커넥션 유지로 인한 개인정보 누출 우려
'Study' 카테고리의 다른 글
[HTTP 완벽 가이드] 12장 : 기본 인증 (0) | 2021.01.18 |
---|---|
[HTTP 완벽가이드] 11장 : 클라이언트 식별과 쿠키 (0) | 2021.01.15 |
[HTTP 완벽 가이드] 9장 : 웹 로봇 (0) | 2021.01.13 |
[HTTP 완벽 가이드] 8장 : 통합점-게이트웨이, 터널, 릴레이 (0) | 2021.01.12 |
[HTTP 완벽 가이드] 7장 : 캐시 (0) | 2021.01.11 |