본문 바로가기

http/2

(4)
[HTTP 이해하기 5편] 브라우저와 서버는 HTTP/1.1과 HTTP/2 중 무엇을 어떻게 결정할까 Today Key : HTTPS, TLS, TLS Handshake, ALPN, HTTP/1.1, HTTP/2, h2, h2c, ClientHello, ServerHello이번 포스팅에서는 TLS 핸드셰이크와 ALPN을 중심으로 그 선택 과정의 원리를 정리해봅니다.ALPN, 프로토콜 협상의 핵심이 선택에서 핵심 역할을 하는 것이 ALPN(Application-Layer Protocol Negotiation)입니다.RFC 7301은 ALPN을 같은 TCP나 UDP 포트에서 여러 애플리케이션 프로토콜을 지원할 때, TLS 핸드셰이크 안에서 어떤 프로토콜을 사용할지 정하기 위한 확장으로 정의합니다.클라이언트는 자신이 지원하는 프로토콜 목록을 ClientHello에 넣어 보내고, 서버는 그중 하나를 선택해 응답..
[HTTP 이해하기 4편] HTTP/1.1과 HTTP/2, 무엇이 어떻게 다르고 언제 무엇을 써야 할까 Today Key : HTTP/1.1, HTTP/2, 비교, 연결 관리, 멀티플렉싱, 바이너리 프레이밍, ALPN, Apache httpd, h2, h2cHTTP/1.1, HTTP/2 두 프로토콜은 버전이 달라도 HTTP는 공통된 의미 체계를 공유합니다. RFC 9112는 그 의미를 HTTP/1.1의 메시지 문법과 연결 관리 방식으로 전달하는 방법을 정의하고,RFC 9113은 HTTP/2를 같은 HTTP 의미를 더 효율적으로 표현한 버전으로 설명합니다.두 버전은 전혀 다른 프로토콜이라기보다, 같은 HTTP를 서로 다른 방식으로 실어 나르는 두 개의 구현 모델에 가깝습니다.이번 포스팅에서는 HTTP/1.1과 HTTP/2의 차이와 언제 사용하는지에 대해서 알아봅니다.메시지를 전달하는 방식의 차이HTTP/1..
[HTTP 이해하기 3편] HTTP/2는 무엇이고, HTTP/1.1과 무엇이 달라졌을까 today keys : HTTP/2, 바이너리 프레이밍, 스트림, 프레임, 멀티플렉싱, HPACK, 헤더 압축, TCP, HOL Blocking 지난 글에서 HTTP/1.1을 웹 통신의 기본 기준점으로 살펴봤다면, 이번에는 그다음 단계인 HTTP/2를 볼 차례입니다.HTTP/2는 HTTP를 완전히 새로 만든 프로토콜이 아니라, 기존 HTTP 의미를 더 효율적으로 전달하기 위해 다듬은 버전입니다.RFC 9113은 HTTP/2를 "HTTP semantics의 optimized expression"이라고 설명하고, 같은 연결에서 여러 교환을 동시에 처리하고 헤더 필드를 더 효율적으로 다루도록 설계되었다고 정의합니다.이번 포스팅에서는 HTTP/2의 핵심 구조를 중심으로, HTTP/1.1과 무엇이 달라졌는지를 정..
[HTTP 이해하기 1편] 왜 지금 HTTP/1.1과 HTTP/2를 함께 봐야 할까 today keys : HTTP, HTTP/1.1, HTTP/2, 웹 통신, Apache httpd, TLS, ALPN, 브라우저 협상, 패킷 분석웹 서비스를 운영하다 보면 HTTP라는 단어는 이미 너무 익숙해서 깊게 생각하지 않고 지나가게 됩니다. 브라우저로 웹사이트에 접속하고, 서버가 응답을 반환하는 흐름이 너무 자연스럽기 때문입니다. 그런데 같은 웹 접속처럼 보여도 내부에서는 HTTP/1.1로 동작할 수도 있고 HTTP/2로 동작할 수도 있습니다.이번 포스팅에서는 이 두 프로토콜을 함께 봐야 하는 이유와 앞으로 이 시리즈가 어떤 흐름으로 전개될지를 먼저 정리합니다.HTTP/1.1은 여전히 현재진행형HTTP/1.1은 단순히 "예전 버전"이 아닙니다.RFC 9112는 HTTP/1.1을 메시지 문법, 메..