NetWok/HTTP

캐시와 관련된 HTTP 헤더

Creeper Park 2024. 2. 21. 23:57

검증 헤더

캐시되어 있는 데이터와 서버의 데이터가 똑같은지 검증하는 헤더이다.

Last-Modified : 데이터가 최종 수정된 날짜

ETag : 데이터 리소스의 식별자로 사용되는 해시값으로, 클라이언트와 서버 간에 리소스 변경이 일어났는지 확인하기 위해 사용된다.

클라이언트는 ETag를 이용하여 이후 같은 리소스에 대한 요청을 보낼 때, 서버에 해당 리소스가 변경되었는지를 물어본다.

리소스가 변경되지 않았으면 서버는 304(Not Modified)를 반환하여 리소스를 다시 보내지 않고 클라이언트가 가지고 있는 캐시된 버전을 사용하도록 안내한다.

 

조건부 요청 헤더

Client->Server로 요청이 갈 때, 요청이 특정 조건을 만족하는지 물어보는 헤더이다. 서버에서 리소스를 제공할지 말지 여부를 결정하는데 사용된다.

  1. If-Match: 이 헤더는 요청한 리소스의 ETag 값이 특정 값과 일치할 때에만 요청을 받아들이도록 서버에게 알려줍니다. 일치하지 않는 경우에는 서버는 상태 코드 412(Precondition Failed)를 반환할 수 있습니다.
  2. If-None-Match: 이 헤더는 요청한 리소스의 ETag 값이 특정 값과 일치하지 않을 때에만 요청을 받아들이도록 서버에게 알려줍니다. 일치하는 경우에는 서버는 상태 코드 304(Not Modified)를 반환하여 리소스를 다시 보내지 않고 클라이언트에게 캐시된 버전을 사용하도록 안내합니다.
  3. If-Modified-Since: 이 헤더는 요청한 리소스가 특정 시간 이후에 변경되었을 때에만 요청을 받아들이도록 서버에게 알려줍니다. 변경되지 않은 경우에는 서버는 상태 코드 304(Not Modified)를 반환하여 리소스를 다시 보내지 않고 클라이언트에게 캐시된 버전을 사용하도록 안내합니다.
  4. If-Unmodified-Since: 이 헤더는 요청한 리소스가 특정 시간 이후에 변경되지 않았을 때에만 요청을 받아들이도록 서버에게 알려줍니다. 변경된 경우에는 서버는 상태 코드 412(Precondition Failed)를 반환할 수 있습니다.