Mau permintaan HEAD?

52

Saya ingin mengirim HTTP HEADpermintaan menggunakan wget. Apa itu mungkin?

Xiè Jìléi
sumber

Jawaban:

59

Ini bukan wget, tetapi Anda bisa melakukannya dengan mudah dengan menggunakan ikal.

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

Menghasilkan output ini:

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
SleighBoy
sumber
Inilah yang saya inginkan.
Xiè Jìléi
1
-Isetara dengan --head.
Nicolas Marchildon
1
Jika Anda memerlukan sertifikat yang ditandatangani sendiri https, Anda juga dapat menambahkan -katau--insecure
Mike Aski
36

Mencoba:

wget -S --spider www.example.com

Anda juga dapat meneruskan -O /dev/nulluntuk mencegah wgetdari menulis tanggapan HTTP ke file.

Coder Kasual
sumber
2
-Sakan menampilkan header, tetapi mengeksekusi a GET, bukan a HEAD. Dengan kata lain, itu akan mengambil seluruh URL.
Dan Dascalescu
9
wget -S --spider http://localhostlog yang dibuat di server apache adalah127.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

Tidak perlu ada ikal .

Dengan Wget, menambahkan --spiderberarti Anda ingin mengirim HEADpermintaan (sebagai lawan GETatau POST).

Ini adalah cara minimalis yang bagus untuk memeriksa apakah URL merespons atau tidak. Misalnya Anda dapat menggunakan ini dalam pemeriksaan tertulis, dan HEADoperasi akan memastikan Anda tidak memasukkan beban apa pun pada jaringan maupun server web target.

Informasi bonus: Jika Wget mendapat kesalahan HTTP 500 dari server ketika melakukan HEADitu maka akan pindah untuk melakukan GETterhadap URL yang sama. Saya tidak tahu alasan untuk desain ini. Ini adalah alasan mengapa Anda mungkin melihat kedua HEAD dan sebuah GETpermintaan yang dilakukan terhadap server. Jika tidak ada yang salah maka hanya HEADpermintaan yang dilakukan. Anda dapat menonaktifkan fungsi ini dengan --triesopsi untuk membatasi Wget hanya untuk satu upaya.

Secara keseluruhan, saya merekomendasikan ini untuk pengujian jika URL merespons:

# 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
ini menyenangkan
sumber
4

wget -S mendapat file:

Panjang Konten: 2316, Panjang: 2316 (2.3K) [teks / polos], Menyimpan ke: `index.html '

wget --spider mendapat tajuk:

Mode laba-laba diaktifkan. Periksa apakah file jarak jauh ada., Panjang: File teks [polos / polos] tidak ditentukan ada.

LanPartacz
sumber
-1

Meskipun tidak wget, banyak perlpemasangan dengan lwpmodul akan memiliki HEADperintah yang diinstal.

Homolka yang kaya
sumber