jQuery入門 | Ajaxの利用 | Ajax: HTTPリクエストメソッド

HTTPリクエストメソッド(Method)

クライアントであるブラウザがサーバーにHTTPリクエストを送るときは、次のいずれかのメソッドを使用する。

  1. GETメソッド
  2. POSTメソッド
  3. PUTメソッド
  4. DELETEメソッド

このほかにHEAD、OPTIONS、TRACE、CONNECTがあり、主に使用するのは上の4つである。 特にGETとPOSTの2つがもっともよく使われる。

GETメソッド

GETメソッドは、アドレスにデータ(data)を追加して送信する方式である。

GETメソッドのHTTPリクエストは、ブラウザによってキャッシュ(cached)され保存される。 また、GET方式は通常クエリ文字列(query string)に含まれて送信されるため、長さの制限がある。 したがってセキュリティ上の弱点があるため、重要なデータはPOST方式を使ってリクエストするのがよい。

POSTメソッド

POSTメソッドは、データ(data)を別途添付して送信する方式である。

POST方式のHTTPリクエストはブラウザによってキャッシュされないため、ブラウザ履歴にも残らない。 また、POST方式のHTTPリクエストによるデータは、クエリ文字列とは別に送信される。 したがってデータ長の制限もなく、GET方式よりセキュリティが高い。

GETメソッドとPOSTメソッドの比較

特徴 GETメソッド POSTメソッド
キャッシュ(cached) キャッシュされることがある。 キャッシュされない。
ブラウザ履歴 履歴にクエリ文字列が記録される。 履歴に記録されない。
データ長 データの長さはURLアドレスの長さ以内に制限される。Internet ExplorerでURLアドレスが持てる最大長は2,083文字で、このうち純粋なパス長は2,048文字まで許可される。 制限なし。
データタイプ ASCII文字タイプのデータだけを送信できる。 制限なし。
セキュリティ データがURLアドレスに含まれて送信されるため、誰でも見ることができ、セキュリティ上非常に弱い。 ブラウザ履歴にも記録されず、データが別途送信されるため、GET方式よりセキュリティが高い。

現在の主要Webブラウザで使用できるURLアドレスの最大長は、Internet Explorerを除けば制限されていない。