[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 이해하기 2편] HTTP/1.1은 무엇이고, 실제로 어떻게 동작할까
Today Key : HTTP/1.1, Request, Response, Header, Keep-Alive, Persistent Connection, PipeliningHTTP는 웹에서 리소스를 가져오기 위한 프로토콜이고, 브라우저 같은 클라이언트가 요청을 보내면 서버가 응답을 돌려주는 구조로 동작합니다. RFC 9110은 HTTP를 상태를 저장하지 않는 stateless한 애플리케이션 계층 프로토콜로 설명하고, RFC 9112는 그중에서도 HTTP/1.1이 메시지 문법, 파싱, 연결 관리 방식을 어떻게 표현하는지를 정의합니다.이번 포스팅에서는 HTTP/1.1의 구조와 흐름을 먼저 잡아두고, 이후 HTTP/2와의 차이를 볼 준비를 해봅니다.HTTP/1.1의 기본 구조, 메시지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을 메시지 문법, 메..