2

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 名の値を処理するために何か追加する必要がありますか?

4

0 に答える 0