【转发】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存储的值大小限制和个数问题的更多相关文章
- js获取cookie中存储的值
最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...
- cookie : 存储数据
cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 1.不同的浏览器存放的cookie位置不一样,也是不能通用的 2.cookie的存储 ...
- cookie存储对象信息
最近看到某公司某项目中用于保存多个城市信息到cookie中的方法,该方法的逻辑是按时间顺序记录最近访问过的三个城市的名字及id,逻辑包插入与含排重.插入与排重的代码如下: 1 2 3 4 5 6 7 ...
- js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总
在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要. 什么是Cookie 所谓Cookie,只是一条极为短小的信息, ...
- Cookie存储中文报错:java.lang.IllegalArgumentException: Control character in cookie value or attribute.(转)
项目中做自动登录和保存密码时,Cookie报错Java.lang.IllegalArgumentException,上google查了下 在http://hi.baidu.com/xtxycy/blo ...
- cookie的存值和取值方式
最近在开发中存储用户名信息,为了方便就使用了sessionStorage,但是写好才想到sessionStorage在IE下面是不支持的,所以无奈还是使用了cookie 那么接下来就谈谈怎么使用coo ...
- JavaScript一个cookie存储的类
所有输出都在浏览器的控制台中 <script type="text/javascript"> /** * cookieStorage.js * 本类实现像localSt ...
- python获取内存地址上存储的值
在python中,可以通过id()这个方法来获取对象的内存地址. 但是反过来,怎么获取内存地址上存储的值? 先看一段代码: from ctypes import string_at from sys ...
- js设置、获取单值cookie和多值cookie
js设置.获取单值cookie和多值cookie,代码如下: var CookieUtil = (function () { var Cookie = function () { // 获取单值coo ...
随机推荐
- Centos7.1 mini版安装后安装图形界面教程
[1]GNOME安装 1.执行下面命令安装GNOME Desktop Environment yum -y groups install "GNOME Desktop" 2.安装完 ...
- js读取xml文件
假设我们现在要读取下面的 info.xml 文件 <?xml version="1.0" encoding="gb2312"?> <root& ...
- ***PHP基于H5的微信支付开发详解(CI框架)
这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可 ...
- Delphi数据库数据用文件流方式快速写入Excel文件
在开发数据库应用程序中,经常要将类型相同的数据导出来,放到Excel文件中,利用Excel强大的编辑功能,对数据作进一步的加工处理.这有许多的方法,我们可以使用OLE技术,在Delphi中创建一个自动 ...
- h5的图片预览
h5的图片预览是个好东西,不需要保存到后台就能预览图片 代码也很短 <!DOCTYPE html> <html> <head> <meta charset=& ...
- BZOJ5074 小B的数字 BZOJ2017年10月月赛 其他
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5074 题意概括 题解 作为蒟蒻的我第一个就选择了过的人最多的D题. 不仔细看好吓人. 然而并不难. ...
- Java Web报错: GET http://localhost:8080/ 404 (Not Found)
eclipse正常启动tomcat,但是 访问http://localhost:8080 报404错误 搞笑的是我访问服务器中的其他网页也可以打开 报错如下: 解决: 如果这3项都已经变灰色,删除配置 ...
- Poj - 3254 Corn Fields (状压DP)(入门)
题目链接:https://vjudge.net/contest/224636#problem/G 转载于:https://blog.csdn.net/harrypoirot/article/detai ...
- WebPack 学习:从阮神的15个DEMO开始
WebPack 是什么 官方就一句话,打包所有的资源. 从阮神的 15 DEOM入手 Webpack Github 地址 阮神GIT 按照 ReadME 操作 npm webpack-dev-serv ...
- IdentityServer4-从数据库获取User进行授权验证(五)
本节将在第四节基础上介绍如何实现IdentityServer4从数据库获取User进行验证,并对Claim进行权限设置. 一.新建Web API资源服务,命名为ResourceAPI (1)新建API ...