すべてのデータが含まれる古い.aspxページを維持していますコンテンツを表示するためにページで必要とされるのは、クエリ文字列の一部としてGETリクエストのURLで渡されます。この結果、機能を追加し続けると、URLが大きくなり続けます。

すべてのパラメータをクエリ文字列からGETリクエストの本文にシフトすることを考えています。

これは適切な設計上の決定であり、GETリクエストでのボディのユースケースは何ですか?

コメント

  • 代わりにPOSTリクエストを使用してみませんか?
  • 私は何も作成または更新していないからです。サーバーから情報を取得しているだけです。
  • ' GETリクエストはべき等であると予想されます。同じURLを複数回リクエストすると、常に同等の結果が得られます。これは例えばキャッシュを可能にします(一部のブラウザやプロキシは非常に積極的に行います)。クエリパラメータをリクエスト本文に移動すると、この期待に違反することになりますので、これは避けてください。 'デバッグが難しい問題に備えています。残念ながら、一部のシステムでは、URLの長さが数KB程度に制限されています。まだAPIを設計していて、非常に複雑なクエリを処理することがわかった場合は、GraphQLAPIの方がRESTよりも適している可能性があります。
  • @amonの発言に加えて、GETに本文を配置します。リクエストは明示的にHTTP仕様に違反しています。 POSTを使用します。
  • @Manya このStackOverflowの回答に関するコメントでは、Elasticsearchについて少し説明しています。 Elasticsearchは通常、ブラウザによって直接消費されるのではなく、内部アプリケーションによってのみ消費されるため、柔軟性が少し向上します。クライアントとネットワークを完全に制御できます。

回答

本文が のGETリクエストはHTML仕様でサポートされています。

スタックオーバーフローの質問

このステートメントは正しいですか? HTTPGETメソッドには常にディスカッション用のメッセージ本文がありません。

ただし、これは珍しいことです。そのソリューションで人々を驚かせるでしょう。単にPOSTに切り替える方がよいでしょう。

唯一の欠点(利点?)は、RESTfulnessアコライトを煩わせることです。

コメント

  • 多くのjavascriptライブラリにはないため、技術的な欠点があります'本文を使用したGETをサポートします。検索を実行しているデータベースの場合、そのようにすることは論理的に理にかなっていますが、'単一ページのアプリからElasticSearchまたはSOLRインスタンス(このコンボが実装されているのを見た唯一のAPI)を呼び出すことができません。
  • この質問は同じことを言います: stackoverflow.com/questions/978061/http-get-with-request-body "はい。つまり、すべてのHTTPリクエストメッセージにはメッセージ本文を含めることが許可されているため、それを念頭に置いてメッセージを解析する必要があります。Serversemただし、GETのアンティックは、本文が存在する場合、要求に対して意味的な意味を持たないように制限されています。構文解析の要件は、メソッドのセマンティクスの要件とは別のものです。したがって、はい、GETを使用して本文を送信できますが、いいえ、そうすることは決して役に立ちません。 "実際の回答には詳細があります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です