質問

複数のajax用途に過去に用いて取得要求の今は利用開始後の依頼です。ポスト要求う少し安全でありurlフレンドリー/かわいいです。このように、私は疑問があった場合はたいへんお世話になりました。はGETリクエストです。

役に立ちましたか?

解決

通常、質問は次のように設定します。リクエスト後に重要な変更はありますか(ロギングなどに関わらず)。存在する場合はPOSTリクエストである必要があり、存在しない場合はGETリクエストである必要があります。

「わずかに」POSTリクエストを呼び出すことができてうれしいです。なぜなら、それはほとんど彼らのものだからです。ユーザーによるページへのPOSTリクエストを偽装するのは簡単です。ただし、POSTリクエストにすることで、Webアクセラレーターまたはリロードが誤ってアクションを再トリガーすることを防ぎます。

AJAXとして、もう1つの考慮事項があります。コールバックをサポートしてJSONを返す場合は、他のWebサイトに見せたくない機密データをそこに置かないように非常に注意してください。ウィキペディアにはこれらの行に沿って脆弱性があり、ユーザーのCSRFトークンがJSON APIを介して明らかにされました。

他のヒント

副作用のないリクエストを行う場所では、GETを使用する必要があります。情報を取得するだけです。このリクエストは次のことができます。

  • 問題なく繰り返されます-ブラウザがエラーを検出した場合、静かに再試行できます
  • 結果をブラウザでキャッシュする
  • プロキシによってキャッシュされる

これらはすべて良いことです。データ(特に公開データ)のみを取得するものは、実際にはGETである必要があります。サーバーは、必要に応じてキャッシングを許可するために、適切なLast-Modified:およびExpires:ヘッダーを送信する必要があります。

ただし、質問への回答のすべての長所は、POSTリクエストよりも特定のシナリオではGETリクエストの方が便利です。

  1. ブックマークすることができます
  2. キャッシュできます
  3. 高速です
  4. 結果は既知であるため(データを変更しないと仮定)、複数の訪問 時間は問題ではありません。

後世のために、このコメントをブログノートre:ポイント#3で更新します。ここでは、Omar AL Zabir(参照先ブログ投稿):

  

" Atlasはデフォルトで、すべてのAJAX呼び出しに対してHTTP POSTを作成します。 HTTP POSTは   Http GETよりも高価です。回線を介してより多くのバイトを送信し、   したがって、貴重なネットワーク時間を費やし、ASP.NETに余分な処理をさせます   サーバー側での処理。したがって、Http Getをできるだけ多く使用する必要があります   可能。ただし、Http Getでは、オブジェクトを次のように渡すことはできません。   パラメーター。数値、文字列、日付のみを渡すことができます。作るとき   Http Get呼び出し、AtlasはエンコードされたURLを構築し、それにヒットします   url。そのため、URLが次のようになるコンテンツを渡しすぎないでください。   2048文字を超える。私の知る限り、それが最大値です   URLの長さ。

     

httpの投稿に関するもう1つの悪い点は、実際には2回の呼び出しです。最初   ブラウザはHTTP投稿ヘッダーとサーバー応答を“ HTTP 100で送信します   続行”。ブラウザはこれを受信すると、実際の本文を送信します。"

これは、GETを使用する場所とPOSTを使用する場所を決定するのに役立つ場合があります。

URI、アドレス指定可能性、HTTP GETおよびPOSTの使用

もう一つの違いはいつでもどなたでもご覧いた

取得要求に渡されたURLの文字列ることを得意としており、その対象の長さに制限は通常のブラウザです。

ポストを依頼することができなどがはるかに大きいとは限らないですね。していただける必要求からデータをwebサーバだけを通過する多くのパラメータ情報をそのPOSTリクエストを行うようにのみのオプションです。

なので、前述のように本当にGETリクエストするための要求するデータ(副作用はありませんが、ポストの要請は、原則として、送信データをサーバに保存する(側面)。例えば使用後のアップロードファイルです。車を取得するファイルです。

がIEだと思いが非常に短くURL文字列です。一部のアプリケーションLotus notesの使用多くのランダムな文字を代表するドキュメントidです。ったのに対して不快感のその他の製品を生成したランダムな文字列のページのURLのユニークなれます。ランダム文字列た...られなかった先もずっとIE6しました。

POSTリクエストは、GETと同じくらい安全ではありません。主な違いは、POSTを使用してサーバーアプリケーションの状態を変更するのに対して、GETはそこからのデータのみを要求することです。

クリーンで「落ち着いた」を使用する場合、違いは重要です。 URL。URL自体がリソースを指定し、さまざまなメソッドがサーバー側でさまざまなアクションをトリガーします。

おそらく最も重要なことは、GETはURL履歴でブックマーク/表示可能であり、Googleで検索できることです。

POSTは、イベントをブックマーク可能にしたりURLとして入力したりしたくない場合に重要です。そうしないと、ユーザー(またはGoogleがURLをクロールする)が誤ってたとえば、システムからユーザーを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top