HTTP(Hyper Text Transfer Protocol)는 인터넷에서 주로 사용하는 데이터를 송수신하기 위한 프로토콜이다.
HTTP의 변환점 중 가장 큰 부분이 HTTP 1.0 -> HTTP 1.1과 HTTP 1.1 -> HTTP 2.0로의 발전이다.
해당 포스팅에서는 HTTP 1.0과 HTTP 1.1의 차이에 대해서 알아보자.
1. 지속성
HTTP 1.0과 HTTP 1.1의 가장 큰 차이점은 지속성이다. 그렇다. 바로 Connection: Keep-alive
속성이다.
HTTP 1.0에서 요청하고 수신할 때마다 새로운 TCP 세션을 맺어야 한다.
반면, HTTP 1.1부터는 TCP 세션을 한 번만 맺으면 여러 개의 요청을 보내고 응답을 수신할 수 있다.
결과적으로 TCP 세션을 처리하는 비용을 줄이고 응답속도를 개선할 수 있게 된다.
(HTTP 1.0에도 지속 커넥션이 있었지만 다소 실험적이여서 여러가지 문제가 있었다. 이는 HTTP 1.1에서 개선 되었고 지속 커넥션이 default로 활성화되었다.)
2. 파이프라이닝
HTTP 1.0과 HTTP 1.1의 큰 차이 중 하나가 파이프라이닝 기능의 유무이다.
HTTP 1.0 환경에서는 요청에 대한 응답이 와야 다음 응답을 보낼 수 있다.
반면, HTTP 1.1에서는 요청을 병렬로 처리할 수 있는 파이프라이닝(Pipelining) 기능을 지원한다.
결과적으로 HTTP 1.1에서는 여러 개의 요청을 처리하는 응답 속도가 훨씬 빨라지게 된다.
3. 호스트 헤더
HTTP 1.0 환경에서는 하나의 IP에 하나의 도메인만 운영할 수 있었다.
(도메인을 여러 개 사용하려면 서버를 늘려야 한다.)
HTTP 1.1에서는 웹서버에서 요청 Header에 Host를 전달받아 서버로 보내주는 가상 호스팅이 가능해졌다. 즉, 서버 1대가 여러 개의 Host를 담당할 수 있다. (HTTP 1.1 부터는 Header에 Host가 없으면 400을 응답한다.)
4. 프록시 인증
HTTP 1.1 부터 다음의 헤더가 추가되었다.
- Proxy-Authentication
- Proxy-Authorization
HTTP 1.0 에서 클라이언트 인증을 담당하는 www-authentication 헤더는 요청 사이에 프록시가 있을 경우 인증 인가를 수행할 수 없었다.
추가
HTTP 1.1과 HTTP 2.0의 차이를 포스팅한 내용은 아래 링크에서 확인이 가능합니다.
참고
'Operation > Network' 카테고리의 다른 글
Network - HTTP 1.1과 HTTP 2.0의 차이 (4) | 2022.09.29 |
---|---|
Network - Proxy와 Gateway의 차이! (0) | 2022.09.29 |
CORS 총정리!! (+ Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true 해결) (0) | 2022.04.22 |
DNS round robin 방식 장/단점과 해결방안! (0) | 2022.04.21 |
API - CSV(엑셀 파일) 내보내기 성능 개선 및 부하 테스트 (0) | 2022.04.16 |