博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转发】Cookie存储的值大小限制和个数问题
阅读量:4446 次
发布时间:2019-06-07

本文共 1508 字,大约阅读时间需要 5 分钟。

Cookie以及LocalStorage、SessionStorage的区别

缓存机制对于用户访问网页来说是很方便的。如果将用户名,偏好设定或者其他一些数据存储到客户端,而不必每次访问网页都输入数据,可能对于用户体验会更好。常用的缓存机制有Cookie和Web缓存机制这两大类。

Cookie机制

Cookie应该算是HTTP里面的一个概念。关于HTTP协议,我会在HTTP模块整理一篇博客详细介绍,这里先做简单说明:在客户端请求服务端数据的时候,会发送一个HTTP请求,这个HTTP请求有头部信息,还有HTTP数据报文等等,服务端在接收到客户端的HTTP请求之后,会进行一些操作,然后发送一个HTTP响应给客户端,这个响应也包含头部信息和数据报文。响应头部里面会包含HTTP状态码,表示响应是否成功。如果不成功,其原因是什麽。
而加入Cookie的过程又是怎么样的?看下图:

- 首先,当客户端第一次访问服务器时,先发送HTTP请求给服务端;

- 服务端在收到客户端发来的HTTP请求之后,会在本服务器上做一些操作,操作结束会根据结果发一个HTTP响应给客户端。这时候,会在HTTP响应报文的头部中加入:Set-Cookie: name = value,并把该信息存储到本服务器上(Session);
- 客户端收到HTTP响应报文之后,会检查Set-Cookie字段,并将其值存储到浏览器中。当客户端第二次再去访问该服务器时,会将之前保存的信息取出来并在HTTP请求头部加上一个Cookie:name = value
- 这时候服务器收到HTTP请求报文之后,将Cookie取出来,与服务器存储的Session进行匹配,如果匹配上,用户信息验证成功。

Cookie限制

Cookie是保存在客户端磁盘上的,所以不宜占据太多磁盘空间。同时,Cookie是绑定在特定域名上的。当设定了一个Cookie之后,再给创建它的域名发一个请求时,还会包含该Cookie。所以对Cookie的限制是对每个域来说的。但各个浏览器也有不同:

IE6及以下每个域名最多包含20个Cookie;
IE7及以上每个域名最多50个Cookie;
Firefox每个域名最多50个Cookie;
Opera下每个域名最多30个Cookie;
Sarafi和Chrome对每个域的Cookie数目没有严格限制。

每个Cookie最大是4096B(加减一)。即对于大多数浏览器来说,Cookie大小是4096个字节,而对于少数浏览器,有的是4097B,而有的是4095B.因此为了浏览器兼容性,最好将Cookie大小限制在4095B之内。

现在有许多浏览器超过4087就无法存储了比如谷歌,为了放心最好在4087之内。

 

Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。

 

Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。

 

Internet Explorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。

 

 注:多字节字符计算为两个字节。在所有浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。

 

 

---------------------

作者:铛铛铛铛Huan
原文:https://blog.csdn.net/u010046318/article/details/72791786

转载于:https://www.cnblogs.com/firstcsharp/p/10257002.html

你可能感兴趣的文章
雷林鹏分享:Ruby 环境变量
查看>>
掉书袋的东东,我喜欢。。。
查看>>
通过MYSQL命令行直接建数据库
查看>>
safari 插件安装之alipay
查看>>
【语言处理与Python】3.3使用Unicode进行文字处理
查看>>
python+senium+chrome的简单爬虫脚本
查看>>
CoronaSDK场景管理库:Composer library (上)
查看>>
Centos 7 下 Zabbix 3.4.x 服务搭建
查看>>
PDO中捕获SQL语句中的错误
查看>>
C++之动态数组
查看>>
Linux常用命令大全
查看>>
System.Web.Optimization 找不到引用,教你如何解决?
查看>>
HTML深入探究(一)HTML入门
查看>>
flash 反编译 + 重新发布
查看>>
浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值...
查看>>
项目设计之一---------- 代码重构
查看>>
uva10125
查看>>
统计细胞数量
查看>>
GBase数据库——常用命令
查看>>
BMP字节流转成CBitmap类
查看>>