전체 페이지를 다운로드하지 않고 HTTP 상태를 확인하는 방법은 무엇입니까?


26

우분투를 사용하는 웹 사이트의 HTTP 상태를 알고 싶습니다. 나는 그 목적으로 사용 curl하고 wget명령했습니다. 그러나 문제는 이러한 명령이 완전한 웹 사이트 페이지를 다운로드 한 다음 헤더를 검색하여 화면에 표시한다는 것입니다. 예를 들면 다음과 같습니다.

$ curl -I trafficinviter.com
HTTP/1.1 200 OK
Date: Mon, 02 Jan 2017 14:13:14 GMT
Server: Apache
X-Pingback: http://trafficinviter.com/xmlrpc.php
Link: <http://trafficinviter.com/>; rel=shortlink
Set-Cookie: wpfront-notification-bar-landingpage=1
Content-Type: text/html; charset=UTF-8

Wget전체 페이지가 다운로드되고 불필요하게 내 대역폭을 소비하는 명령 과 동일한 일이 발생 합니다.

내가 찾고있는 것은 대역폭 소비를 줄일 수 있도록 실제로 페이지를 다운로드하지 않고 HTTP 상태 코드를 얻는 방법입니다. curl을 사용해 보았지만 상태 코드를 얻기 위해 전체 페이지 또는 시스템에 헤더를 다운로드하고 있는지 확실하지 않습니다.


"컬을 사용해 보았지만 전체 페이지 또는 헤더 만 다운로드하고 있는지 확실하지 않습니다"— curl -v( --verbose) 옵션은 컬이 실제로 보내고받는 것을 디버그하는 편리한 방법입니다.
Beni Cherniavsky-Paskin

문제에 대한 해결책이 이미 있기 때문에 하향 조정이 두렵습니다.
Monica와의 가벼움 경주

@LightnessRacesinOrbit 나는 그 질문이 내 대답인지 아닌지 모른다. 나는 혼란을 해결하는 데 도움을 받기 위해 여기에있었습니다. 그래도 내 질문이 틀렸다는 것을 알게 되신다면 .. 귀하의 공감 결정을 환영합니다. 감사합니다
Jaffer Wilson


"이러한 명령은 완전한 웹 사이트 페이지를 다운로드합니다"-아니오, 그렇지 않습니다
Harming Monica 중지

답변:


49

curl -IHTTP 헤더 가져옵니다 . 전체 페이지를 다운로드하지는 않습니다. 보낸 사람 man curl:

-I, --head
      (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature
      the command HEAD which this uses to get nothing but  the  header
      of  a  document. When used on an FTP or FILE file, curl displays
      the file size and last modification time only.

다른 옵션은 설치 lynx하고 사용하는 것 lynx -head -dump입니다.

HEAD 요청은 HTTP 1.1 프로토콜 ( RFC 2616 )에 의해 지정됩니다 .

9.4 HEAD

   The HEAD method is identical to GET except that the server MUST NOT
   return a message-body in the response. The metainformation contained
   in the HTTP headers in response to a HEAD request SHOULD be identical
   to the information sent in response to a GET request. This method can
   be used for obtaining metainformation about the entity implied by the
   request without transferring the entity-body itself. This method is
   often used for testing hypertext links for validity, accessibility,
   and recent modification.

2
HEAD 요청이 GET과 다른 상태 코드를 반환하는 것이 가능 합니까 ( 표준의 범위 내에서 가능합니다. ) 가능 합니까?
KutuluMike

1
@KutuluMike : 요청 된 정보를 제공하기 위해 답변을 편집했습니다. RFC의 말로, 동일한 메타 정보를 제공해야합니다.
AlexP

@duskwuff : 그러면 HEAD 요청은 405를 반환해야합니다.
AlexP

@AlexP 내 실수. 신경 쓰지 마!
duskwuff

18

으로 wget, 당신은 사용할 필요가 --spider옵션을 컬 같은 HEAD 요청을 보내 :

$ wget -S --spider https://google.com
Spider mode enabled. Check if remote file exists.
--2017-01-03 00:08:38--  https://google.com/
Resolving google.com (google.com)... 216.58.197.174
Connecting to google.com (google.com)|216.58.197.174|:443... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 302 Found
  Cache-Control: private
  Content-Type: text/html; charset=UTF-8
  Location: https://www.google.co.jp/?gfe_rd=cr&ei=...
  Content-Length: 262
  Date: Mon, 02 Jan 2017 15:08:38 GMT
  Alt-Svc: quic=":443"; ma=2592000; v="35,34"
Location: https://www.google.co.jp/?gfe_rd=cr&ei=... [following]
Spider mode enabled. Check if remote file exists.
--2017-01-03 00:08:38--  https://www.google.co.jp/?gfe_rd=cr&ei=...
Resolving www.google.co.jp (www.google.co.jp)... 210.139.253.109, 210.139.253.93, 210.139.253.123, ...
Connecting to www.google.co.jp (www.google.co.jp)|210.139.253.109|:443... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Mon, 02 Jan 2017 15:08:38 GMT
  Expires: -1
  Cache-Control: private, max-age=0
  Content-Type: text/html; charset=Shift_JIS
  P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."
  Server: gws
  X-XSS-Protection: 1; mode=block
  X-Frame-Options: SAMEORIGIN
  Set-Cookie: NID=...; expires=Tue, 04-Jul-2017 15:08:38 GMT; path=/; domain=.google.co.jp; HttpOnly
  Alt-Svc: quic=":443"; ma=2592000; v="35,34"
  Transfer-Encoding: chunked
  Accept-Ranges: none
  Vary: Accept-Encoding
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

내 친구 wget이 전체 페이지를 가져온 다음 헤더를 표시한다고 생각하지 않습니다.
Jaffer Wilson

@JafferWilson은 출력의 마지막 몇 줄을 읽습니다.
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.