If-Modified-SinceIf-Modified-Since는 클라이언트가 가진 캐시본의 마지막 수정 시각을 서버에 보내, '그 시각 이후에 바뀐 경우에만 본문을 달라'고 요청하는 조건부 요청 헤더입니다. 날짜 기반 캐시 재검증에 쓰입니다.
서버는 이전 응답의 `Last-Modified` 헤더로 리소스의 마지막 변경 시각을 알려줍니다. 클라이언트는 재요청 시 그 값을 If-Modified-Since에 담아 보내고, 서버는 리소스가 그 시각 이후에 변경됐는지 확인합니다. 변경이 없으면 본문 없이 304 Not Modified를, 변경됐으면 200 OK와 새 본문을 반환합니다. GET·HEAD 요청에서만 의미가 있습니다.
값은 반드시 RFC 7231 형식의 HTTP 날짜(`Wed, 21 Oct 2015 07:28:00 GMT`)이며 항상 GMT/UTC입니다. 이 방식은 1초 단위 해상도라, 같은 초 안에 두 번 바뀌는 리소스의 변경을 놓칠 수 있습니다. 그래서 더 정밀한 ETag(`If-None-Match`)가 있으면 그쪽이 우선합니다.
동적으로 생성되는 리소스는 신뢰할 만한 Last-Modified가 없을 수 있어 이 검증이 부정확해집니다. 이럴 때는 콘텐츠 해시로 만든 ETag가 더 견고합니다.
If-Modified-Since: <http-date>e.g. If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT