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

HTTP 헤더(4) - 리스폰스 헤더 필드

볼륨조절불가 2024. 3. 1. 15:55
728x90

 

 

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

 

 


 

 

Accept-Ranges

Accept-Ranges: bytes
  • 서버가 레인지 리퀘스트를 처리할 수 있는지 여부를 전달하는 헤더 필드
  • 지정 가능한 값
    • bytes: 수신(처리) 가능
    • none: 불가능

 

 


 

 

Age

Age: 600 (단위: 초)
  • 얼마나 오래 전에 오리진 서버에서 리스폰스가 생성되었는지 전달
    • 리스폰스한 서버가 캐시 서버라면→캐시된 리스폰스의 유효성 확인했던 때로부터 지금까지 흐른 시간 전달

 

 


 

 

ETag

ETag: "fsjadaskfjdsajdflkjasdlfk"
  • 리소스를 특정하기 위한 문자열(엔티티 태그-ETag)을 전달

ETag 설명

  • 서버는 리소스마다 ETag 값을 할당
  • 리소스가 갱신될 때마다 ETag 값 갱신
  • ETag 값 생성에는 규칙이 없고, 서버에 따라 다양한 값 할당 가능
  • 똑같은 이름의(URI가 동일한) 여러 리소스를 구분할 때에도 ETag 값으로 특정
    • 어느 문서의 한글판, 영어판 리소스를 구분할 때

강한 ETag 값

ETag: "rkskekfk"
  • 엔티티가 아주 조금 달라지더라도 값이 변화

약한 ETag 값

ETag: W/"asdfasdf"
  • 리소스가 같다는 것만을 의미
  • 의미가 다른 리소스로 그 차이가 있는 경우에만 ETag 값 변화
  • 값의 앞부분에 W/가 붙음

 

 


 

 

Location

Location: http://www.youtube.com
  • 리스폰스의 수신자에 대해 리퀘스트 URI 이외의 리소스 액세스를 유도하는 경우에 사용
    • 클래스 3xx(Redirection)에 속한 리스폰스에 대해 리다이렉트할 위치의 URI를 표시
  • 브라우저: Location 헤더 필드를 포함한 리스폰스 수신하면, 강제로 리다이렉트하는 곳의 리소스에 액세스 시도

 

 


 

 

Proxy-Authenticate

Proxy-Authenticate: Basic realm="Usagidesign Auth"
  • 프록시 서버에서의 인증 요구를 클라이언트에 전달
  • WWW-Authenticate 헤더 필드와 비슷한 기능이지만, 프록시와 클라이언트 사이의 인증이란 점에서 다름

 

 


 

 

Retry-After

Retry-After: 120 (단위: 초)
  • 클라이언트가 일정 시간 후에 리퀘스트를 수행하라고 전달하는 헤더 필드
  • 주로 상태 코드 503 Service Unavailable 리스폰스나 3xx Redirect 리스폰스와 함께 사용
  • 값으로는 날짜, 정수(단위: 초) 지정 가능

 

 


 

 

Server

Server: Apache/2.2.17(Unix)
  • 서버에 설치된 HTTP 서버의 소프트웨어 정보를 전달
    • 서버의 이름, 버전, 옵션 등

 

 


 

 

Vary

Vary: Accept-Language
  • 캐시 컨트롤 목적으로 사용
  • 오리진 서버가 프록시 서버에 전달
    • 로컬 캐시를 사용하는 방법에 대한 지시 정보-헤더 필드 명을 값으로 가짐

작동 방식

  1. 리퀘스트를 받은 프록시가 서버에 리퀘스트 요청
  2. 오리진 서버가 Vary 헤더 필드가 담긴 리스폰스를 프록시에 전달
    1. 리스폰스에서 Vary로 지정한 리퀘스트 헤더 필드의 값이 이후에 프록시가 요청한 헤더의 값과 동일하면 캐시된 리소스를 반환하라고 지시
  3. 이후 프록시는 서버가 지시한 헤더 필드 값을 가진 리퀘스트에 대해서만 캐시 반환
    1. 같은 리소스에 대한 리퀘스트더라도, Vary로 지정된 헤더 필드의 값과 동일하지 않으면 오리진 서버로부터 리소스 반환

 

 


 

 

WWW-Authenticate

WWW-Authenticate: Basic realm="Usagidesign Auth"
  • HTTP 액세스 인증 요구에 사용
  • 인증 스키마와 파라미터 전달
  • 상태 코드 401 Unauthorized 리스폰스에 반드시 포함
  • 자세한 내용은 7장에서 다룰 예정
728x90