개발 Q&A

제목 curl로 Request Header를 변경해서 페이지를 읽고 싶습니다.
글쓴이 펜펜 작성시각 2014/10/26 19:37:01
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 15737   RSS
안녕하세요.
curl 작업중 request header 변경이 안되서 질문 드립니다.

현재 linode 클라우드 서버에 LAMP 만 깔고 테스트 중입니다.
OS는 우분투 12.04 이고, cURL enabled, allow_url_fopen on 확인했고
테스트로 curl.php 파일을 만들어 아래 소스를 입력해 테스트 했습니다.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://google.com');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
$html = curl_exec($ch);
curl_close($ch);
print "<pre>".$html."</pre>";

요청헤더 확인은 크롬 개발자도구의 네트워크 탭과
Httpanalyzer를 사용했는데, 아래의 결과가 동일하게 나왔습니다.

Request Headers
GET /curl.php HTTP/1.1 
Host: 106.185.xx.xx 
Connection: keep-alive 
Cache-Control: max-age=0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36 
Accept-Encoding: gzip,deflate,sdch 
Accept-Language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4

Response Headers
HTTP/1.1 200 OK 
Date: Sun, 26 Oct 2014 10:30:02 GMT 
Server: Apache/2.2.22 (Ubuntu) 
X-Powered-By: PHP/5.3.10-1ubuntu3.14 
Vary: Accept-Encoding 
Content-Encoding: gzip 
Content-Length: 241 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html

보시는 것 처럼 Request Headers가 제가 설정한 대로 넘어가지 않습니다.
몇몇 커뮤니티에 올려보았으나 해결이 안되거나 답변이 없었고
구글링을 해봐도 저랑 같은 증상을 찾을 수 없었습니다.

대체 어디에서 문제가 생겼는지 모르겠습니다 ㅠㅠ
CI 커뮤니티에는 고수분들이 많으시니 조언 부탁드리겠습니다.
 다음글 php 메일 발송 시 파일 첨부 (2)
 이전글 폴더 하위에 존재하는 파일 이름 가지고 오기 (2)

댓글

한대승(불의회상) / 2014/10/27 07:52:16 / 추천 0
헤더는 제대로 반영 되었을겁니다.
단, 변경된 헤더는 google.com 에서 확인 가능 합니다.
헤더가 제대로 변경되었는지 보고 싶다면 요청 URL을 개발하고 있는 웹서버로 바꿔서 확인하세요.
펜펜 / 2014/10/27 10:10:05 / 추천 0
답변감사합니다!
개발서버로 헤더날리고 받아보니 설정한 값으로 날아갔네요.
윈도용 프로그램 개발할때는 Httpanalyzer로 확인한 기억이 있어서
그것 생각하고 찍힐때까지 삽질만 계속 했네요 ㅠㅠ