【转发】Cookie存储的值大小限制和个数问题

摘要:
Cookie以及LocalStorage和SessionStorage的差异缓存机制非常方便用户访问网页。常见的缓存机制包括cookie和Web缓存机制。Cookie机制Cookie应被视为HTTP中的一个概念。添加cookie的过程是什么?Cookie限制Cookie保存在客户端磁盘上,因此它们不应占用太多磁盘空间。同时,cookie被绑定到特定的域名。因此,对cookie的限制针对每个域。每个cookie的最大大小为4096B(加或减一)。在所有浏览器中,任何大小超过限制的cookie都将被忽略,并且永远不会被设置。

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

免责声明:文章转载自《【转发】Cookie存储的值大小限制和个数问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇购物篮模型&Apriori算法基于Mix网络的通信系统安全性性能分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅谈Js 操作Cookie,以及HttpOnly 的限制

. Js 操作 Cookie. 一般来说,只有服务器操作Cookie 才能保证一些必要的安全。但有时候,可能需要前端来增删改查 Cookie, 这个时候咱们的主角出现了——HttpOnly(๑•̀ㅂ•́) ✧. HttpOnly: HttpOnly is an additional flag included in a Set-Cookie HTTP re...

CSRF(Cross Site Request Forgery, 跨站请求伪造)

一、CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的概念。...

python爬虫+使用cookie登录豆瓣

2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载。 前言:先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装python2.7和python3.6两个版本(本次使用python3.6),IDE为pycharm,浏览器为chorme,使用的python第三方库为requests...

2-7-搭建DNS服务器实现域名解析

  学习服务的方法: 了解服务的作用:名称,功能,特点 安装服务 配置文件的位置,端口 服务开启和关闭的脚本 修改配置文件(实战举例) 排错(从上到下,从内到外) ---------------------------------------- 大纲: DNS服务器常见概念 DNS服务器安装及相关配置 实战:配置DNS服务器解析 实战:使用DNS支持递归...

会话管理(Cookie/Session技术)

什么是会话:用户打开浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程就称为一个会话; 会话过程需要解决的问题:每个用户在使用浏览器与服务器进行会话的过程中,都可能会产生一些数据,这些输入如何来进行保存?比如用户在购物网站浏览的商品记录,用户添加购物车的记录等等这些信息如何进行存储?在程序中会话跟踪是一件非常重要的事情,一个用户的...

SpringBoot实现JWT认证

SpringBoot实现JWT认证 本文会从Token、JWT、JWT的实现、JWTUtil封装到SpringBoot中使用JWT,如果有一定的基础,可以跳过前面的内容~ Token 简介 Token 是一个临时、唯一、保证不重复的令牌,例如智能门锁,它可以生成一个临时密码,具有一定时间内的有效期。 实现思路 UUID具有上述的特性,所以我们可以使用UUI...