티스토리 뷰
원문 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로 뽑은 이미지를 출력해줍니다
'웹개발 > Php' 카테고리의 다른 글
msgfmt 언어 컴파일 하기 (1) | 2014.03.07 |
---|---|
디자인 패턴 링크 (0) | 2014.02.26 |
PHP 업로드 용량 제한 풀기 (0) | 2014.02.25 |
다른 도메인간(www.url.com, shop.url.com등) 세션공유 (1) | 2014.02.25 |
예제로 배우는 정규표현식 (5) | 2014.02.25 |