티스토리 뷰

웹개발/Php

HTTP header의 정의와 쓰임새

야쿠 yaku 2014.02.25 22:12


원문 http://blog.naver.com/etwas0227/60022344982



★HTTP header의 정의와 쓰임새


HTTP를 통해 서버에서 브라우저로 데이터를 전달할 때 전달하려는 데이터의 종류를 알려주는 데이터입니다.

이 헤더 데이터가 브라우저로 전달되면 브라우저에서는 이를 받게되는 데이터의 특성에 따라 브라우저에 표현하거나 저장할 수 있도록 합니다.

대부분의 웹 서버에서는 CGI를 사용할 때 CGI에서 HTTP헤더를 직접 수정할 수 있는 방법을 제공한다. 따라서 ASP나 JSP 스크립트를 사용하여 이미지를 표현하거나 자료실 다운로드 기능을 사용할 수 있게 합니다.

대부분의 상업사이트나 커뮤니티 사이트에서는 이러한 기능을 활용하여 파일에 대한 직접 링크보다 CGI를 거치는 링크를 사용하여 효율적인 사이트 관리와 사이트 보완을 도모합니다.


index.html 내용

<html>

<img src=http://java.compuz.com/image.php>

.................

</html>


image.php 내용

<?


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-cache,must-revalidate");  //HTTP1.1전송규약에서 캐시에 저장되지 않도록 설정header("Progma:no-cache");                                  //HTTP1.0에서 캐시에 저장되지 않도록 지정하는 라인

header("content-type:image/JPEG");                     //전달되는 데이터 타입선언


$i=0;                               

$d=dir("./images");                                            //images 디렉토리 제어 포인트를 $d변수로 지정

while($entry=$d->read()){                         //$d 파일 이름을 배열변수 $Ifile[]에 저장

        $Ifile[$i]=$entry;                             

        $i++;

}

$d->close();                                                                //디렉토리핸들러 닫음

$imgname="./images/".$Ifile[rand(2,count($Ifile)-1)];        //이미지 한개를 뽑아옴

$im=@ImageCreateFromJPEG($imgname);                      //메모리상에 이미지 생성

Imagejpeg($im);                                              //메모리이미지를 실제JPEG형태압축하여브라우저에출력

ImageDestroy($im);                                     //메모리에서 이미지 삭제


?>


[설명]

맨위 부분은 각종헤더 정보 정의와 전달을 맡음

-위와 같이 헤더를 지정하면 대부분의 캐시, 프록시 서버, 사용자 브라우저에 데이터가 저장되어 출력되지 않는 에러를 미연에 방지할 수 있음.


- image.php파일을 이미지 파일로 인식하여 받아들입니다. 헤더로 이미지 데이터로 정의했기 때문입니다.

- ./images디렉토리안에 있는 jpg확장자 이미지를 랜덤으로 추출하여 index.html로 뽑은 이미지를 출력해줍니다



저작자 표시
신고
댓글
댓글쓰기 폼