2016-05-07 13 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

自体は動詞を持つすべての要求を発行していないブラウザPOSTGET以外に、およびHEAD。しかし、の力によって、彼らはXmlHttpRequestオブジェクトを通して豊富な他の方法を使うように作ることができます。 方法は「SecurityError」例外を投げ、これらの手順を終了し、CONNECTTRACE、またはTRACKための大文字と小文字を区別一致する場合

:しかし、あなたはTRACE動詞でout of luckになります。

ブラウザに拘束する必要がない場合や、ブラウザにバインドする必要がない場合は、かなりのオプションがあります。はじめに、Perlのlibwwwライブラリには、GET,HEADPOSTコマンドラインユーティリティが付属しています。

より完全な解決策は、cURLです。これは、多数のプロトコルにとって非常に完璧なソリューションです。元々の目的は、単にHTTPサーバーからのものではないURL(c atch URL = cURL)からファイルを取得することでした。整形式のURLを使用すると、cURLは添付ファイルをIMAPサーバー上の電子メールからダウンロードできます。 cURLのコマンドラインインターフェイスの-Xオプションには、HTTPリクエストの任意の動詞を指定することができます。しかし、おそらくそれはおそらくno wayであり、それにOPTIONS * HTTP/1.1リクエストを発行するでしょう。

最終的な努力として、netcatを心からお勧めします。パイプ入力を受け入れ、暗号化を完全に処理できます(これはopensslのs_clientよりも快適です)。 telnet経由でHTTPリクエストをエミュレートできることはすでに知っているかもしれません(十分速く入力した場合)。しかし、私はあなたがより快適に何らかのheredoc方法でnetcatをを見つけるだろうと信じて:

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

EOD 

のnetcatは、何のHTTP自身を話さないので、あなただけではあなたの要求の構文正確に責任があります。一方、これにより、実験を自由に行うことができます。

関連する問題