http://www.boutell.com/newfaq/misc/urllength.htmlに記載されているように、HTTPクエリ文字列の長さには制限があります。クライアント(Firefox、IE、...)、サーバー(Apache、IIS、...)、またはネットワーク機器(適用可能なファイアウォール、...)によって制限される可能性があります。
今日、私は検索フォームでこの問題に直面しています。多くのフィールドを含む検索フォームを開発しました。このフォームはGETリクエストとしてサーバーに送信されるため、結果のページをブックマークできます。
クエリ文字列の長さが1100バイトになるほど多くのフィールドがあり、1024バイトを超えるHTTPGETリクエストをドロップするファイアウォールがあります。システム管理者は、制限がないように、代わりにPOSTを使用することをお勧めします。
確かに、POSTは機能しますが、検索はPOSTではなくGETとして実際に感じます。したがって、フィールド名を確認してクエリ文字列が長すぎないことを確認し、長すぎない場合は実用的でPOSTを使用すると思います。
しかし、RESTfulサービスの設計に欠陥はありますか?GETリクエストの長さが制限されている場合、大きなオブジェクトをRESTful Webサービスに送信するにはどうすればよいですか?たとえば、ファイルに基づいて計算を行うプログラムがあり、次のようなRESTfulWebサービスを提供したい場合:http://compute.com?content=<base64 file>
。クエリ文字列の長さが無制限ではないため、これは機能しません。
私は少し戸惑っています...