2016-05-07 4 views
1

Как отправить другой HTTP-запрос методов через мой браузер? Я использую хром, но любой другой мог бы сделать.отправлять запросы с различными методами HTTP

Например, я хотел бы попробовать TRACE или OPTIONS методы для образовательных целей. Любая идея, как я могу это сделать?

Пример:

сообщение запроса:

OPTIONS * HTTP/1.1 
Host: www.joes-hardware.com 
Accept: * 

ответное сообщение:

HTTP/1.1 200 OK 
Allow: GET, POST, PUT, OPTIONS 
Context-length: 0 
+0

Есть ли какая-то особая причина, почему вы хотели бы сделать это через свой браузер? – DaSourcerer

+0

Точной потребности в браузере нет. Я только, что браузеры включили эту опцию. Любой другой инструмент. – brumbrum

ответ

1

Браузеров сам по себе не выдавать никаких запросов с глаголами (читайте: методы), кроме GET, POST, и HEAD. Однако по полномочиям они могут быть использованы для использования большого количества других методов через объект XmlHttpRequest. Тем не менее, вы будете out of luck с TRACE глагола:

Если метод случай чувствительный матч для CONNECT, TRACE или TRACK, бросить «SecurityError» исключение и прекратить эти действия.

Если вы не хотите или не должны быть связаны с браузером, существует немало вариантов. Для начала, для библиотеки Perl libwww существует GET, HEAD и POST утилиты командной строки, которые являются довольно аккуратными в использовании.

Более полное решение - cURL, что является довольно полным решением для множества протоколов. Его первоначальной целью было просто поймать файл с URL-адреса (c atch URL = cURL), что не обязательно означает наличие HTTP-сервера. С корректным URL-адресом cURL может загрузить вложение с электронной почты на сервере IMAP. Вас больше всего интересует опция командной строки cURL -X, которая позволяет указать произвольные глаголы для HTTP-запроса. Но, насколько это возможно, вероятно, будет no way, чтобы сообщить об этом OPTIONS * HTTP/1.1.

Как последнее усилие, я могу полностью рекомендовать netcat, который принимает входной канал и может полностью обрабатывать шифрование (что более удобно, чем s_client от openssl). Возможно, вы уже знаете, что вы можете эмулировать HTTP-запросы по telnet (если вы набираете достаточно быстро). Но я верю, что вы найдете Netcat с некоторыми heredoc пути более комфортным:

$ nc -v localhost 80 <<EOD 
GET/HTTP/1.1 
Host: localhost 
Connection: close 

EOD 

Netcat не говорит сам HTTP, поэтому вы сами ответственны за синтаксической правильности ваших запросов. С другой стороны, это дает вам полную свободу экспериментировать.

Смежные вопросы