hippo 데브옵스
2022. 6. 25. 17:40
2022. 6. 25. 17:40
- 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>
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로 표현