본문 바로가기
네트워크

HTTP Version

by Royal! 2022. 8. 29.
728x90
반응형

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)

 

 

728x90
반응형

최근댓글

최근글

Royal! © 2024