zaLinux.ru

Как отправить HTTP запрос OPTIONS из командной строки (РЕШЕНО)


Программа cURL позволяет отправить HTTP запрос любым методом, в том числе OPTIONS, HEAD, POST, PUT, DELETE, CONNECT, TRACE, PATCH и даже любым другим произвольным именем.

Для этого в cURL используется опция -X. Эта опция в различных протоколах позволяет установить команду для выполнения вместо стандартной, а в протоколе HTTP позволяет указать метод запроса.

OPTIONS /путь

С cURL можно отправить запрос OPTIONS примерно так:

curl -i -X OPTIONS http://example.org/path

Также можно использовать -v вместо -i, чтобы видеть больше вывода.

Пример с опцией -v, при которой заголовки отправляются в вывод ошибок, при этом можно уничтожить стандартный вывод, чтобы он не загромождал экран:

curl -v -s -X OPTIONS 87.236.16.208 > /dev/null

На скриншоте вы можете увидеть строку со списком поддерживаемых опций:

< Allow: POST,OPTIONS,GET,HEAD

Это означает, что запрос выполнен правильно.

OPTIONS *

Чтобы отправить простой * (вместо пути, смотрите RFC 7231) с методом OPTIONS, вы можете запустить команду примерно так:

curl -v -s --request-target "*" -X OPTIONS 87.236.16.208 > /dev/null

Как отправить HTTP запрос с произвольным методом

Используя опцию -X можно отправить запрос с любым именем, например:

curl -v -s -X HACKWARE 87.236.16.208 > /dev/null

Строка в которой сказано, что «Не реализовано» и код статуса 501 — именно это и ожидалось:

< HTTP/1.1 501 Not Implemented

Опция -X в cURL

Опция -X, или длинная версия --request <КОМАНДА> в cURL работает по-разному в зависимости от протокола, с которым она используется.


С протоколом HTTP

Задаёт настраиваемый метод запроса для использования при взаимодействии с HTTP-сервером. Указанный метод запроса будет использоваться вместо метода, который в противном случае использовался (по умолчанию GET). Прочтите спецификацию HTTP 1.1 для получения подробностей и пояснений. Общие дополнительные HTTP-запросы включают PUT и DELETE, но связанные технологии, такие как WebDAV, предлагают PROPFIND, COPY, MOVE и другие.

Обычно эта опция вам не нужна. Все виды запросов GET, HEAD, POST и PUT скорее вызываются с помощью специальных параметров командной строки.

Эта опция изменяет только фактическое слово, используемое в HTTP-запросе, но не влияет на поведение curl. Так, например, если вы хотите сделать правильный запрос HEAD, использования -X HEAD будет недостаточно. Вам нужно использовать параметр -I, --head.

Строка метода, которую вы установили с помощью -X, --request, будет использоваться для всех запросов, что, если вы, например, используете -L, --location, может вызвать непреднамеренные побочные эффекты, когда curl не изменяет метод запроса в соответствии с HTTP 30x коды ответов - и тому подобное.

С протоколом FTP

Задаёт настраиваемую команду FTP, которая будет использоваться вместо LIST при составлении списков файлов с помощью FTP.


С протоколом POP3

Задаёт настраиваемую команду POP3 для использования вместо LIST или RETR.

С протоколом IMAP

Задаёт настраиваемую команду IMAP для использования вместо LIST.

С протоколом SMTP

Задаёт настраиваемую команду SMTP для использования вместо HELP или VRFY.

Если эта опция используется несколько раз, будет использован последняя.

Смотрите также большую статью «HTTP протокол», которая содержит подробное, но написанное простым языком описание протокола.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *