본문 바로가기

이것저것 스터디📚/CS 스터디

HTTP 1.0과 HTTP 1.1의 차이

커넥션 유지(Persistent Connection)

- HTTP 1.0과 HTTP 1.1의 가장 큰 차이점은 연결의 지속성이다

- HTTP는 기본적으로 TCP를 이용하여 통신하는데, HTTP 1.0은 TCP 세션을 유지하지 않고, HTTP 1.1은 TCP 세션을 유지한다는 큰 차이가 있다

- 즉, HTTP 1.0은 매번 데이터를 요청하고 수신할 때마다 TCP 세션을 맺지만, HTTP 1.1은 한 번의 TCP 세션에 여러 개의 요청을 보내고 응답을 수신할 수 있다

- HTTP 1.0은 Non-persistent HTTP, HTTP 1.1은 Persistent HTTP라고 할 수 있다

HTTP 1.0 vs HTTP 1.1


파이프라이닝(Pipelining)

- HTTP 1.1은 HTTP 1.0과 달리 파이프라이닝 기능을 제공한다

- 파이프라이닝 기능이 없는 경우에는 요청 1,2,3 이 있으면 요청1 -> 응답1 -> 요청2 -> 응답2 -> 요청3 -> 응답3 순서로 진행되며, 응답 1이 없는 경우에는 요청2, 요청3은 진행되지 않는다

- 파이프라이닝 기능이 있는 경우에는 요청 1,2,3을 각각 보낼 수 있고 이에 대한 응답을 받아 순차적으로 처리한다

- 파이프라이닝 기능이 있으면 응답 속도를 높혀 페이지 뷰의 속도를 빠르게 할 수 있다


호스트 헤더(Host Header)

- HTTP 1.0 환경에서는 하나의 IP에 여러 개의 도메인을 운영할 수 없다

- 즉, 도메인마다 IP를 구분해서 준비해야하고, 도메인만큼 서버의 개수도 늘어난다

 

- HTTP 1.1은 Host 헤더의 추가를 통해 가상호스팅(버츄얼 호스팅)이 가능해졌다

- 요청의 Host 헤더를 사용하여 어떤 도메인에 대한 요청인지 식별한다

- 가상 호스팅 : 하나의 서버에 여러 개의 도메인 이름을 호스팅하는 방식


강력한 인증 절차(Improved Authentication Procedure)

- HTTP 1.1에서는 다음 2개의 헤더가 추가되었다

- proxy-authentication

- proxy-authorization

 

* GPT 답변

HTTP 1.1에서 추가된 `proxy-authentication`과 `proxy-authorization`는 HTTP 프록시 서버와의 인증을 위한 헤더 및 인증 프로토콜입니다

1. Proxy-Authentication 헤더:
   - `Proxy-Authentication` 헤더는 클라이언트가 프록시 서버에 대한 인증 정보를 담고 있습니다.
   - 클라이언트가 프록시 서버에 요청을 보낼 때, 해당 요청에 `Proxy-Authentication` 헤더를 포함하여 프록시 서버에 대한 사용자 인증을 수행합니다.
   - 이 헤더는 클라이언트가 프록시 서버와의 연결을 설정하기 전에 프록시 서버에 자신의 신원을 인증하는 데 사용됩니다.

2. Proxy-Authorization 헤더:
   - `Proxy-Authorization` 헤더는 프록시 서버에서 클라이언트로부터 받은 `407 Proxy Authentication Required` 응답에 포함됩니다.
   - 이 응답은 클라이언트에게 프록시 서버로의 요청을 수락하기 위해 사용자 인증이 필요하다고 알려줍니다.
   - 클라이언트는 이 응답에 포함된 `Proxy-Authorization` 헤더를 사용하여 자신의 인증 정보를 프록시 서버에게 제공하고, 이를 통해 프록시 서버와의 연결을 인증하고 요청을 다시 보낼 수 있습니다.

이 두 헤더는 보안 및 인증 관련 목적으로 사용되며, 클라이언트와 프록시 서버 간의 통신을 안전하게 하고 허가된 사용자만이 프록시 서버를 통해 리소스에 접근할 수 있도록 합니다.


* 정리

- HTTP 1.0과 HTTP 1.1의 차이점은 4가지입니다. 첫 번째로 HTTP 1.1은 1.0과 달리 TCP 커넥션을 유지합니다. 따라서, HTTP 1.1을 Persistent Connection이라고 합니다. 두 번째로는 HTTP 1.1은 파이프라이닝 기능을 제공합니다. 파이프라이닝 기능을 사용하면, 많은 요청을 순차적으로 요청-응답으로 진행되는 것이 아닌, 각각의 요청에 대해 각각의 응답을 받아 처리할 수 있어 응답 속도를 높힐 수 있습니다. 세 번째로는 HTTP 1.1은 호스트 헤더가 추가되어, 하나의 IP에서도 여러개의 도메인을 운영할 수 있게 되었습니다. 네 번째로는 HTTP 1.1에서는 proxy-authentication, proxy-authorization 이라는 두 개의 헤더가 추가되어 인증 절차가 HTTP 1.0보다 강화되었습니다.


참고 : https://code-lab1.tistory.com/196

https://withbundo.blogspot.com/2021/02/http-http-10-http-11.html

'이것저것 스터디📚 > CS 스터디' 카테고리의 다른 글

HTTP 헤더 구조  (0) 2023.09.25
HTTPS 인증서를 받아오는 방식  (0) 2023.09.18
Proxy와 Reverse Proxy의 차이는?  (0) 2023.09.18
HTTP 프로토콜  (0) 2023.09.11
3-way handshake, 4-way handshake  (0) 2023.09.11