我们知道浏览器本身 cookie 所能存储的大小有限,如果已超出最大容量,就无法继续设置 cookie,开发的时候如何确保剩余容量足够? 另外,假设用户访问了某个网站将其 cookie 写满,是否意味着后面访问的网站都无法正常设置 cookie? 有一种说法是用 document.cookie 获取长度计算字节,但是 document.cookie 正常情况是拿不到别的域名 /网站设置的 cookie 的吧,这样计算真的有效? 当然也可以 采用 localstorage/sessionstorage 之类的替代方案,但是感觉并不完全适用所有场景,例如 ls/ss 本身也有大小限制,是否也要考虑同样问题?并且他们不能设置有效期,也不会带到 http 请求头中去(有时候需要把 cookie 发送给服务端)。 那么怎样才能最好地解决这类问题?
1
viko16 2017-06-07 09:46:45 +08:00
|
2
SourceMan 2017-06-07 09:50:18 +08:00
如果塞满了 cookies,那么没个请求都携带所有的 cookie,不得爆了?
|
3
EXDestroyer OP @viko16 所以不同域之间的 cookie 不会影响各自 cookie 的设置?
|
4
jugelizi 2017-06-07 10:52:46 +08:00
。。。。瞎操心
你的项目多大把 cookie 用满了 |
5
EXDestroyer OP @jugelizi 不是,是因为有一组 json 序列化以后比较长,有时候会设置失败
|
6
reus 2017-06-07 11:04:15 +08:00
cookie 就是 cookie,不要做成满汉全席
|
7
EXDestroyer OP @reus 我之前一直有个疑问,所谓的 cookie 只有 4k 大小,是指单个域名还是浏览器本身?
如果是后者,别的网站所设置的 cookie 会不会导致容量被占据? |
8
sneezry 2017-06-07 11:10:38 +08:00 via iPhone
@EXDestroyer 大量数据存 localStorage 吧,那个 json 需要每个请求都带着么
|
9
firefox12 2017-06-07 11:17:32 +08:00
你理解错误,每个网站都是自己的 cookie, 如果一个网站可以让其他网站都无法使用 cookie 那设计浏览器的设计师都可以下岗了。
|
10
learnshare 2017-06-07 11:21:51 +08:00
|
11
sxlzll 2017-06-07 12:22:27 +08:00
1、去看下标准,起码看下 MDN
2、不要滥用 |
12
sneezry 2017-06-07 13:19:53 +08:00 via iPhone
@learnshare 看大量有多大吧,对于一个 json,localStorage 够用了。其他很多存储方法没有进 w3 的确认方案
|
13
meepo3927 2017-06-07 14:56:29 +08:00
什么功能要在 cookie 中携带大量信息?
建议重新设计一下. |