웹 개발에서 페이지 리디렉션은 사용자를 한 URL에서 다른 URL로 안내하는 데 사용되는 일반적인 기술입니다. 일반적인 시나리오에는 성공적으로 로그인 한 후 사용자의 홈페이지로 리디렉션하거나 URL 경로가 변경 될 때 리디렉션하는 것이 포함됩니다.
그러나 페이지 리디렉션 프로세스 중에는 불필요한 캐시 응답 헤더가 발생할 수있어 브라우저 또는 프록시 서버가 이전 페이지 데이터를 캐시하여 사용자 경험 및 페이지로드 성능에 영향을 줄 수 있습니다. 이를 피하기 위해 PHP는 캐시 관련 응답 헤더를 효과적으로 정리할 수있는 Header_Remove () 기능을 제공하여 페이지로드 성능을 향상시킬 수 있습니다.
Header_Remove () 함수는 PHP의 내장 함수이며 현재 응답 헤더에서 지정된 헤더 정보를 제거하는 데 사용됩니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$name</span></span><span> = ?): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$ 이름 : 선택적 매개 변수, 제거 할 응답 헤더의 이름을 지정합니다. $ 이름이 제공되지 않으면 모든 응답 헤더가 제거됩니다.
반환 값 : 응답 헤더가 성공적으로 제거되면 true를 반환합니다. 응답 헤더가 실패하면 False를 반환하십시오.
캐시 응답 헤더 (예 : 캐시 제어 , 만료 , Pragma )는 브라우저가 페이지를 캐시 할 수 있는지 여부를 나타냅니다. 페이지 리디렉션의 경우 잘못된 캐시 설정으로 인해 이전 리디렉션 정보가 캐시되면 사용자는 항상 잘못된 페이지로 이동하거나 오래된 콘텐츠를 보게됩니다.
캐시 응답 헤더가 정리되지 않으면 브라우저는 리디렉션 된 대상의 페이지를 캐시하고 사용자가 나중에 요청할 때 캐시 된 데이터를 계속 사용할 수 있습니다. 이런 식으로 페이지가로드되면 서버를 다시 반송하는 대신 캐시에서 컨텐츠를 직접로드하여 페이지가 이전 데이터를 표시하고 성능을 줄일 수 있습니다.
REader_Remove ()를 사용하여 이러한 응답 헤더를 지우면 페이지로드 성능을 향상시켜 브라우저가 캐시를 사용하는 대신 대상 페이지를 다시 반복하도록합니다.
리디렉션시 캐시를 청소 해야하는 시나리오가 있다고 가정하면 Header_Remove ()를 사용하여 캐시 관련 응답 헤더를 제거 할 수 있습니다. 간단한 예제 코드는 다음과 같습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 모든 캐시 관련 응답 헤더를 지우십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-string">'Cache-Control'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-string">'Expires'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-string">'Pragma'</span></span><span>);
</span><span><span class="hljs-comment">// 리디렉션 헤더 설정</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: https://www.example.com'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이 코드에서는 일반적인 캐시 제어 헤더 인 Header_Remove () 를 통해 캐시 제어 , 만료 및 Pragma 응답 헤더를 제거합니다. 그런 다음 페이지가 헤더 () 함수를 통해 리디렉션됩니다.
특정 캐시 헤더 만 제거하려면 응답 헤더의 이름을 지정하여 제거 할 수도 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 분명한 Cache-Control 그리고 Expires 응답 헤더</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-string">'Cache-Control'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header_remove</span></span><span>(</span><span><span class="hljs-string">'Expires'</span></span><span>);
</span><span><span class="hljs-comment">// 설정 301 영구 리디렉션</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'HTTP/1.1 301 Moved Permanently'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Location: https://www.example.com'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
이 예에서는 캐시 제어를 제거하고 헤더를 만료 하고 301 영구 리디렉션 상태 코드를 설정합니다. 이렇게하면 브라우저가 리디렉션 후 페이지를 캐시하지 못하게됩니다.
모든 응답 헤더를 제거하면 불필요한 부작용이 발생할 수 있습니다. 캐시 응답 헤더를 정리하지 않으면 다른 캐시 독립적 응답 헤더를 제거하면 다른 기능 (예 : 컨텐츠 유형, 콘텐츠 길이 등)에 영향을 줄 수 있으므로 캐시 관련 응답 헤더 만 제거하는 것이 좋습니다.
무엇이든 출력하기 전에 Header_Remove ()를 호출 해야 합니다 . 일반적으로 스크립트의 시작 부분에서 설정했습니다.
적절한 캐싱 정책 사용 : 캐시 관련 헤더를 청소하는 동안 실제 요구에 따라 적절한 캐싱 정책을 설정하십시오. 때로는 중복 네트워크 요청을 줄이기 위해 특정 리소스에 대한 적절한 캐시 컨트롤을 설정해야합니다.
PHP에서, 캐시 관련 응답 헤더를 청소하기 위해 Header_Remove () 함수를 사용하여 페이지 리디렉션 중 캐시 문제를 효과적으로 피할 수 있으므로 페이지로드 성능을 향상시킬 수 있습니다. 리디렉션 할 때 불필요한 캐시 된 응답 헤더를 청소하면 브라우저가 구식 캐시 컨텐츠를 사용하는 대신 서버에서 최신 페이지를로드 할 수 있습니다.
실제 개발에서 개발자는 페이지의 요구에 따라 캐시 된 응답 헤더를 합리적으로 청소해야하며 페이지 리디렉션시 성능 문제 나 기타 잠재적 오류를 유발하지 않아야합니다.