pe/standard

HEADER

C/H 2006. 9. 22. 02:08

    void header ( string string [, bool replace [, int http_response_code]])


    header()은 raw HTTP 헤더를 전송하기 위해 사용한다. HTTP 헤더에 관한 자세한 정보는 HTTP/1.1 규격을 할것!!.



    file저장시 헤더구분

    header("Content-type: text/plain"); // text
    header("Content-type: text/html"); // html
    header("Content-type: application/vnd.ms-powerpoint"); // ppt
    header("Content-type: application/msword"); // doc
    header("Content-type: application/vnd.ms-excel"); // xls
    header('Content-type: application/pdf'); // pdf
    Header("Content-type: file/unknown"); // file
    header("Content-Type: doesn/matter");
    
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    
    header("Last-Modified: " . gmdate("D, d M Y H:i ") . " GMT"); // always modified
    header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 페이지내용을 엑셀로 지정시 삭제할것!!
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Content-type: text/html; charset=euc-kr"); // utf-8
    header("Content-Disposition: attachment; filename=파일지정");
    header("Content-Transfer-Encoding: binary");
    header("Content-Description: PHP4 Generated Data");
    


    pdf : MSIE 4.01은 버그로 인해 작동하지 않는다. 해결책은 없다. MSIE 5.5 역시 이를 다루는 부분에 버그가 존재하며, 서비스팩 2 이후로 업그레이드해서 해결할 수 있다.


    header("HTTP/1.0 404 Not Found");

    /* 아파치에 존재하지 않는 파일들에 대한 요청 */
    header("Status: 404 Not Found"); /* PHP3 에서 요청 */
    


    header("Location: url ");


    /* 브라우저 리다이렉트, 리다이렉트 되었을경우 이후는 실행되지 않는다.*/
    HTTP/1.1은 Location:의 인자로 scheme, hostname, 절대 경로를 포함하는 절대 URI를 요구하고 있지만, 일부 클라이언트는 상대 URI도 받아들인다. 일반적으로 $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'], dirname()을 사용하여 상대 경로에서 절대 경로를 만들 수 있다

    header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/".$url);
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 과거의 날짜
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // 항상 변경됨
    header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
    header("Cache-Control: post-check=0, pre-check=0", false);
    
    header("Pragma: no-cache"); // HTTP/1.0
    


    PHP 스크립트는 종종 서버와 클라이언트 브라우저 사이에서 어떠한 프록시, 혹은 클라이언트 브라우가 캐쉬를 해서는 안되는 동적인 내용을 생성한다. 이 헤더로 여러 프록시와 클라이언트에서 캐쉬를 비활성화할 수 있다.

    * 페이지가 위의 모든 헤더를 출력하지 않아도 캐쉬가 되지 않을 수는 있다. 사용자는 브라우저의 기본 캐쉬 방침을 바꿀 수 있는 수많은 옵션이 존재한다. 위의 헤더들을 전송해서, 모든 설정을 덮어씌울 필요가 있다. 그렇지 않다면, 스크립트의 출력을 캐쉬할 수도 있다.
    * 추가적으로, session_cache_limiter()session.cache_limiter 설정으로 세션을 사용할 때 자동적으로 적합한 캐쉬 관련 헤더를 생성할 수 있다.



    Header Error


    /* 헤더 호출전 출력이 있을 경우 */
    PHP 4에서, 전송하기 전까지 브라우저에 대한 모든 출력 오버헤드를 서버 버퍼에 넣는 출력 버퍼링을 사용하여 이 함수를 호출 하기 전에 출력을 보낼 수 있다. 스크립트에서 ob_start()ob_end_flush()를 호출하거나, php.ini나 서버 설정 파일에서 output_buffering을 설정해서 이를 사용할 수 있다.


반응형

'pe > standard' 카테고리의 다른 글

DOM (Document Object Model)  (0) 2006.09.22
리퀘스트 헤더 (Request Header) & 리스판스 헤더 (Response Header)  (0) 2006.09.22
로그파일의 Format  (0) 2006.09.22
출력 버퍼링  (0) 2006.09.22
timestamp  (0) 2006.09.22