Chcę wysłać HTTP HEAD
zapytanie za pomocą wget
. Czy to możliwe?
52
Nie jest wget, ale możesz to zrobić dość łatwo, używając curl.
curl -I http://www.superuser.com/
Daje to wyjście:
HTTP/1.1 301 Moved Permanently
Content-Length: 144
Content-Type: text/html; charset=UTF-8
Location: http://superuser.com/
Date: Sat, 09 Oct 2010 19:11:50 GMT
-I
jest równoważne z--head
.https
, możesz również dodać-k
lub--insecure
Próbować:
Możesz także przekazać,
-O /dev/null
aby uniemożliwićwget
zapisanie odpowiedzi HTTP na pliku.źródło
-S
będzie pokazać nagłówków, ale to wykonujeGET
, nieHEAD
. Innymi słowy, pobierze cały adres URL.wget -S --spider http://localhost
log utworzony na serwerze apache to127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Nie ma potrzeby zwijania się .
W przypadku Wget dodanie
--spider
oznacza, że chcesz wysłaćHEAD
zapytanie (w przeciwieństwie doGET
lubPOST
).Jest to świetny minimalistyczny sposób sprawdzania, czy adres URL odpowiada, czy nie. Możesz na przykład użyć tego podczas sprawdzania skryptów, a
HEAD
operacja zapewni, że nie obciążysz ani sieci, ani docelowego serwera WWW.Informacje o bonusie: Jeśli Wget otrzyma błąd HTTP 500 z serwera podczas jego wykonywania
HEAD
, przejdzie do wykonaniaGET
przeciw temu samemu adresowi URL. Nie znam uzasadnienia tego projektu. To jest powód, dla którego można zobaczyć zarównoHEAD
iGET
prośba wykonywane na serwerze. Jeśli nic nie jest nie tak,HEAD
wykonywane jest tylko żądanie. Możesz wyłączyć tę funkcję z--tries
opcją ograniczenia Wget do tylko jednej próby.Podsumowując, polecam to do testowania, czy adres URL odpowiada:
źródło
wget -S
pobiera plik:wget --spider
dostaje nagłówki:źródło
Chociaż nie
wget
, wieleperl
instalacji zlwp
modułem będzie miałoHEAD
zainstalowane polecenie.źródło