【问题标题】:What is cookie allowed characters in modern/nowadays browsers?现代/当今浏览器中允许使用 cookie 的字符是什么?
【发布时间】:2014-05-03 16:32:27
【问题描述】:

如果您使用 cookie 来编码 utf-8 字符串或二进制信息,现代/当今浏览器中的 cookie允许字符是什么? p>

我从 2009 年开始在 StackOverflow 上找到了一些答案,但它已经过时并且完全指代现代浏览器,因为 5 年后情况正在发生变化。

我已经学过理论——或多或少:

  1. http://en.wikipedia.org/wiki/HTTP_cookie
  2. https://www.rfc-editor.org/rfc/rfc2965
  3. https://www.rfc-editor.org/rfc/rfc6265
  4. https://www.rfc-editor.org/rfc/rfc2109
  5. https://www.rfc-editor.org/rfc/rfc2616

它在现代实践中的样子:

  1. 火狐
  2. 野生动物园
  3. IE(XP、Win7、Win8)
  4. 歌剧
  5. Android/iOS

您能建议应该使用哪些字符吗?

应该使用什么编码(base64?)?

【问题讨论】:

  • cookie 规格完全没有改变,因此 2009 年的数据仍然相关。此外,cookie spec 完全独立于浏览器。
  • 我确信 2009 年的规范仍然适用,但这并不意味着现代浏览器将不支持不支持 base64 编码或使用 urlencode 方法的 utf8。

标签: http cookies httpcookie


【解决方案1】:

浏览器 cookie 中的有效字符未更改。 allowed-characters-in-cookies 中提到的内容仍然有效。

但是根据最近 JBoss 升级的经验,我建议对 base64 字符串进行 URLEncode 并将其用作 cookie 值。原因是 = 是按照规范的控制字符。在TomcatBugzilla-44679详细讨论和辩论。

【讨论】:

  • 可能是内部 JBoss 错误 - 因为所有内容都是 http 标头。感谢您的建议 - 我正在使用一些俚语 base64 什么是浪费字节但非常确定。我阅读了对这个旧答案的回复,但不清楚这个互联网标准。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
  • 2017-07-10
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多