커피닉스, 시스템 엔지니어의 쉼터
  HTTP의 HEAD 요청 결과를 얻는 방법 작성일 : 2006/03/21 00:23
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 11413
     
    제  목 : HTTP의 HEAD 요청 결과를 얻는 방법
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2006.3.20(월)

    1. HTTP의 HEAD 결과를 얻어오는 명령

    1) telnet www.google.co.kr 80

     
    $ telnet www.google.co.kr 80
    HEAD / HTTP/1.1
    Host: www.google.co.kr

    ... 결과 생략 ...
     


    2) lynx -head -source http://www.google.co.kr

       lynx로 요청할 때는 http:// 를 붙여서 사용해야 한다.
       www.empas.com 사이트의 경우 HEAD method를 사용하여 요청하더라도 GET으로 요청할 때 처럼
       HTML 내용을 모두 뿌려준다. lynx도 HEAD 내용과 HTML 내용을 모두 뿌려주지만, 다음에 소개할
       curl이나 HEAD 명령은 HEAD만 골라 보여준다.

       다음은 lynx 사용시 웹서버로 보내지는 HTTP 프로토콜 내용이다.

     
    HEAD / HTTP/1.0
    Host: www.google.co.kr
    Accept: text/html, text/plain, audio/mod, image/*, application/msword, application/pdf, application/postscript, application/x-java-jnlp-file, text/sgml, video/mpeg, */*;q=0.01
    Accept-Encoding: gzip, compress
    Accept-Language: en
    User-Agent: Lynx/2.8.5dev.7 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7a
     


    3) curl --head www.google.co.kr

     
    HEAD / HTTP/1.1
    User-Agent: curl 7.12.1 (i686-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
    Host: www.google.co.kr
    Pragma: no-cache
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
     


    4) HEAD www.google.co.kr

       HEAD, GET 명령은 libwww-perl Perl 모듈에 포함된 명령으로 설치되어 있지 않으면
       http://sourceforge.net/projects/libwww-perl/ 에서 받아볼 수 있다.

     
    HEAD / HTTP/1.1
    Connection: close
    Host: www.google.co.kr
    User-Agent: lwp-request/2.01
     


    5) 스크립트로 여러 사이트를 한꺼번에 요청하기

      여러 사이트의 HEAD 요청에 대한 결과 변화를 보려면 다음의 간단한 스크립트를 사용해볼 수 있다.
      url_list.txt 파일에는 확인할 URL 목록을 하나씩 써주면 된다.

     
    #!/bin/bash

    FILE_LIST="url_list.txt"
    for url in `cat $FILE_LIST`
    do
            echo "$url ------------------------------------"
            curl --head $url
    done
     


    2. 결과

    curl을 사용한 결과이다.

     
    $ curl --head www.google.co.kr
    HTTP/1.1 200 OK
    Cache-Control: private
    Content-Type: text/html
    Set-Cookie:
    PREF=ID=14eec5acdea728ef:NW=1:TM=1142849231:LM=1142849231:S=SxIdvtt54BkAxNoA; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.kr
    Server: GWS/2.1
    Content-Length: 0
    Date: Mon, 20 Mar 2006 10:07:11 GMT
     


    3. 참고자료

    * Lynx source distribution directory
      http://lynx.isc.org/

    * cURL and libcurl
      http://curl.haxx.se/

    * libwww-perl
      http://sourceforge.net/projects/libwww-perl/
      http://www.linpro.no/lwp/

    * 기본적인 네트워크 명령어 사용하기 중 '웹서버 종류 확인' (글 좋은진호, 2003.8)
      http://coffeenix.net/board_view.php?cata_code=5&bd_code=41

    * HTTP/1.1 Method Definitions
      http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html



    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1356