WGET HEADリクエスト?


回答:


59

wgetではありませんが、curlを使用することで簡単に実行できます。

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

次の出力を生成します。

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

これはまさに私が欲しいものです。
謝Jìléi

1
-Iはと同等--headです。
ニコラスマーチドン

1
あなたは自己署名証明書ベースが必要な場合https、あなたはまた、追加することができます-k--insecure
マイク・ASKI

36

試してください:

wget -S --spider www.example.com

HTTP応答をファイルに書き込ま-O /dev/nullないように渡すこともできwgetます。


2
-Sはヘッダーを表示しますが、a GETではなくaを実行しHEADます。つまり、URL全体を取得します。
ダンダスカレスク14

9
wget -S --spider http://localhostapacheサーバーで作成されたログは127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
カジュアルコーダー

20

curlは必要ありません。

Wgetでは、追加--spiderすることは、HEADリクエストを送信することを意味します(GETまたはに対してPOST)。

これは、URLが応答するかどうかを確認するための優れた最小限の方法です。たとえば、スクリプト化されたチェックでこれを使用できます。HEAD操作により、ネットワークにもターゲットWebサーバーにも負荷がかからないようになります。

ボーナス情報:Wgetは、実行時にサーバーからHTTPエラー500を受け取った場合、同じURLに対してHEADを実行するために移動しGETます。このデザインの理由はわかりません。これが、サーバーに対して実行されている要求HEAD GET要求の両方が表示される理由です。何も問題がなければ、HEADリクエストのみが実行されます。--triesWgetを1回のみに制限するオプションを使用して、この機能を無効にできます。

全体として、URLが応答しているかどうかをテストするためにこれをお勧めします。

# 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 ファイルを取得します:

コンテンツの長さ:2316、長さ:2316(2.3K)[text / plain]、保存先: `index.html '

wget --spider ヘッダーを取得します:

スパイダーモードが有効です。リモートファイルが存在するかどうかを確認します。長さ:未指定[text / plain]リモートファイルが存在します。


-1

そうではありませんがwget、モジュールを使用した多くのperlインストールにlwpHEADコマンドがインストールされます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.