HTTP Version
- 네트워크 - OSI 7 계층과 TCP/IP 5계층
- 네트워크 - HTTP
- 네트워크 - HTTP Version
- 네트워크 - HTTP 메시지 구조
- 네트워크 - HTTPS
- Post not found: computer-science/network/tcp
HTTP/0.9
- 간단하게 HTML 객체 를 받아오기 위해 만들어진 프로토콜이다.
- 때문에 GET메서드 만을 지원한다.
- 멀티미디어 콘텐츠에 대한 MIME 타입이나, HTTP 해더, 버전 번호는 지원하지 않는다.
HTTP/1.0
- 버전 번호, HTTP 헤더, 추가 메서드, 멀티미디어 객체 처리를 추가했다.
- 웹페이지와 상호작용하는 폼을 실현
- 하나의 커넥션에 하나의 요청과 하나의 응답만 가능
요청
GET /greeting |
응답
200 OK |
HTTP/1.0+
- keep-alive 커넥션
- 가상 호스팅 지원
- 프록시 연결
- 요청마다 connection을 해줘야 한다.
HTTP/1.1
- HTTP 의 첫번째 표준 버전
- HTTP/1.1은 HTTP 설계의 구조적 결함 교정, 두드러진 성능 최적화 잘못된 기능제거에 집중
- Persistent Connection 도입
- 파이프 라이닝 기법 도입
- Head Of Line Blocking 문제가 있음
- domain sharing 방식
PipeLining 기법
하나의 커넥션에 다수의 Request 와 Response 를 받을 수 있는 기법
Head Of Line Blocking
앞선 요청에 대한 처리가 늦어지면 다음 요청들에 대한 처리들도 다 늦어진다.
HTTP/2.0
기존 HTTP 를 개선 및 성능 향상에 초점을 맞춘 프로토콜
- HTTP/1.1 성능 문제를 개선하기 위해 구글의 SPDY 프로토콜을 기반으로 설계가 진행중인 프로토콜
- 멀티플렉싱 을 통해 latency를 줄이고
- 해더 압축을 통해 중복된 해더 값을 없애 Overhead를 최소화 (허프만 인코딩 사용)
- 서버 푸시 기능을 지원한다.
- Client 가 요청하지 않은 자원을 서버에서 보내준다.
HTTP/2.0 프로토콜과 HTTP/1.1의 차이점
- HTTP/1.1은 기본적으로 Connection당 하나의 요청을 처리하도록 설계
- 동시 전송이 불가능하고 요청과 응답이 순차적으로 이루어진다.
- HTTP 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비래해 레이턴시가 길어진다.