HTTPリクエストヘッダーに含める必要がある必須情報は何ですか?


回答:


36

GET / HTTP/1.0 正当なHTTPリクエストです。

Hostヘッダーフィールドがない場合、宛先サーバーが、他の仮想ホストと区別するための独自のIPアドレスを持たない仮想ホストである場合、期待した結果が得られない場合があります。

HTTP 1.1にはHostフィールドが必要です。


1
私は少し自分自身を調査しましたが、あなたはまさに@gbroilesです。名前ベースの仮想ホスティングでは、一般にHTTP 1.1を使用したブラウザが必要です。ブラウザーはホストヘッダーでホスト名を送信し、Webサーバーは名前ベースの仮想ホストを提供します(構成されている場合)。古いブラウザとHTTP 1.0では多少可能ですが、ApacheのServerPathディレクティブのような回避策が必要です。幸い、HTTP 1.0を使用してホストヘッダーフィールドを確実に送信する場合、新しいブラウザーは拡張機能を実装します。w3.org/Protocols/rfc2616/rfc2616-sec14.html
ステファンクリスティン

1
実際にHTTP 1.0を実行するブラウザはまだありますか?
パセリエ

多くのユーザーエージェントはHTTP 1.0を使用します。Webブラウザーを使用するユーザーは、可能な場合はHTTP 1.1または2.0を使用しますが、HTTP 1.0のみをサポートするプロキシを介してアクセスできます。クローラーまたはボットはHTTP 1.0を使用できます。wgetHTTP 1.0を使用するような単純なクライアント。HTTP 1.1準拠のサーバーはHTTP 1.0クライアントをサポートするため、HTTP 1.0クライアントをサポートするためにサーバー側で必要な労力はありません(HTTP 1.1はHTTP 1.0のプログレッシブ拡張であるように構築されます;チャンクなどの非互換機能HTTP 1.0リクエストのエンコーディングとキープアライブのデフォルトはオフです)。
thomasrutter

3

要求にはHTTPヘッダーは必要ありません。必須の応答ヘッダーもありません。

HTTP 1.1のその他すべて-RFC 2616


15
あなたは間違っています。ここでリンクしたRFCによると、「クライアントは、すべてのHTTP / 1.1要求メッセージにHostヘッダーフィールドを含める必要があります」。したがって、Hostヘッダー必須です。
user219882

2
正しいですが、クライアントが最初にHTTP / 1.1を使用する必要はありません。
クリスS

2
Content-LengthまたはTransfer-Encodingは、エンティティが要求または応答で配信される場合にのみ必須であり、多くの場合、要求または応答にはエンティティがありません(GET要求や302応答など)。
ブランドンロードス

6
反対票を投じることはできませんが、この答えは間違っています。修正または削除してください。
vikingsteve

4
バイキングスティーブに同意します。あなたの答えは、HTTP 1.1には必要なヘッダーがないことを意味します。
-nullstellensatz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.