[그림HTTP] 엔티티 헤더 필드

박상준·2023년 7월 21일
0

Allow

  • 클라이언트에게 서버에서 지원하는 HTTP 메서드 (GET , HEAD) 를 알려준다.
  • 클라이언트가 서버에서 지원하지 않는 메서드를 사용하려고 하면, 서버는 405 Method Not Allowed 응답과 함께 지원하는 메서드 목록을 Allow 헤더 필드에 담아 반환.
Allow: GET, HEAD

**Content-Encoding**

  • 서버가 엔티티 본문에 적용한 콘텐츠 인코딩 방식 정의
  • 역할
    • 엔티티 정보를 압축하거나 변환하는 등의 작업 지시
  • 예시
    • gzip, compress, deflate, identity..

      Content-Encoding: gzip <- 이 방식으로 압축해뒀음

**Content-Language**

  • 엔티티 본문에 사용된 언어
  • 예시
    Content-Language: en

**Content-Location**

  • 메시지 본문에 해당하는 URI 를 나타냄.
  • 왜 사용함?
    • 클라이언트가 요청한 원본 리소스와 서버가 반환하는 리소스가 항상 같은 것이 아니다.
    • 서버가 다국어 지원을 하는 경우, 클라이언트의 Accept-Language 헤더에 따라 다른 언어 버전의 리소스를 반환가능
    • Content-Location 헤더는 클라이언트가 실제로 받은 리소스 위치를 알려줌.

Content-MD5

  • 개요

    • HTTP 메시지 바디 무결성 검증시 사용,
  • 원리

    1. 송신자
      • 메시지 바디에 MD5 해시 알고리즘 사용하여 얻은 이진값을 Base64 인코딩 ⇒ 필드 값에 기록.
    2. 수신자
      • 동일한 MD5 알고리즘으로 메시지 바디의 해시 값을 계산
      • Content-MD5 헤더의 값과 비교하여 메시지 바디가 변경되지 않았음을 확인 가능.
  • 예시

    • 서버가 전송한 메시지 바디에 대한 MD5 해시 값이

      OGFkZDUwNGVhNGY3N2MxMDlwZmQ4NTBmY2lyTY== 인 경우
      Content-MD5: OGFkZDUwNGVhNGY3N2MxMDlwZmQ4NTBmY2lyTY==

      로 표현

      단점

    1. 고의적인 변조를 검출할 수 없다

      우발적인 데이터 변경 감지에 유용함. 하지만, 고의적인 데이터 변조 즉, 악의적인 사용자가 콘텐츠를 변조하고 MD5 해시를 재계산하여 헤더를 업데이트하면, 변조 확인 불가능

    2. 성능 저하

      MD5 해시 계산 자체가 CPU 자원의 소모임

      대용량 본문은 비효율적임

    3. MD5 자체의 약점

      오래된 해시 알고리즘이기에, 요즘 사용하지 않음

Content-Range

  • 개요
    • 서버가 클라이언트의 범위 요청에 응답하는 경우 사용
  • 예시
    Content-Range: bytes 5001-10000/10000
    5001 바이트 ~ 10000번쨰 바이트까지 서버가 보낸 경우

**Content-Type**

  • 개요

    • HTTP 메시지 본문이 어떤 형식으로 인코딩되었는지 나타냄.
    • 클라이언트에게 본문 데이터를 어떻게 해석해야하는지 알려줌
  • 예시

    
    Content-Type: text/html; charset=UTF-8

    UTF-8 로 인코딩된 html 임을 알 수 있음.

**Expires**

  • 개요
    • HTTP 응답의 유효 기간을 나태냄
    • 캐시된 복사본이 얼마나 유효한지 결정하고, 시간이 지나면 캐시 서버는 오리진 서버에서 새로운 데이터를 가져와야함
  • 예시
    Expires: Wed. 04 Jul 2023 08:26:05 GMT
    2023년 7월 4일 8:26:05 까지 유효한 응답

**Last-Modified**

  • 개요
    • 리소스가 마지막으로 수정된 시간
    • 캐싱 매커니즘과 조건부 GET 요청 수행시 사용
  • 예시
    Last-Modified: Wed, 23 May 2023 09:59:55 GMT
    2023년 5월 23일 09 59 55 에 마지막으로 수정된 리소스임을 알려줌.
profile
이전 블로그 : https://oth3410.tistory.com/

1개의 댓글

comment-user-thumbnail
2023년 7월 21일

가치 있는 정보 공유해주셔서 감사합니다.

답글 달기