HTTP Version은 4가지로 나눠집니다.
- HTTP 0.9
- HTTP 1.0
- HTTP 1.1
- HTTP 2.0
0.9 버전은 현재 거의 사용하지 않습니다. 현재 가장 많이 사용하고 있는 Version은 HTTP 1.1입니다.
1.0과 1.1 사이에는 많은 차이가 있지만 , 1.0에 중요 부분들이 1.1에도 포함 돼 있습니다.
HTTP 1.1 주요 기능
Pesistent Connections(multiple Requests-Response pairs in a single TCP Connection)
1.0에서 Keep - Alive Header를 지원하지만 1.1 Vesion에서는 Default 값으로 지정돼 있습니다.
Caching
1.0에서는 Expire Header 를 사용하여 시간 동기화가 제대로 되지 않아 오래된 콘텐츠가 불러 오는 경우가 있었습니다.
해당 문제를 해결하기 위해 1.1 Version에서는 ETags와 Max Age Header를 추가하여 이슈를 해결했습니다.
(ETag :시간 관련된 Header로 컨텐트 정보가 업데이트 됐는 지 확인하는 Header)
(출처: w3.org/https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html)
Chunking
Chunking은 HTTP 서버 응답성을 향상시키기 위해 사용하는 기술입니다. Chunking은 서버가 외부 소스에서 동적 콘텐트를 가져와야 하는 상황을 방지하고 서버가 Content-Length Header를 계산할 수 있도록 모든 콘텐트를 수신할 때까지 클라이언트에 응답 전송을 지연시킵니다.
(출처 : F5/https://support.f5.com/csp/article/K5379)
Compression
1.1 Vesion은 압축을 지원합니다. (gzip 또는 Deflate 등)
HTTP Header
HTTP 1.1 Version을 사용하려면 Request에 Host Header가 포함돼야 합니다. 보통 Header는 이름/값으로 나타납니다.
빨강 - Header의 이름
파랑 - Header의 값
Client와 서버 공통적으로 사용하는 Header
General Header | Purpose |
Connection | 위에 언급한 Pesistent Connect를 위해, 즉 Keep-Alive를 위해서 사용합니다. |
Date | HTTP 메세지가 생성됐을 때 발생합니다. |
Transfer Encoding | 수신자에게 HTTP 메시지를 안전하게 전송하기 위해 실행한 인코딩을 알려줍니다. |
서버에게 받는 Requset Header
Host : 보통 접속하고자 하는 Server의 Hostname 또는 IP
User-Agent : 내가 사용하고 있는 Browser의 정보 등이 나타납니다.
Accept-Encoding : Browser가 인코딩할 수 있는 종류들을 나타냅니다.
Cache Control Header
Public vs Private
No-Cache and No-Store
(출처: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Cache-Control)
'네트워크' 카테고리의 다른 글
HTTP 버전 프로토콜에 따른 기능 차이 (0) | 2023.10.25 |
---|---|
"이 사이트 보안 인증서에 대한 해지 정보를 사용할 수 없습니다" 해결방법 (0) | 2023.03.03 |
HTTP method type (GET, HEAD, POST, PUT, DELETED, CONNECT, TRACE) (0) | 2022.08.18 |
DHCP 취약점 및 공격 대응 방법 (0) | 2022.05.31 |
Wireshark] 필터링(수집)/컬러링/표와 그래프 작성/분석/ (0) | 2022.04.05 |