Community

HTTP/1 부터 HTTP/3 까지 알아보기

개발자나 아키텍트등이 기본중의 기본으로 가져가는 HTTP에 대한 개념내용입니다. Chrome을 비롯한 Safari, Firefox등의 브라우저들도 이미 Http/3 프로토콜을 지원하고, 구글,유튜브, 네이버, 페이스북등의 웹사이트등도 지원하고 있습니다. 아래의 상세 내용은 블로그 원문을 참고해주세요~ ^^ HTTP란? - HTTP(HyperText Transfer Protocol): 웹에서 정보를 주고받을 수 있는 프로토콜 1. HTTP/1.0 - 요청에 버전 정보가 붙어서 붙어서 전송되기 시작 - 응답 시작 부분에 상태 코드가 추가됨 - 모든 요청과 응답에 헤더 개념이 추가됨 2. HTTP/1.1 - Connection Keep-Alive (기존 연결에 대해서 handshake 생략가능) - 파이프라이닝 추가, 이전 요청에 대한 응답이 완전히 전송되기 전에 다음 전송을 가능하게 하여 레이턴시를 낮춤 - 청크된 응답 지원(응답 조각) - 캐시 제어 메커니즘 - 언어, 인코딩 타입등을 포함한 컨텐츠 전송 - 동일 IP 주소에 다른 도메인을 호스트하는 기능 가능 (HOST header) * SPDY 구글은 더 빠른 Web을 실현하기 위해 Latency 관점에서 HTTP를 고속화한 SPDY(스피디) 라 불리는 새로운 프로토콜을 구현. SPDY는 HTTP를 대체보다는 HTTP를 통한 전송을 재 정의하는 형태로 구현. SPDY는 실제로 HTTP/1.1에 비해 상당한 성능 향상과 효율성을 보여줬고 이는 HTTP/2 초안의 참고 규격이 됨. 3. HTTP/2 HTTP 2.0은 기존 HTTP 1.1 버전의 성능 향상에 초점을 맞춘 프로토콜, 웹 응답 속도가 HTTP/1/1에 비해 15~50% 향상 - Multiplexed Streams: 여러 파일을 한번에 병렬로 전송 - Stream Prioritization - Server Push: 서버는 클라이언트의 요청에 대해 요청하지도 않은 리소스를 보내줄 수 있게됨 - Header Compression: Header 정보를 압축하기 위해 HPACK 압축방식을 이용 * QUIC QUIC은 Quick UDP Internet Connections 의 약자이며, 구글이 UDP를 기반으로 TCP + TLS + HTTP 의 기능을 구현하는 프로토콜로HTTP/3의 기반 기술이 됨 4. HTTP/3 기존의 HTTP/1, HTTP/2의 TCP기준과 다르게, UDP 기반의 프로토콜인 QUIC 을 사용하여 통신하는 프로토콜. - 보안을 위해 TLS 1.3 암호화가 내장 - QPACK은 HPACK 대신 요청과 헤더를 압축 - QUIC를 통해 빠르고 안정적인 단일 핸드셰이크 연결 제공 - 모든 프레임 헤더와 페이로드(데이터)는 원활한 데이터 전송을 위해 흐름 제어하에 존재

알림

알림이 없습니다