POSTとGETの明確な使い分け - PHPプロ!Q&A掲示板

334

  • 0P

POSTとGETの明確な使い分け

質問日時 / 2007年1月30日 17:12    回答数 / 8件

Questioner:  downtouch  このエントリーをはてなブックマークに追加 

キーワード / POST    GET    使い方   

PHPのシステムにおいて、POSTとGETの明確な使い分けをプログラマに説明したいのですが、正直「これだ!」という説明方法がわかりません。

どなたか良い説明方法がありましたらご教示願えませんでしょうか。
よろしくお願いします。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01kouichi66GETのパラメータを使う場合、ブラウザ依存でURLの
┃┗A01-1downtouchありがとうございました。 GETを使う場合はURLの長
┣A02sevenina僕の場合となるのでしょうが・・・ 基本的にGET
┃┗A02-1downtouchありがとうございました。 処理結果というのはPOST
┣A03signal何かしらのデータの保存・格納には POST 何かしらの
┃┗A03-1downtouchありがとうございました。 なんか、この2行をじっ
┗A04neoshivaGETは、簡単な値の持ち運び用。表示するためのIDであ
 ┗A04-1downtouchありがとうございました。 そうか。CSRFの為にわざ

回答一覧

並び替え:

A01 満足
answererkouichi66 [1月31日 05:58]

GETのパラメータを使う場合、ブラウザ依存でURLの長さの制限に引っかかり、
すべてのGETのパラメータが送られない場合があります。
(POSTのパラメータの長さの制限はサーバ依存です。)

そのため、フォームからの入力はなんらかの制限がない限り、POSTを使います。

ただし、検索エンジンなどに引っ掛けたい(お気に入りにしたい)ページの場合は、
GETのパラメータを利用した方がいいと思います。

この意見に回答する

ツリーへ TOPへ

A01-1
replyerdowntouch [2月2日 15:33]

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

GETを使う場合はURLの長さを考慮に入れなければいけない訳ですね。

> ただし、検索エンジンなどに引っ掛けたい(お気に入りにしたい)ページの場合は、
> GETのパラメータを利用した方がいいと思います。 

昔に検索サイトのクロールエンジンは「?」以降を無視すると聞いたことがありますが、本当にGETでよろしいでしょうか?最近は「?」以降も引っ掛けるのでしょうか?もしくはモッドリライトに対応させるのが無難でしょうか。

この意見に回答する

ツリーへ TOPへ

A02 参考になった
answerersevenina [1月31日 15:23]

僕の場合となるのでしょうが・・・


基本的にGETは使いません。
ほぼPOSTです。GETを使うときは、主に、処理結果のページを利用させたいときとかです。
なので、
僕の中では、「できあがるページ(処理結果)の使い道」によって使い分けている感じです。

参考になれば…幸いです。

この意見に回答する

ツリーへ TOPへ

A02-1
replyerdowntouch [2月2日 15:47]

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

処理結果というのはPOST値もGET値も処理すると思うのですが、「処理」の感覚的として複雑な計算とか集計とかのイメージで考えればしっくり来る気もしました。
だからたしかにPOSTなんかはあまり処理されない気がします。

この意見に回答する

ツリーへ TOPへ

A03 参考になった
answerersignal [1月31日 20:07]

何かしらのデータの保存・格納には POST
何かしらのデータの取得には GET

でいかかでしょう。

この意見に回答する

ツリーへ TOPへ

A03-1
replyerdowntouch [2月2日 15:40]

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

なんか、この2行をじっと考えているととても近い気がするのですが、GET値を集計として保存するケースもあるしなぁ。などと考えると微妙でした。

この意見に回答する

ツリーへ TOPへ

A04 満足
answererneoshiva [2月2日 01:47]

GETは、簡単な値の持ち運び用。表示するためのIDであるとか。

POSTは、登録内容など個人的で比較的重要なもの。

と使い分けています。

クロスサイトリクエストフォージュリ防止のためにも、書き込みや削除処理には必ずPOSTを使うようにしています。(POSTでも100%防げるものではありませんが)

delete.php?id=123

こんなGETで削除するIDを持ち運ぶと、
 < img src="delete.php?id=123">  というソースが書かれたページを表示するだけで実行されてしまいます。

そのほかセッション変数を使う方法も場合により使ってます。

この意見に回答する

ツリーへ TOPへ

A04-1
replyerdowntouch [2月2日 15:42]

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

そうか。CSRFの為にわざわざPOSTを利用したほうが良い場面が出てきそうですね!
とても参考になりました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)