jQuery入門 | Ajaxの利用 | Ajax: HTTPリクエストメソッド
HTTPリクエストメソッド(Method)
クライアントであるブラウザがサーバーにHTTPリクエストを送るときは、次のいずれかのメソッドを使用する。
- GETメソッド
- POSTメソッド
- PUTメソッド
- 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を除けば制限されていない。