2,
예 2:IE에서 페이지 캐싱 비활성화 시청자가 프록시나 캐시의 데이터 대신 항상 최신 콘텐츠를 얻을 수 있도록:
CacheControl = no-cache Pragma=no-cache Expires = -1 서버의 웹 페이지가 자주 변경되는 경우 Expires를 -1로 설정하여 즉시 만료되도록 합니다. 웹페이지가 매일 오전 1시에 업데이트된다면 만료일을 다음 날 오전 1시로 설정할 수 있습니다. HTTP1.1 서버가 CacheControl = no-cache를 지정하면 브라우저는 웹 페이지를 캐시하지 않습니다. 기존 HTTP 1.0 서버는 Cache-Control 헤더를 사용할 수 없습니다. 따라서 HTTP 1.0 서버와의 하위 호환성을 위해 IE는 Pragma:no-cache 헤더를 사용하여 HTTP에 대한 특별한 지원을 제공합니다. 클라이언트가 보안 연결(https://)을 통해 서버와 통신하고 서버가 응답으로 Pragma:no-cache 헤더를 반환하는 경우 Internet Explorer는 응답을 캐시하지 않습니다. 참고: Pragma:no-cache는 보안 연결에서 사용될 때만 캐싱을 방지합니다. 비보안 페이지에서 사용되는 경우 처리는 Expires:-1과 동일하지만 페이지는 즉시 만료된 것으로 표시됩니다. http-equiv 메타 태그: http-equiv 메타를 사용하여 HTML 페이지에서 지정된 http 메시지 헤더를 표시할 수 있습니다. 이전 버전의 IE는 html 메타 태그를 지원하지 않을 수 있으므로 http 메시지 헤더를 사용하여 캐싱을 비활성화하는 것이 가장 좋습니다. 예 3: 사용자의 브라우저에 파일을 찾을 수 없다는 메시지가 표시되도록 합니다. 인터넷의 많은 정보에 따르면 PHP의 header() 함수는 Status 헤더를 브라우저에 보낼 수 있습니다. 헤더("상태: 404 찾을 수 없음")와 같은 것입니다. 그러나 브라우저에서 반환된 실제 응답은 다음과 같습니다.
첫 번째 부분은 HTTP 프로토콜 버전(HTTP-Version)이고, 두 번째 부분은 상태 코드(Status)이고, 세 번째 부분은 이유 문구(Reason-Phrase)입니다. 예 4: 사용자가 파일을 다운로드하도록 허용(숨겨진 파일 위치) html 태그를 사용하여 일반 파일을 다운로드할 수 있습니다. 파일을 기밀로 유지하고 싶고 다른 사람에게 파일 링크를 알릴 수 없는 경우 헤더 기능을 사용하여 파일을 다운로드할 수 있습니다.
예시 4: 헤더 기능 전 내용 입력 일반적으로 HTML 콘텐츠는 헤더 함수 이전에 출력될 수 없습니다. 마찬가지로 setcookie() 및 세션 함수도 출력 스트림에 메시지 헤더 정보를 추가해야 합니다. header()가 실행되기 전에 echo와 같은 문이 있는 경우 나중에 header()를 만나면 "경고: 헤더 정보를 수정할 수 없습니다. 헤더는 이미 ....에서 전송되었습니다."라는 오류가 보고됩니다. 즉, 이들 함수 앞에는 텍스트, 빈 줄, 캐리지 리턴 등이 있어서는 안 되며, header() 함수 뒤에 exit() 함수를 추가하는 것이 가장 좋습니다. 예를 들어 다음과 같이 잘못 작성하면 두 PHP 코드 조각 사이에 빈 줄이 있습니다.
?> 이유는 PHP 스크립트가 실행을 시작할 때 http 메시지 헤더(제목) 정보와 본문 정보를 동시에 보낼 수 있기 때문입니다(header() 또는 SetCookie() 함수에서). 즉시 전송되지는 않지만 목록에 저장됩니다. 이를 통해 기본 헤더(예: Content-Type 헤더)를 포함한 헤더 정보를 수정할 수 있습니다. (예를 들어, HTML 또는 print()를 사용하면 PHP는 먼저 모든 헤더를 보낸 다음 HTTP 헤더를 종료해야 합니다. 그런 다음 계속해서 본문 데이터를 보냅니다. 이 시점부터 헤더 정보를 추가하거나 수정하려는 모든 시도는 다음과 같습니다. 허용되지 않으며 위에서 언급한 오류 메시지 중 하나입니다. 해결책: php.ini를 수정하여 캐싱(output_buffering)을 활성화하거나 프로그램에서 캐싱 함수 ob_start(), ob_end_flush() 등을 사용하세요. 원칙은 다음과 같습니다. output_buffering이 활성화되면 스크립트가 출력을 보낼 때 PHP는 HTTP 헤더를 보내지 않습니다. 대신, 이 출력을 동적으로 증가하는 캐시로 연결합니다(중앙 집중식 출력 메커니즘이 있는 PHP 4.0에서만 사용 가능). 헤더는 실제로 전송되지 않으므로 헤더를 수정/추가하거나 쿠키를 설정할 수 있습니다. 모든 스크립트가 종료되면 PHP는 자동으로 HTTP 헤더를 브라우저에 보낸 다음 출력 버퍼의 내용을 보냅니다. PHP 매뉴얼에 헤더 함수의 몇 가지 작은 예를 소개합니다. 1. 브라우저가 새로운 콘텐츠(캐시 없음)를 사용하도록 하려면 heder 명령을 사용하세요. URL에 고유 번호가 추가되어 매번 새로운 콘텐츠를 읽고 캐싱을 방지합니다.
2하고 이미지 표시를 위해 브라우저로 전송됩니다.
첨부된 헤더 기능의 완전하고 포괄적인 적용 예입니다.
|