1、クッキーの基礎
クッキーは、クライアント側に保存されるテキストデータです。
セキュリティ上の制約、
・自分で発行したクッキーにしかアクセスできない。クッキーには発行元のホストの情報が記録されている。
・サイズや数の制限がある
ァ、クッキーは全部で300個まで
ィ、1個のクッキーのサイズは4Kバイトまで
ゥ、サーバ、ドメインごとに20個まで
・クライアントでオフにできる(ブラウザの設定で)
・クッキーはHttpヘッダにより送受信されるので、危険。
2、クッキーの取得、設定
・リクエストで送られたクッキーは、HttpServletRequest.getCookies()で取得する
・レスポンス時にクッキーの追加は、HttpServletResponse.addCookie()を使用する
3、クッキー操作
クッキーの操作はjavax.servlet.http.Cookieインタフェースを利用する
・clone(): java.lang.Object.clone メソッドをオーバライドしています。
・getComment(): Cookieの目的を記述したコメントを返します。
・getDomain(): Cookie にセットされているドメイン名を返します。
・getMaxAge(): Cookie の最長存続期間の値を秒単位の数値で返します。
・getName(): Cookie の名前を返します。
・getPath(): ブラウザが送り返してきた Cookie に含まれているサーバ上のパスを返します。
・getValue(): Cookie の値を返します。
・setComment(): Cookieの目的を記述するコメントをセットします。
・setDomain(): ドメインを指定します。
・setValue(): Cookie が生成された後で、新しい値を設定します。
等々
4、クッキーの有効期限
・ディフォルトは、ブラウザ終了するまで(セッションと同じ)
・setMaxAge()で期限設定可能
5、URLリライティング
クッキーが利用できない場合、同じクライアントであることを識別しセッションの維持方法として、URLリライティングがある。
URLリライティングは出力するHtmlの次のリンク部分にjsessionidというパラメータを付加することで実現される。
URLにjsessionidの付加は、HttpServletResponse.encodeURL()を使う。
URLリライティングの利用は、ブラウザの設定でクッキーをオフにしておく必要がある。
6、<HIDDEN>タグ
セッション情報を保存する手段の1つに、<HIDDEN>タグを利用する方法がある。
ただ、サブミット時に毎回<HIDDEN>タグも転送されるので、セキュリティや性能によくない。