zoukankan      html  css  js  c++  java
  • 【转发】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

  • 相关阅读:
    在Python中调用C++模块
    [转载]科学家真懂统计学吗?
    [原]基因组变异检测概述
    [原]测序量估计
    软考之路—解答数据流图
    软考之路-搞定ER图到关系模式
    软考之路-网络攻击:主动攻击和被动攻击
    软考之路-计算机病毒
    初识ADO.net-访问数据的两种方式
    vb.net小试三层架构
  • 原文地址:https://www.cnblogs.com/firstcsharp/p/10257002.html
Copyright © 2011-2022 走看看