• Last-Modified 헤더는 브라우저가 서버로 요청한 파일의 최종 수정 시간을 알려줌
  • Last-Modified 헤더는 응답을 HTTP 헤더에 서버가 알고 있는 가장 마지막 수정된 날짜와 시각을 담고 있음
  • 저장된 리소스가 이전과 같은지 유효성 검사자로 사용
  • ETag 헤더보다는 덜 정확하지만, Last-Modified 헤더는 ETag 헤더에 대한 차선책으로 사용
  • Last-Modified 헤더를 쓸 경우 브라우저가 다음에 다시 접속할 때 서버에게 파일이 수정되었는지 여부를 물어봄 → 서버가 수정 여부를 내려주는 헤더인 조건 요청은 If-Modified-Since 또는 If-Unmodified-Since (en-US) 헤더를 사용
  • 캐싱을 해 성능을 향상시킬 수 있는데 이미지/CSS/JS와 같은 정적파일들은 아파치에서 자동적으로 Last-Modified, If-Modified-Since 헤더를 붙여줌
  • php파일과 같은 동적 파일들에는 로직상에서 헤더를 붙여주면 됨
  • 응답 날짜 헤더(Date Header)는 언제 응답이 나타났는지 나타내는 반면, Last-Modified 헤더는 지난 할당되어진 자원이 바뀔 때를 나타냄
  • 즉, Last-Modified value는 Date value보다 최근일 수 없음


Last-Modified 헤더의 사용시점

  • Last-Modified 헤더는 시간 값을 기준으로 파일 수정 여부를 판별
  • 짧은 시간 내에 변경되는 리소스 등에는 Last-Modified 헤더를 사용하는 것이 적합


Last-Modified 헤더 참고 사진

지시자

1. <etag>

  • 개체 태그는 요청한 리소스가 유일한 것을 표현
  • ASCII 문자열로 쌍따옴표("675af34563dc-tr34"처럼)로 묶여있음
  • 접두사로 W/가 있어 약한 비교 알고리즘을 사용되어야 하는 것을 표시
  • If-Range 헤더 사용 예제
    If-Range: Wed, 21 Oct 2015 07:28:00 GMT  

2. <day-name>

  • "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", 또는 "Sun" 중 하나가 표시
  • 대소문자 구분

3. <day>

  • 날짜
  • 두 글자로 표시
  • 예시 : "04" 또는 "23"

4. <month>

  • "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 중 하나가 표시
  • 대소문자 구분

5. <year>

  • 연도
  • 네 글자로 표시
  • 예시 : "1990" 또는 "2016"

6. <hour>

  • 시간
  • 두 글자로 표시
  • 예시 : "09" 또는 "23"

7. <minute>

  • 두 글자로 표시
  • 예시 : "04" 또는 "59"

8. <second>

  • 두 글자로 표시
  • 예시 : "04" 또는 "59"

9. GMT

  • 그리니치 표준시
    HTTP 날짜는 현지 시각이 아닌, 언제나 GMT로 표현

'HTTP > HTTP 헤더' 카테고리의 다른 글

HTTP 프로토콜 Range 헤더  (0) 2022.06.25
HTTP 프로토콜 Pragma 헤더  (0) 2022.06.25
HTTP 프로토콜 Keep-Alive 헤더  (0) 2022.06.25
HTTP 프로토콜 If-Unmodified-Since헤더  (0) 2022.06.25
HTTP 프로토콜 If-Range 헤더  (0) 2022.06.25

+ Recent posts