Wget HEAD 請求?

Wget HEAD 請求?

我想HTTP HEAD使用 發送請求wget。是否可以?

答案1

它不是 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

答案2

嘗試:

wget -S --spider www.example.com

您也可以-O /dev/null透過阻止wget將 HTTP 回應寫入檔案。

答案3

沒有任何必要捲曲

對於 Wget,新增--spider表示您要發送HEAD請求(而不是GETPOST)。

這是檢查 URL 是否回應的極簡方法。例如,您可以在腳本檢查中使用它,該HEAD操作將確保您不會對網路和目標網路伺服器施加任何負載。

額外資訊:如果 Wget 在執行 時從伺服器收到 HTTP 錯誤 500,那麼HEAD它將繼續GET針對相同 URL 執行 a。我不知道這樣設計的理由。這就是為什麼您可能會看到HEAD GET對伺服器執行的請求。如果沒有任何問題,則僅HEAD執行請求。您可以將--triesWget 限制為只能嘗試一次的選項來停用此功能。

總而言之,我建議使用此方法來測試 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

Ubuntu 19.10 線上說明頁:Wget

   --method=HTTP-Method
       For the purpose of RESTful scripting, Wget allows sending of other HTTP Methods
       without the need to explicitly set them using --header=Header-Line.  Wget will use
       whatever string is passed to it after --method as the HTTP Method to the server.

在我的 bash 腳本中使用了以下內容,可以確認它按預期工作!

wget --method=HEAD https://www.website.com/

相關內容