ページ

2009年8月26日水曜日

NSHTTPCookieStorage相当のクラスを自前で実装する (3)クッキーの送出

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

今回は受け取ったクッキーを送出する処理を加える。

前回のサンプルは受け取りだけしか行わないので、そのまま google.cmのログイン処理を行っても警告が出てログインできない。


今回のゴールはクッキーを無事送出してログインできるようにすること。


[Studying HTTP] HTTP Cookiesを参考に送出のルールをまとめてみた。

Cookie送出ルール
1. expires(有効期限)< 現在日時

2. domain がリクエストURLのホスト名と後方一致する
  (例)domainが ".xcatsan.com" の場合、"www.xcatsan.com" はOK

3. path がリクエストURLのパスと前方一致する(ただしパスの区切りを考慮)
  (例)pathが "/foo" の場合、"/foo/bar.html" は OK
     pathが "/foo" の場合、"/foooo/bar.html" は NG (*)

4. secure が TRUEの場合、HTTPSのみ OK

5. 同じ domain 内で、同じ name の Cookieが存在する場合は、
  より詳細な方を返す。
  (例)pathが "/acme" と "/acme/ammo" で同じ nameの Cookieが存在する場合、
     a) リクエストURLのパスが "/acme/ammo/test.html" の場合、後者を返す
     b) リクエストURLのパスが "/acme/parts/some.html" の場合、前者を返す


上記をざっくりと実装してみよう。