현재 위치: > 최신 기사 목록> header_register_callback 및 http_response_code를 사용하여 사용자 정의 HTTP 상태 코드를 설정하는 방법?

header_register_callback 및 http_response_code를 사용하여 사용자 정의 HTTP 상태 코드를 설정하는 방법?

gitbox 2025-08-15

1. Header_Register_Callback 함수의 개요

Header_Register_Callback 은 PHP에서 거의 언급되지 않은 기능입니다. PHP가 HTTP 응답 헤더를 출력하기 전에 HTTP 응답 헤더를 수정하거나 추가하기 위해 콜백 함수를 등록 할 수 있습니다. 즉,이 기능을 사용하여 응답 상태 코드 설정, 사용자 정의 헤더 정보 추가 등을 포함하여 PHP 출력 헤더 정보를 출력하기 전에 사용자 정의 작업을 수행 할 수 있습니다.

기능 프로토 타입 :

 <span><span><span class="hljs-title function_ invoke__">header_register_callback</span></span><span>(</span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$callback</span></span><span>)
</span></span>
  • $ 콜백 : 응답 헤더가 전송되기 전에 실행할 호출 가능 함수. 이 콜백 함수는 현재 응답에 대한 모든 HTTP 헤더 정보를 포함하는 배열 매개 변수를 수신합니다.

이런 식으로, 응답 헤더의 내용을 유연성으로 제어하여 응답을 보내기 전에 조정할 수 있습니다.

2. http_response_code 함수의 개요

http_response_code는 HTTP 응답 상태 코드를 얻거나 설정하는 데 사용되는 PHP의 함수입니다. 기본적으로 PHP가 요청을 처리 할 때 상태 코드를 자동으로 200으로 설정합니다 (요청이 성공했음을 나타냅니다). 그러나 다른 상태 코드를 반환하려면 http_response_code 함수를 사용하여 수정할 수 있습니다.

기능 프로토 타입 :

 <span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$code</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span>)
</span></span>
  • $ 코드 : 설정할 HTTP 상태 코드. 이 매개 변수가 생략되면 현재 상태 코드가 반환됩니다.

일반적인 HTTP 상태 코드에는 다음이 포함됩니다.

  • 200 : OK (성공 요청)

  • 404 : 찾을 수 없음 (찾을 수 없음)

  • 500 : 내부 서버 오류 (내부 서버 오류)

  • 403 : 금지 (액세스는 금지되어 있음)

3. 사용자 정의 HTTP 상태 코드 설정의 예

header_register_callbackhttp_response_code 함수를 결합하여 사용자 정의 HTTP 상태 코드를 매우 편리하게 설정할 수 있습니다. 다음은 다양한 조건에 따라 HTTP 상태 코드를 동적으로 설정하는 방법을 보여주는 간단한 예입니다.

샘플 코드 :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 콜백 함수를 등록하여 수정하십시오 HTTP 응답 헤더</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header_register_callback</span></span><span>(function() {
    </span><span><span class="hljs-comment">// 조건에 따라 특정 조건을 확인하고 다른 조건을 설정하십시오. HTTP 상태 코드</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'POST'</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">201</span></span><span>); </span><span><span class="hljs-comment">// 성공적으로 만들어졌습니다,반품 201 상태 코드</span></span><span>
    } </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$_SERVER</span></span><span>[</span><span><span class="hljs-string">'REQUEST_METHOD'</span></span><span>] === </span><span><span class="hljs-string">'DELETE'</span></span><span>) {
        </span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">204</span></span><span>); </span><span><span class="hljs-comment">// 성공적으로 삭제하십시오,无内容반품,반품 204 상태 코드</span></span><span>
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-title function_ invoke__">http_response_code</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>); </span><span><span class="hljs-comment">// 默认반품 200 상태 코드</span></span><span>
    }
});

</span><span><span class="hljs-comment">// 출력 응답 내용</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"반응 형 컨텐츠..."</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

위의 코드에서는 먼저 PHP가 HTTP 응답 헤더를 보내기 전에 상태 코드를 설정하기 위해 콜백 함수를 등록합니다. 요청 방법에 따라 다른 HTTP 상태 코드를 동적으로 반환합니다.

  • 사후 요청의 경우 201 생성 상태 코드가 반환되어 리소스가 성공적으로 생성되었음을 나타냅니다.

  • 삭제 요청의 경우 204 컨텐츠 상태 코드가 반환되지 않으므로 삭제가 성공했지만 콘텐츠는 반환되지 않습니다.

  • 다른 요청의 경우 기본 200 확인 상태 코드가 반환됩니다.

4. 주목할만한 것들

header_register_callback을 사용할 때 특별한주의가 필요한 몇 가지 사항이 있습니다.

  1. 통화 주문 : Header_Register_Callback 등록 된 콜백 함수는 모든 헤더 정보가 전송되기 전에 실행되므로 응답이 전송되기 전에 헤더 정보 (상태 코드 포함)가 완료되도록합니다.

  2. 응답 헤더 보내기 : http_response_code 함수를 호출 할 때 출력 내용 (예 : HTML 또는 텍스트)이 전송되기 전에 상태 코드가 설정되어 있는지 확인해야합니다. 그렇지 않으면 출력 콘텐츠 전에 응답 헤더를 전송해야하므로 PHP는 경고를합니다.

  3. 호환성 문제 : Header_Register_Callback은 특정 PHP 버전 또는 구성에서는 지원되지 않을 수있는 덜 사용되는 기능입니다. 따라서 생산 환경에서 사용될 때는 먼저 호환성 테스트를 수행하는 것이 가장 좋습니다.

5. 요약

PHP 개발자는 header_register_callbackhttp_response_callback 을 결합하여 다양한 비즈니스 로직 요구 사항에 따라 사용자 정의 HTTP 상태 코드를 쉽게 반환 할 수 있습니다. 이를 통해 인터페이스의 유연성을 향상시키는 데 도움이 될뿐만 아니라 프론트 엔드 또는 클라이언트가 서로 다른 상태 코드에 따라 처리 할 수있어 시스템의 유지 관리 및 사용자 경험이 더욱 향상됩니다.

이 기사를 통해이 두 기능을 더 잘 이해하고 사용하여 실제 개발에서 HTTP 응답 헤더 및 상태 코드를보다 효율적으로 제어 할 수 있기를 바랍니다.