2

httpポストヘッダーにスペースがあると、BADリクエストになりますか??

リクエストの 1 つにこれが表示されます: Content-Type "text/xml; c harset=utf-8"

HTTP/1.1 400 Bad Request が表示されます

ただし、同じリクエストが Content-Type "text/xml; charset=utf-8" で投稿された場​​合

つまり、文字セットにスペースがなくても機能します。

私の実装では、検証を行っていません。文字セットにスペースがあるため、Jetty サーバーが不適切な要求をスローすると想定していますか??

私は正しいですか、それとも私の解釈は間違っていますか。

ありがとう!!

4

1 に答える 1

1

はい、それを置くスペースがあると、悪い要求になるはずです。

HTTP 1.1 は、標準によって定義されたプロトコルです。標準ドキュメントを参照することで、有効なリクエストとそうでないリクエストを判断できます。

RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1で HTTP/1.1 の標準を見つけることができます。具体的には、セクション14.17 Content-Typeおよび3.7 Media Typesを確認することをお勧めします。

基本的に、スペースを に挿入すると、無効な HTTP 要求が作成されます。これは、プロトコルがとの部分"charset"を認識しないためです。それらは、そのコンテキストでは有効なテキストとして定義されていません。"c""harset"

さらに、プロトコルは有効に見えるものとそうでないものを認識していますが、このような単純なタイプミスでさえも修正する方法を推測するほどインテリジェントではありません。そのため、サーバーが「400 Bad Request」を応答するのは適切であり、プロトコル標準に準拠しています。RFC にはHTTP ステータス コードも記載されています。ステータス コード400 Bad Request の意味は次のとおりです。

構文が正しくないため、サーバーは要求を理解できませんでした。クライアントは、変更なしでリクエストを繰り返すべきではありません。

すなわち、それをしないでください。:)

于 2013-10-22T15:02:59.313 に答える