.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 4
.
<< Prev
HTML関連関数
« INDEX »
PHP WEB要素編
Next >>
定義済み変数による送信データの取得
作成日:2006/05/23

2B GET/POST

GETとPOST

 HTTPで、クライアント(ブラウザなど)からサーバへのデータを送信する際に最も良く使われる方法(メソッド)は GET と POST です。

  • GETメソッド ------ 送信データをURLの一部としてサーバに送る
  • POSTメソッド ----- HTTPボディに送信データを格納してサーバに送る

 次のようなHTMLフォームを考えて見て下さい。

<form action="form.cgi" method="get">
  ID <input type="text" name="id">
  PASSWORD <input type="text" name="pass">
  <input type="submit">
</form>

このフォームで送信ボタンを押すと、ブラウザはGETメソッドを使ってサーバにデータ( id と pass )を送信します。 また、method を "post" に変更すると、POSTメソッドを使ってサーバにデータを送信します。 以下にブラウザが送信するデータの実例を示します。

GETメソッドを使用したデータ送信例 POSTメソッドを使用したデータ送信例
GET /form.cgi?id=sunlight&psss=846 HTTP/1.1
Accept-Language: ja
User-Agent: Mozilla/4.0
Host: www.y2sunlight.com
Pragma: no-cache
(空行)
POST /form.cgi HTTP/1.1
Accept-Language: ja
User-Agent: Mozilla/4.0
Host: www.y2sunlight.com
Pragma: no-cache
(空行)
id=sunlight&psss=846

 上例の「id=sunlight&psss=846」が送信データです。

実際にはsubmitボタンの値も送信されますが、ここでは省略しています。
GETメソッドでの送信データ (「?」以下の文字列 ) はクエリ文字列(Query String)と呼ばれ、 CGIプログラミングでは環境変数 QUERY_STRING から取得できます。 また、CGIではPOSTメソッドの送信データを標準入力から読み込む事ができます。 PHPではこれらの送信データを定義済み変数( $_GET $_POST )を使って取得します。

 この例で分かるようにGETメソッドでは大きなデータは送信できません ( 環境により異なりますがリクエストURLの上限はせいぜい1Kバイト程度です )。 また、秘匿したいデータがブラウザのURLに現れてしまうなどの問題があります。 しかし、GETメソッドは現在でも比較的よく使用されている方法です。


クエリ文字列

 クエリ文字列とは、URLに含まれる「?」以下の文字列で、一般に以下の形式を取ります。 GETメソッドはクエリ文字列を使ってサーバにデータを送信します。

クエリ文字列:
クエリ変数=値 [&クエリ変数=値] [・・・]
  • クエリ変数が複数ある場合は、アンパサンド(&)で区切られます。
  • クエリ変数及び値はURLエンコードされている必要があります。 ( 「HTTP/HTML URL関数」を参照して下さい )
<< Prev
HTML関連関数
« INDEX »>
Page Top
Next >>
定義済み変数による送信データの取得

.