WAD HEAD isteği?


52

HTTP HEADKullanarak isteği göndermek istiyorum wget. Mümkün mü?

Yanıtlar:


59

Wget değil, ama bunu curl kullanarak kolayca yapabilirsiniz.

curl -I http://www.superuser.com/

Bu çıktıyı üretir:

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

Bu tam olarak istediğim şey.
Xiè Jìléi,

1
-Ieşittir --head.
Nicolas Marchildon

1
Kendinden imzalı bir sertifikaya ihtiyacınız varsa https, -kya da--insecure
Mike Aski

36

Deneyin:

wget -S --spider www.example.com

Bir dosyaya HTTP yanıtı yazmamak -O /dev/nulliçin de geçebilirsiniz wget.


2
-Sbaşlıkları gösterecek , ancak bir GETdeğil, bir yürütme yapacaktır HEAD. Başka bir deyişle, URL'nin tamamını getirir.
Dan Dascalescu

9
wget -S --spider http://localhostapache sunucusunda oluşturulan günlük:127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Casual Coder

20

Kıvrılmaya gerek yok .

Wget ile ekleme --spider, bir HEADistek göndermek istediğinizi belirtir (aksine GETveya POST).

Bir URL'nin yanıt verip vermediğini kontrol etmek için minimalist bir yöntemdir. Örneğin bunu komut dosyası denetimlerinde kullanabilirsiniz; HEADişlem ne ağa ne de hedef web sunucusuna herhangi bir yükleme yapmadığınızdan emin olmanızı sağlar.

Bonus bilgisi: Wget sunucudan sunucuya 500 HTTP hatası alırsa , aynı URL'ye karşı HEADbir performans göstermeye devam eder GET. Bu tasarımın nedenini bilmiyorum. Bu, bir ikisini görebilirsiniz nedeni budur HEAD ve bir GETistek sunucuya karşı çalışmalar yapılmaktadır. Yanlış bir şey yoksa, sadece bir HEADistek gerçekleştirilir. --triesWget'ı yalnızca bir denemeyle sınırlandırma seçeneğiyle bu işlevi devre dışı bırakabilirsiniz .

Sonuç olarak, bir URL yanıt veriyorsa test etmek için bunu öneriyorum:

# This works in Bash and derivatives
wget_output=$(wget --spider --tries 1 $URL  2>&1)
wget_exit_code=$?

if [ $wget_exit_code -ne 0 ]; then
    # Something went wrong
    echo "$URL is not responding"
    echo "Output from wget: "
    echo "$wget_output"
else
    echo "Check succeeded: $URL is responding"
fi

4

wget -S dosya alır:

İçerik Uzunluğu: 2316, Uzunluk: 2316 (2.3K) [text / plain], Tasarruf: `index.html '

wget --spider başlık alır:

Örümcek modu etkin. Uzak dosyanın olup olmadığını kontrol edin., Uzunluk: belirtilmemiş [text / plain] Uzak dosya var.


-1

Olmamasına rağmen wget, modül perliçeren birçok kurulumda yüklü lwpbir HEADkomut olacaktır .

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.