私の受講過程「未来に向けて、今学んでおくべきこと」!☆☆☆☆☆☆☆☆☆☆☆ 〜特別招待〜

「未来に向けて、今学んでおくべきこと」 schoo web campusで受講中 ! 〜特別招待〜 https://schoo.jp/invitation/entry?token=648143679a8a439ac245cd7d30d93b75a33441c7&ref=tw

POST送信とGET送信

[[]]「GETとPOSTの使い分け」
getメソッドとpostメソッドは次のような考え方で使い分けます。

・getはその名の通り、何かをゲットする(取り出す)のが本来の役割です。データベースにキーワードを送って検索結果を「取り出す」などのためにgetを用います。
getを使った場合、その結果はクライアントのディスクにキャッシュされ、次回以降はそのキャッシュの内容を利用することが期待されているので、(少なくとも短期的には)同じクエリによるリクエストに対しては同じ結果を返さなければなりません。また、getはクエリがURIの一部になるため、それがそのままブックマークされたり、リンク先として用いられたりする可能性もあります。

・postは「投稿する」を意味します。メッセージの書き込み、新規データの登録など、何かをプログラムに送って内容を書き換えるような場合はpostを使わなければなりません。

getのクエリはサーバーの環境変数を経由してCGIに渡されるので、非常に長いデータを送るのには向きません。上限はサーバーによって違いがありますが、せいぜい数KB程度なので、texarea要素などで長いテキストを入力する場合はpostが適切です(一般的には、このようなケースはデータの登録であり、postの本来の定義に合致する使い方になるでしょう)。

getの場合はクエリの内容がURIの一部としてブラウザのアドレス欄などにも表示されたり、サーバーのログファイルに記録されたりします。プライバシーの保護上、postのほうが望ましい場合があるかもしれません(たとえばinput要素のtypeをpasswordとしているのに、getメソッドを使ってURIにその内容が残るのはまずいかも)。

検索などの常に一定の結果を伴うものはget、新しいデータの送信・登録はpostというのが原則です。



・GETはURLで送れるので情報ダダ漏れ
但しURL文字列になってるのでURLとして1つにできる
URLなので文字数の制限が有る

・POSTはURLとは別なのでダダ漏れには(見た目的に)なってなく、
文字数は余り関係ない
文字ではないので画像とかも扱える


簡単な情報送信やページングのみだったりするものはGETが未だに使われる
formのデータやアップロードの場合はPOSTが普通(危惧しているセキュリティの事も有るから)