2016-05-18 18 views
0

私は基本的な問題を知っていますが、答えを見つけることができませんでした。私の質問は、私たちがGETメソッドからデータを挿入することができるときにも、安心してPOSTメソッドが必要な理由です。 GETとPOSTが異なる特定の機能がある場合GETがRestFulでGETがPOSTとして動作するときにGETメソッドとPOSTメソッドが必要な理由

ありがとうございました。

+1

「GETメソッドからデータを挿入することもできます」... GETを使用してデータを挿入することはできません。 GETはデータを読み込むだけです。 – sauumum

+2

1)POSTでは、データは本体にあり、理論的には無制限のサイズを持つことができますが、GETにはURLクエリのパラメータがあり、ブラウザ、ファイアウォール、ルーター、サーバーなど2)POSTは何かを変更するものとして定義されますが、GETはサーバー上の何かを変更するものではありません。したがって、ブラウザーはナビゲートまたは再試行時にGET要求を自由に再送しますが、例えばPOSTを再送信しようとしたときにユーザーに警告して、例えば何かを2回購入することを防ぎます。また、同じ理由でPOST結果はキャッシュされません。 – CherryDT

+0

PUTとPOSTの違いを知りたいと思います。私の前提が正しければ、http://stackoverflow.com/questions/630453/put-vs-post-in-restを見てください。 – sauumum

答えて

2

WebサービスのRestfulの要求を処理するために、HTTPプロトコルによって提供される標準的な方法を使用することをお勧めします:記録

  • を更新するために、データに
  • POSTを取得するための

    • GETこの大会に続き、レコード

    を削除するには、DELETE、レコード

  • を挿入するPUTはpersoのために簡単です。彼が知らない図書館を理解する。

    PUT /companies 
    
    :私は新しい会社を作成するには1

    GET /companies/1 
    

    によって識別できる特定の会社を取得するには、すべての企業

    GET /companies 
    

    を取得する必要がある場合

    ジャストアイデアを持っています

    会社の情報を更新するには1

    POST /companies/1 
    

    会社

    のすべての請求書を取得するには、会社のすべての扶養家族1

    GET /companies/1/dependents 
    

    を取得するために、1

    DELETE /companies/1 
    

    そして、この概念を拡張することにより識別される会社を削除するには

    GET /companies/1/invoices 
    

    など。

    あなたがしたいことが分かっているかのように、データを取得、変更、作成、削除するためのすべてのURLを簡単に再作成するのは簡単です。この規約に従う必要はありませんが、会社の外部から使用可能なWebサービスを作成して、すべての人のための標準を定義することが重要な場合は、特にお勧めします。


    また、GETメソッドをキャッシュすることができ、既存のインフラストラクチャ(プロキシ、ファイアウォール)で簡単に行うことができます。

  • 1

    これらは異なる方法であり、目的と仕様が異なります。

    GET要求のいくつかの他の注意事項:

    • GET要求が
    • GET要求が
    • GET要求が
    • GET要求はしてはいけませんブックマークすることができますブラウザの履歴に残るキャッシュすることができます機密データを扱うときに使用されます
    • GET要求に長さ制限があります
    • のGETリクエストはPOSTリクエストにデータを

    他のいくつかのノートを取得するためにのみ使用してください:

    • POSTリクエストは
    • POSTブラウザの履歴に残らない
    • POSTリクエストをキャッシュされることはありません要求はブックマークできません
    • POST要求にはデータ長の制限がありません

    これらは適切に使用する必要があります。使用および仕様の詳細については、look hereを参照してください。

    関連する問題