백엔드 공부 메모/네트워크

HTTP 헤더(5) - 엔티티 헤더 필드

볼륨조절불가 2024. 3. 1. 16:19
728x90

 

 

 

* 해당 게시글은 <그림으로 배우는 Http&Network Basic>을 읽고 정리하면서 공부하기 위해 메모하듯 작성하는 글입니다.

 

 


 

 

Allow

Allow: GET, HEAD
  • 리퀘스트 URI에 지정된 리소스가 제공하는 메소드 전달
  • 서버가 받을 수 없는 메소드를 수신한 경우→405 Method Not Allowed 리스폰스와 함께 수신 가능한 메소드 정보 적힌 Allow 헤더 필드 전달

 

 


 

 

Content-Encoding

Content-Encoding: gzip
  • 서버가 엔티티 바디에 대해 적용한 콘텐츠 코딩 형식 전달

사용되는 콘텐츠 코딩 형식

  • gzip
  • compress
  • deflate
  • identity

 

 


 

 

Content-Language

Content-Language: en
  • 엔티티 바디에 사용된 자연어(한국어나 영어 등) 정보 전달

 

 


 

 

Content-Length

Content-Length: 15000 (단위: 바이트)
  • 엔티티 바디의 크기를 바이트 단위로 전달
엔티티 바디에 전송 코딩이 실시된 경우, Content-Length 헤더 필드를 사용할 수 없음
 
 

 
 

Content-Location

Content-Location: http://www.hackr.jp/index-ja.html
  • 메시지 바디로 변환된 리소스의 URI 전달
    • Location 헤더 필드와 다름
  • 콘텐츠 네고시에이션에 의해 클라이언트가 요구한 리소스와는 다른 리소스를 반환할 때 사용
<Content-Location 헤더 필드가 사용되는 상황>

hackr.jp를 요청하는데 일본어로 요청(브라우저가 일본어판인 경우 등)
→hackr.jp/index-ja.html의 리소스가 반환될 때 Content-Location 헤더 필드에 콘텐츠 네고시에이션 결과로 나온 URI 명시

 

 


 

 

Content-MD5

Content-MD5: ASLJKFSfasfKSFLasDFKSFDLKAFLKJ==
  • 메시지 바디가 변경되지 않고 도착했는지 확인하기 위한 목적으로 사용
  • MD5 알고리즘에 의해 생성된 값을 전달
    • 메시지 바디에 MD5 알고리즘을 적용해 얻은 128비트의 바이너리 값에 Base64 인코딩을 한 결과를 필드에 기록
  • 값의 유효성 확인 위해 클라이언트 측에서 메시지 바디에 같은 MD5 알고리즘 실행해 나온 값과 필드 값 비교→메시지 바디가 바뀌지 않았는지 확인 가능
  • 악의를 가지고 MD5 값까지 바꿔버린 경우라면, 변조 여부를 알 수 없음
    • 컨텐츠 변경 후 MD5 알고리즘을 적용한 값을 필드값으로 변조한 메시지를 보내면 클라이언트 측에서는 메시지 바디에 MD5 알고리즘을 적용한 값과 해당 필드 값이 동일하다고 생각하게 되므로

 

 


 

 

Content-Range

Content-Range: bytes=5001-10000/10000
  • 레인지 리퀘스트에 대해 응답할 때 사용
  • 리스폰스로 보낸 엔티티가 어느 부분에 해당하는지를 나타냄

 

 


 

 

Content-Type

Content-Type: text/html; charset=UTF-8
  • 엔티티 바디에 포함되는 오브젝트의 미디어 타입 전달
  • Accept 헤더 필드와 같이, 필드 값은 “타입/서브 타입”으로 기록
  • chaset 파라미터
    • “iso-8859-1”이나 “euc-kr” 등의 문자셋 지정

 

 


 

 

Expires

Expires: Wed, 04 Jul 2012 08:26:04 GMT
  • 리소스의 유효 기한 일시를 전달
  • 캐시 서버가 Expires 헤더 필드를 포함한 리소스를 수신한 경우 필드 값으로 지정된 날짜까지 리스폰스의 복사본 유지, 리퀘스트에는 캐시로 응답
    • 지정 날짜가 지난 경우, 리퀘스트가 온 단계에서 오리진 서버에 리소스 얻으러 감
  • 오리진 서버가 캐시 서버에 캐시되는 것을 원하지 않을 경우, Date 헤더 필드 값과 동일하게 Expires 헤더 필드 값을 설정
  • Cache-Control 헤더 필드의 max-age 디렉티브가 더 우선적으로 적용(Expires 무시당할 수 있음)

 

 


 

 

Last-Modified

Last-Modified: Wed, 04 Jul 2012 08:26:04 GMT
  • 리소스가 마지막으로 갱신되었던 날짜 정보 전달
  • 기본적으로 리퀘스트 URI로 지정된 리소스의 갱신 날짜이지만, CGI 등의 스크립트로 동적인 데이터를 다룰 경우 그 데이터의 최종 갱신 날짜가 또 갱신되는 경우 존재
728x90