Я хотел бы отправить HTTP HEAD
запрос, используя wget
. Является ли это возможным?
52
Это не 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
-I
эквивалентно--head
.https
, вы также можете добавить-k
или--insecure
Пытаться:
Вы также можете передать,
-O /dev/null
чтобы предотвратитьwget
запись HTTP-ответа в файл.источник
-S
будет показывать заголовки, но он выполняетGET
, а неHEAD
. Другими словами, он будет получать весь URL.wget -S --spider http://localhost
журнал, созданный на сервере Apache,127.0.0.1 - - [04/Mar/2014:15:36:32 +0100] "HEAD / HTTP/1.1" 200 314 "-" "Wget/1.13.4 (linux-gnu)"
Там нет необходимости для завитка .
С Wget добавление
--spider
подразумевает, что вы хотите отправитьHEAD
запрос (в отличие отGET
илиPOST
).Это отличный минималистичный способ проверить, отвечает URL или нет. Например, вы можете использовать это в проверках по сценарию, и
HEAD
операция будет гарантировать, что вы не будете загружать ни сеть, ни целевой веб-сервер.Дополнительная информация: если Wget получает HTTP-ошибку 500 от сервера при выполнении,
HEAD
он затем переходит к выполнению сопоставленияGET
с тем же URL-адресом. Я не знаю причины этого дизайна. Это причина , почему вы можете увидеть одновременноHEAD
иGET
запрос выполняется на сервере. Если все в порядке, выполняется толькоHEAD
запрос. Вы можете отключить эту функцию с--tries
возможностью ограничить Wget только одной попыткой.В общем, я рекомендую это для тестирования, если URL отвечает:
источник
wget -S
получает файл:wget --spider
получает заголовки:источник
Хотя нет
wget
, во многихperl
установках сlwp
модулем будет установленаHEAD
команда.источник