Tam sayfayı indirmeden HTTP durumunu nasıl belirleyebilirim?


26

Ubuntu kullanarak web sitelerinin HTTP Durumlarını bilmek istiyorum. Bu amaçla kullandım curlve wgetemrediyorum. Ancak sorun şu ki bu komutlar web sitesinin tamamını indirir ve sonra başlığı arar ve ekranda gösterir. Örneğin:

$ 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

Aynı şey Wget, tam sayfanın indirildiği ve gereksiz yere bant genişliğimi tüketen komutlarda da olur .

Aradığım şey: bant genişliği tüketimimi korumak için, aslında herhangi bir sayfayı indirmeden HTTP durum kodunun nasıl alınacağı. Curl kullanarak denedim ama emin değilim durum kodu almak için tam sayfa veya sadece bir başlık sistemime yüklüyorum.


"kıvırmayı kullanmayı denedi, ancak tam sayfa veya yalnızca bir başlığını indirdiğimden emin değilim" - curl -v( --verbose) seçeneği, kıvrılmanın gerçekte ne aldığını ve aldığını ayıklamak için kullanışlı bir yoldur.
Beni Cherniavsky-Paskin

Korkarım aşağı oy kullanıyorum çünkü buradaki sorunun çözümü zaten sizde var.
Monica

@LightnessRacesinOrbit Sorunun benim cevabım olup olmadığını bilmiyordum. Kafamdaki karışıklığı çözmek için yardım almak için buradaydım. Yine de sorumun yanlış olduğunu anlarsan .. Aşağıya düşme kararını memnuniyetle bekliyorum .. teşekkür ederim
Jaffer Wilson


"bu komutlar web sitesinin tamamını indir" - hayır, onlar yok
Harming Monica

Yanıtlar:


49

curl -Igetirir , sadece HTTP üst; tüm sayfayı indirmiyor. Kimden 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.

Başka bir seçenek yüklemek lynxve kullanmaktır lynx -head -dump.

HEAD isteği, HTTP 1.1 protokolü ( RFC 2616 ) tarafından belirtilir :

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 isteğinin GET'ten farklı bir durum kodu döndürmesi mümkün mü (standardın sınırları dahilinde .. açıkçası bu mümkün olabilir )?
KutuluMike

1
@KutuluMike: İstenen bilgileri sağlamak için cevabı düzenlendi. RFC'nin sözleriyle, aynı metainformasyonu sağlaması gerekir.
AlexP

@duskwuff: O zaman bir HEAD isteği aynı 405'i iade
etmelidir.

@AlexP Benim hatam. Boşver!
duskwuff

18

İle wget, curl gibi bir HEAD isteği göndermek için bu --spiderseçeneği kullanmanız gerekir :

$ 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.

Arkadaşımın wget'ın tüm sayfayı getirip sonra başlığını göstereceğini düşünmüyor musun?
Jaffer Wilson

@JafferWilson çıktının son birkaç satırını okudu.
muru
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.