2013-03-02 24 views
5

私はこのフォーラムでは新しく、この夜からPHPを学んでいます。GETメソッドとPOSTメソッドの違いは?

私は、フォームを送信したいが、私は違いがわからない:

<form action="page2.php" method="GET"> 

<form action="page2.php" method="POST"> 

誰もが私を助けてくださいでしたか?

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

+0

でHTTPリクエストについて詳しく読む:http://www.cs.tut.fi/~jkorpela/forms/methods.html – juanchopx2

+0

@johny G以前のリンクがない場合ヘルプ、チェックアウトhttp://www.w3schools.com/tags/ref_httpmethods.asp – Daniel

+0

[GETメソッドとPOSTメソッドの違い](http://www.jquery2dotnet.com/2014/03/difference-between-get-and -post-methods.html) – Sender

答えて

26

GET:彼らは

  • がブックマーク可能なURLの一部であるため

    • パラメータは、ブラウザの履歴に残ります。
    • パスワードやその他の機密情報を送信するときには、GETメソッドを使用しないでください。
    • 7607文字の最大サイズ。
    • のURL例:page2.phpカテゴリ=スポーツ

    POST:?

    • パラメータは、ブラウザの履歴に保存されません。
    • ブックマークできません。
    • パスワードやその他の機密情報を送信する際に使用されるPOSTメソッド。
    • POSTメソッドの最大サイズは8Mbです。
    • のURL例:GET要求を使用する場合は、フォームのパラメータはクエリ文字列と呼ばれるものでURLにエンコードされている
  • +2

    POSTの最大サイズは8MBではなく、サーバ側で設定できることに注意してください。 –

    +1

    私は、この回答には非常に多くのアップボイスがあり、人々は実際にそれを見つけてPOSTに限界があると思うということは奇妙です。また、両方の方法についても適切に説明していません。 –

    0

    page2.php。 例えば

    www.someemailprovider.com/[email protected]&password=xxyz

    POST要求は、GETリクエストとは異なり、HTTPリクエストの本体ではなく、URLのフォームパラメータを渡します。

    またGETは冪等であるとPOSTは、それはいくつかの追加データがへに追加されるかもしれサーバーは何も上のGETメソッドを呼び出した場合、サーバー上で変更されますが、POSTを呼び出した場合は、サーバが変更されることを意味しませんサーバーなので、GETは冪等であり、POSTはそうではありません。プログラマーとして心に留めておくべき

    主なものは、GETメソッドを使用するようにフォームを定義すること変化を引き起こすから保護しないということです。 GETリクエストを使用して、POSTクエリとほとんど同じことを行うことができます。ブラウザーは、POST要求が変更を引き起こすもの(注文の発注、データベースへの書き込みなど)に使用されることを期待するように一般的にコード化されています。 GET要求は、サーバー上の何も影響を与えない純粋な照会に使用する必要があります。だから、大画面テレビを注文するような、サーバーの変更を引き起こす何らかのアクションに対してGETリクエストを使用しないよう常に覚えておく必要があります。

    1

    慣習では、HTTP GETは検索フォームに使用され、HTTP POSTはフォームの変更に使用されます。 GETは、その情報をURLに公開して表示します。そこから変数を照会することができます。 POSTはその情報を表示しません。実際にセキュリティ上の違いはありません。

    -1

    これらは両方ともHTTPリクエストメソッドであり、PHPを排他的にするものではありません。

    $ _GETが末尾またはURLに追加されます。 PHPで、すなわちhttp://example.org/?foo=bar アクセスを:

    $foo = $_GET['foo']; 
    

    または$ FOO = $ _REQUEST [ 'FOO']。

    GETはあなたが気にすることのない情報に使用され、手作業でリンクやURLに入力して結果を得ることができます。

    $ _POSTは、あなたのURLには表示されず、一般的にフォームを送信した後に使用されます。 PHPで アクセスを:

    $foo = $_POST['foo']; 
    

    または $ FOO = $ _REQUEST [ 'FOO'];

    多分これはあなたを助けるかもしれないhttp://www.w3schools.com/tags/ref_httpmethods.asp