오랜 시간 동안 http를 썼지만 정식 용어를 모를 때가 많다.


HTTP는 HTTP 응답에서 Last-Modified라는 이름의 헤더를 제공한다. 


Last-Modified 헤더는 데이터가 마지막으로 변경된 시기를 의미한다. Last-Modified 헤더는 피드의 updated 필드의 기능을 대신한다.



클라이언트는 HTTP 헤더의 값을 저장한다. 

그리고 HTTP GET 요청에 클라이언트는 GET 요청과 함께 If-Modified-Since 헤더에 읽기 값을 보낸다. 데이터가 변경되었다면 서버는 HTTP 304(변경 되지 않음) 상태 코드를 응답한다. 그리고 상태 코드를 제외하고 어떠한 데이터를 전송하지 않는다.


데이터가 변경되었는지 쉽게 결정할 수 있다. 예를 들어 데이터베이스의 마지막 변경 시간을 결정하는 코드를 구현할 수 있다. 이는 모든 데이터를 Atom 표현으로 변환하는 것보다 훨씬 효율적이다.


데이터가 실제로 변경되었다면 요청에 대해 200(OK)으로 정상적으로 응답된다. 또한 클라이언트가 HTTP 캐싱을 다시 사용할 수 있도록 Last-Modified 헤더에 새로운 값이 전송된다.


지정된 If-Modified-Since 헤더를 포함한 요청을 데이터베이스에서는 마지막 변경 시간과 비교하고 결정하는 데 사용된다. 데이터가 변경되지 않으면 HTTP 304 상태 코드를 리턴한다. 이 경우 HTTP 요청에 응답하는 데 하나의 데이터베이스 쿼리만 필요하다.



이런 방식을 Conditional Get (조건부 Get)라 한다.

'영어앤영문권' 카테고리의 다른 글

Stalemate- 교착 상태  (0) 2019.08.24
snowflask system(눈송이 시스템)  (0) 2019.08.16
self-contained system (SCS) 번역  (0) 2018.08.28
authz, authn  (0) 2018.08.10
BYOD  (0) 2018.07.28
Posted by '김용환'
,