PHP의 헤더 () 함수는 매우 일반적인 기능으로, 클라이언트 브라우저에 원시 HTTP 헤더 정보를 보내는 데 사용됩니다. 이 기능을 통해 개발자는 페이지 응답의 헤더 정보를 제어하여 브라우저의 동작에 영향을 줄 수 있습니다. 예를 들어 리디렉션을 설정하고 컨텐츠 유형을 수정하고 캐시를 제어하는 데 사용할 수 있습니다.
헤더 () 함수의 기본 구문은 다음과 같습니다.
header(string $header, bool $replace = true, int $response_code = 0): void
$ 헤더 : 전송 될 HTTP 헤더 정보.
$ 대체 : 동일한 유형의 이전 헤더 정보를 교체할지 여부를 나타냅니다. 기본값은 사실 이며 교체를 나타냅니다. False 인 경우 새 헤더 정보가 추가됩니다.
$ response_code : http 응답 코드, 예를 들어, 200은 성공을 의미하며 301은 영구 리디렉션을 의미하며 404는 페이지를 찾은 페이지가 없음을 의미합니다.
header("Content-Type: application/json"); // 응답의 내용 유형을 설정하십시오JSON
header("Location: http://m66.net/redirect-page"); // 보내다301헤더 정보를 리디렉션합니다
페이지 리디렉션
헤더 () 함수의 가장 일반적인 응용 프로그램 중 하나는 페이지 리디렉션입니다. 위치 헤더를 보내면 사용자를 다른 URL로 리디렉션 할 수 있습니다. 예를 들어:
header("Location: http://m66.net/newpage"); // 사용자를 새 페이지로 리디렉션하십시오
exit(); // 스크립트가 실행되지 않도록하십시오,콘텐츠를 계속 출력하지 마십시오
이 예에서는 페이지에 액세스 할 때 브라우저는 http://m66.net/newpage 로 표시됩니다.
컨텐츠 유형을 설정 <br> 헤더 () 함수를 사용하여 응답의 내용 유형을 설정할 수 있습니다. 예를 들어 JSON 데이터를 프론트 엔드로 반환하려면 컨텐츠 유형 헤더 정보를 Application/JSON 으로 설정할 수 있습니다.
header("Content-Type: application/json");
echo json_encode(["message" => "Hello, world!"]);
이는 반환 된 데이터가 HTML 또는 기타 유형이 아닌 JSON 형식으로 브라우저에 알려줍니다.
제어 캐시 <br> Header () 함수를 사용하여 브라우저가 특정 페이지 컨텐츠를 캐시하는지 여부를 제어 할 수 있습니다. 예를 들어, 페이지 캐싱 비활성화 :
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");
이를 통해 브라우저는 캐시 된 컨텐츠를 사용하지 않고 매번 페이지를 다시 반복하도록 지시합니다.
404 오류 페이지 <br>을 보내십시오 페이지를 찾을 수없는 경우 브라우저에 HTTP 상태 코드를 404로 설정하여 "찾을 수없는"오류임을 알릴 수 있습니다.
header("HTTP/1.1 404 Not Found");
echo "Page not found";
이를 통해 브라우저는 404 오류를 올바르게 처리하고 오류 페이지를 표시 할 수 있습니다.
특정 파일에 직접 액세스하지 마십시오 <br> 사용자가 특정 민감한 파일 (구성 파일)에 직접 액세스하지 못하면 Header () 함수를 통해 액세스 소스를 확인하고 사용자를 리디렉션 할 수 있습니다. 예를 들어:
if ($_SERVER['HTTP_REFERER'] !== 'http://m66.net/safe-zone') {
header("Location: http://m66.net/access-denied");
exit();
}
출력 전에 호출해야합니다
페이지의 출력 컨텐츠 전에 헤더 () 함수를 호출해야합니다. 페이지에 출력 HTML 또는 기타 컨텐츠가있는 경우 "헤더 정보가 전송되었습니다"오류가 발생합니다. 이 오류를 피하기 위해 PHP 코드의 시작 부분에서 Header ()을 호출하고 출력이 없는지 확인하는 것이 좋습니다 (공백 또는 라인 브레이크 포함).
// 잘못된 사용 방법:
echo "Hello, World!";
header("Location: http://m66.net/newpage"); // 오류를보고합니다
// 그것을 사용하는 올바른 방법:
header("Location: http://m66.net/newpage"); // 출력 전에 있어야합니다
exit();
exit () <br>을 사용하여 스크립트를 종료하십시오 리디렉션을 전송 한 후 exit () 함수는 일반적으로 후속 코드에서 예상치 못한 출력을 피하기 위해 스크립트 실행을 중지하는 데 사용됩니다.
header("Location: http://m66.net/newpage");
exit();
디버깅 중에 헤더 출력을 확인하십시오 <br> "헤더 정보가 전송되었습니다"오류가 발생하면 PHP의 출력 버퍼를 활성화하거나 Headers_Sent () 함수를 사용하여 디버그를 사용할 수 있습니다.
if (headers_sent($file, $line)) {
echo "Headers already sent in $file on line $line";
}
HTTP 프로토콜이 올바른지 확인하십시오 <br> Header () 함수를 사용하는 경우 전달 된 HTTP 헤더가 프로토콜을 준수하는지 확인하십시오. 예를 들어, 위치 헤더에 유효한 URL이 필요합니다.
헤더 () 함수는 PHP의 강력한 도구입니다. 이를 통해 브라우저 동작을 제어하고 응답 헤더 변경, 페이지 리디렉션 및 개발 중 기타 작업을 수행 할 수 있습니다. HTTP 요청, 응답 및 페이지 리디렉션을 처리 할 때 HEADER () 기능의 올바른 사용법을 마스터하는 것은 개발자에게 매우 중요합니다.
기본 사용 및 응용 프로그램 시나리오를 이해함으로써 브라우저와 서버 간의 상호 작용을 더 잘 제어하고 웹 사이트의 성능 및 사용자 경험을 향상시킬 수 있습니다.