NSHTTPCookieStorage
にクッキーを保存するために使用している iOS 7 アプリでは、 sharedHTTPCookieStorage
.
受信している Cookie の 1 つに、名前の値に非 ASCII 単語「Søren」が含まれています。HTTP トレースで設定されている Cookie を確認できますが、保持されている CookiesharedHTTPCookieStorage
は "Søren" の "S" の後に切り捨てられています。HTTP 応答ヘッダーに設定されている後続の Cookie はいずれも に保存されませんsharedCookieStorage
。実際、問題のある Cookie は切り捨てられた形式で 2 回保存されます。これは、フレームワークが再度解析を試みてあきらめたかのようです。
RFC2965 は次のように述べています。
名前=値が必要です。状態情報 (「cookie」) の名前は NAME で、その値は VALUE です。$ で始まる名前は予約されており、アプリケーションで使用してはなりません。
The VALUE is opaque to the user agent and may be anything the
origin server chooses to send, possibly in a server-selected
printable ASCII encoding. "Opaque" implies that the content is of
interest and relevance only to the origin server. The content
may, in fact, be readable by anyone that examines the Set-Cookie2
header.
次のように構成NSHTTPCookieStorage
しています。
NSHTTPCookieStorage *sharedCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[sharedCookieStorage setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicyAlways)];
これはNSHTTPCookieStorage
ではなくに関連していると思いNSURLResponse
ます。UTF-8 の Cookie 名の値を処理するために何か追加する必要がありますか?