HTTP 상태 코드 304의 사양
304 Not Modified 상태 코드는 조건부 GET 또는 HEAD 요청이 수신되었음을 나타내며, 조건이 거짓으로 평가되지 않았다면 200(OK) 응답이 발생했을 것입니다. 즉, 조건부 요청을 한 클라이언트가 이미 유효한 표현을 가지고 있기 때문에 서버가 대상 리소스의 표현을 전송할 필요가 없으며, 따라서 서버는 클라이언트가 저장된 표현을 200(OK) 응답의 내용인 것처럼 사용하도록 리디렉션합니다.
304 Not Modified 응답을 생성하는 서버는 동일한 요청에 대해 200(OK) 응답으로 전송되었을 다음 헤더 필드 중 하나를 생성해야 합니다:
- 콘텐츠-위치, 날짜, ETag 및 가변
- 캐시-제어 및 만료([캐싱] 참조)
304 Not Modified 응답의 목표는 수신자가 이미 하나 이상의 캐시된 표현을 가지고 있을 때 정보 전송을 최소화하는 것이므로, 발신자는 캐시 업데이트를 안내할 목적으로 해당 메타데이터가 존재하는 경우가 아니라면 위에 나열된 필드 이외의 표현 메타데이터를 생성해서는 안 됩니다(예.g., 응답에 ETag 필드가 없는 경우 Last-Modified가 유용할 수 있음)
304 Not Modified 응답을 수신하는 캐시에 대한 요구 사항은 [캐싱] 섹션 4.3.4에 정의되어 있습니다. 조건부 요청이 아웃바운드 클라이언트에서 시작된 경우(예: 자체 캐시가 있는 사용자 에이전트가 공유 프록시로 조건부 GET을 보내는 경우) 프록시는 304 Not Modified 응답을 해당 클라이언트로 전달해야 합니다.
304 Not Modified 응답은 헤더 섹션의 끝으로 종료되며 콘텐츠나 예고편을 포함할 수 없습니다.
출처 / 인용 출처: 304 Not Modified HTTP 상태 코드는 RFC9110 섹션 RFC9110에 명시되어 있습니다.
HTTP 프로토콜
PHP로 304 상태 코드를 던지는 방법은 무엇인가요?
웹 페이지에 HTTP 상태 코드 304를 던지려면 PHP 함수 http_response_code를 사용할 수 있습니다. 구문은 다음과 같습니다: http_response_code(304) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
304 HTTP 상태 코드 테스트
클라이언트 측에서 HTTP 상태 코드(이 경우 304 Not Modified) 및 기타 정보를 표시하려면 F12를 사용하여 개발 콘솔을 열어야 합니다. 그런 다음 "네트워크" 탭으로 이동합니다. 이제 페이지를 열면 네트워크 탭에 웹사이트(예: index.php)가 표시됩니다. 이를 선택한 다음 허더 섹션을 선택해야 합니다. 그러면 사용자에게 다음과 같은 결과가 표시됩니다:
URL: https://http-statuscode.com/errorCodeExample.php?code=304
상태: 304 Not Modified
그: Network
IP 주소: XX.XX.XX.XX
304 상태 코드의 브라우저 호환성
Chrome | Yes |
Edge | Yes |
Firefox | Yes |
Opera | Yes |
Safari | Yes |
Chrome Android | Yes |
Firefox for Android | Yes |
Opera Android | Yes |
Safari on iOS | Yes |
Internet | Yes |
WebView Android | Yes |
프로그래밍 언어의 상수
HTTP 상태 코드 304에 대한 추가 정보가 포함된 외부 링크:
HTTP 상태 코드 304에 대한 재미있는 밈
블로그 기사
캐싱 및 HTTP 상태 코드: 지능형 캐싱을 통한 웹 성능 최적화
웹 성능과 그에 따른 사용자 경험은 모든 웹사이트의 성공을 위한 핵심 요소입니다. 특히 캐싱 전략의 맥락에서 성능에 영향을 미치는 중요한 요소는 HTTP 상태 코드입니다. 이러한 상태 코드 중 종종 간과되지만...