HTTPメソッド
HTTPリクエスト
ポストデータ
- HTMLのPOST指定のformから送信されるデータ
- JSPのrequestオブジェクトから下記のメソッドで情報を取得できる
- getParameter
- getParameterValues
- リクエストボディのセットされて送信される
クエリ情報
- URLの末尾の"?"以降に「キー=値」のセットで付加される簡易な情報
- 複数のセットがある場合は"&"で連結される
- URLに直接指定するほか、HTMLのGET指定のformから送信されるデータ
- formのmethod属性が省略された場合もクエリ情報として送信される
- JSPのrequestオブジェクトから下記のメソッドで情報を取得できる
- クエリ情報に特殊文字が含まれる場合は、あらかじめエンコードしておく必要がある(form経由の場合はエンコード不要)
- URLに使用可能な文字数を超えて送信できない(2,083文字)
- FireFoxの場合は制限が無いが、動作が遅くなる場合もあるらしい
- データがアドレス欄に露出してしまう
ヘッダ情報
- 「名前: 値」形式
- 種類
- 一般ヘッダ(要求/応答時双方で利用)
- エンティティヘッダ(コンテンツに関する情報)
- リクエスト(要求)ヘッダ(クライアントに関する情報)
- レスポンス(応答)ヘッダ(その他)
- JSPのrequestオブジェクトから下記のメソッドで情報を取得できる
- ただし、情報取得専用メソッドが存在するヘッダについてはそちらを使う
■ヘッダ例
| 種類 |
ヘッダ名 |
概要 |
| 一般 |
Cache-Control |
キャッシュルールを規定する |
|
Connection |
プロキシ(中間)サーバで削除すべきHTTPヘッダを指定 |
|
Date |
コンテンツ生成日時 |
|
Pragma |
キャッシングを利用するか(下位互換用のヘッダ) |
|
Transfer-Encoding |
コンテンツの転送エンコーディング方式 |
| リクエスト |
Accept |
クライアント対応コンテンツの種類(優先順) |
|
Accept-Language |
クライアント対応言語(優先順) |
|
Authorization |
認証情報 |
|
Cookie |
クライアントに保存されたクッキーデータを送信 |
|
Host |
要求先ホスト名 |
|
If-Modified-Since |
指定日時以降にコンテンツが更新されている場合にのみ、サーバはデータを送信 |
|
Proxy-Authorization |
プロキシサーバ用の認証情報 |
|
Range |
要求リソース範囲 |
|
Referer |
リンク元URI |
|
User-Agent |
クライアントの種類 |
| レスポンス |
ETag |
リソースを一意に特定するためのキー情報(コンテンツが更新されていないかどうかを特定する場合などに使用) |
|
Location |
クライアントに新しいURIに移動するように促す |
|
Server |
サーバの種類 |
|
Set-Cookie |
クライアントにクッキーを送信 |
|
WWW-Authenticate |
クライアントに認証を要求 |
| エンティティ |
Content-Encoding |
コンテンツのエンコーディング方式 |
|
Content-Length |
コンテンツサイズ |
|
Content-Type |
コンテンツの種類 |
|
Expires |
コンテンツの有効期限 |
|
Last-Modified |
コンテンツの最終更新年月日 |
クッキー
- サーバがクライアントに対して自由に読み書きできるテキスト
- クッキーの有効期限
- 負数をセットした場合、ブラウザの終了時に削除される
- 0をセットした場合、その場で削除される
- 1以上をセットすると、その秒数分保持される
- クッキーのデメリット
- クライアント側でクッキーを受け入れないように設定することが可能
- クライアント側でクッキーの改竄や削除が可能
- 実データがネットワーク上を流れてしまう
- クッキーの制約
- 1つのホスト、ドメイン当たりの最大個数は20個(総数では300個以内)
- クッキー1つあたりの最大サイズは4096バイト
セッション情報
- 長期間にわたって情報を保持するには不向き
- ユーザがブラウザを開いている間だけアプリケーション内で情報を受け渡しする場合にはクッキーより手軽でセキュアな仕組み
- session
- JSPの暗黙オブジェクトの1つ
- 下記のメソッドを使って読み書きする
- getAttribute
- setAttribute
- @pageディレクティブのsession属性がfalseの場合は使えない
- sessionが不要の場合はsession属性をfalseにしておく(サーバリソースの節約)
- sessionを使うと…
- クライアントからサーバにリクエスト送信
- サーバからのレスポンスにSet-Cookieヘッダの値としてセッションIDが付加される(JSESSIONID)
- クライアントからサーバに2回目以降のリクエスト送信時、Cookieヘッダの値として、受け取ったJSESSIONIDを付加して送る
- サーバをそのセッションIDに該当するセッションを使って処理をし、レスポンスを返す
- セッションの破棄方法
- 明示的な破棄(session.invalidate())
- 有効期限を設定する(session.setMaxInactiveInteval())
- web.xmlにセッションの有効期限を設定する
- <session-config><session-timeout>
- セッションの寿命
- 明示的に破棄されるか有効期限を過ぎない限り、クライアントを閉じてもサーバ上で生き続ける
ieHTTPHeaders
最終更新:2010年03月03日 17:01