我想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
請求(而不是GET
或POST
)。
這是檢查 URL 是否回應的極簡方法。例如,您可以在腳本檢查中使用它,該HEAD
操作將確保您不會對網路和目標網路伺服器施加任何負載。
額外資訊:如果 Wget 在執行 時從伺服器收到 HTTP 錯誤 500,那麼HEAD
它將繼續GET
針對相同 URL 執行 a。我不知道這樣設計的理由。這就是為什麼您可能會看到HEAD
和GET
對伺服器執行的請求。如果沒有任何問題,則僅HEAD
執行請求。您可以將--tries
Wget 限制為只能嘗試一次的選項來停用此功能。
總而言之,我建議使用此方法來測試 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
--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/