Я хотел бы отправить запрос HTTP HEAD с помощью wget . Является ли это возможным?
5 ответов
Это не 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
Пытаться:
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 получает заголовки:
Режим паука включен. Проверьте, существует ли удаленный файл., Длина: не указано [текст / обычный] Удаленный файл существует.
Хотя это и не wget , во многих установках perl с модулем lwp будет установлена команда HEAD .
