Я хотел бы отправить 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. Я не знаю причин такого дизайна. Вот почему вы можете увидеть как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
Страница руководства 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/