3

コンテンツ タイプが "application/x-www-form-urlencoded" の HTTP POST 要求には、& 区切り文字で連結された key=value ペアの形式で本文にエンコードされたパラメータがあります。http://www.opencalais.com/HTTPexamplesの例:

POST /enlighten/rest HTTP/1.1
Host: api.opencalais.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

licenseID=string&content=string&paramsXML=string

ユーザーが Web ページで通常の POST フォームに入力するとき、ブラウザはリクエストを送信するときにキー = 値のペアの特定の順序にバインドされません。

しかし、リクエストが中間サーバーによって渡されるとき、HTTP プロトコルはこの順序について何かを言いますか? Apache、nginx、IIS などのサーバーはパラメーターを再配置しますか? このような POST リクエストがサーバーに送信された場合、バックエンド サーバー コード (PHP、Perl、Java など) が、送信されたのと同じ HTTP リクエスト ボディにアクセスできると期待できますか?

4

1 に答える 1

5

ブラウザはツリー順application/x-www-form-urlencodedにデータを送信することになっています。仕様ではこれはあまり明確ではありませんが、注意深く見ればそれを引き出すことができます。x-www-form-urlencoded-encoding-algorithmおよびフォームデータセットの構築を参照してください。デコードセクションでは、出力を「名前と値のペアのソートされたリスト」とも呼びます。

そうです、正常に動作するプロキシは、フォームエントリの順序を保持する必要があります。

于 2013-01-28T08:20:28.807 に答える