0

私はhttp://www.w3schools.com/tags/ref_httpmethods.aspを調べて、GET 要求よりも POST 要求を常に好むとは限らない理由を考えました。GET リクエストの代わりに POST リクエストを使用する必要がある 2 つのシナリオが考えられます。これらは:-

1) URL をブックマークする必要がある場合

2) Web ページをキャッシュする必要がある場合 (POST 要求は Web ページをキャッシュしないため)、次回同じ URL がヒットしたときにキャッシュから取得してパフォーマンスを最適化できます。

POST リクエストはリソースを作成/更新するように設計されており、GET リクエストはリソースを取得するように設計されていますが、技術的にはその逆も使用できます。

だから私は、ポストがより安全であるため、GETリクエストよりもPO​​STリクエストを使用することが常に有益であるとは限らないのだろうかと思っていました(上記の2つの要件を除く)。私の理解は正しいですか?

4

1 に答える 1

0

HTTP を意図したとおりに使用する理由はたくさんあります。ここにカップルがあります:

  • Web の価値は URL に基づいています。POST 経由でしか取得できないページを提供するたびに、そのページへのリンクやブックマークのオプションを拒否していることになります。(もちろん、フォーム ボタンを作成することはできますが、それほど便利ではありません。) ページがある種の「サービス」であっても、リンクを張ることには多くの価値があります。

  • ユーザーが POST 経由で取得したページをリロードすると、ほとんどの Web ブラウザーは「フォームを再送信しています」という警告を表示し、アクションを確認します。これは、設計が不十分なアプリケーションでは、注文が重複したり、メッセージが重複して投稿されたりする可能性があるためです。したがって、副作用のないリクエストに GET を使用すると、この不要な警告がなくなります。実際、効果のある POST の有効な方法は、それらへの応答を、アクションの結果を説明するページの URL (ブラウザーが取得する) へのリダイレクトにすることです。(たとえば、POST がコメントを投稿した場合、コメントへのリンクにリダイレクトされます)。このようにして、ページがアクションを再実行しているかどうかについてあいまいさなしに、ページをリロードできます (これは、ブラウザーが再起動された場合などに暗黙的に行われる可能性があります)。

于 2013-09-29T16:11:11.247 に答える