浏览器的cookie
2022-04-18 本文已影响0人
海豚先生的博客
概述
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是cookie,cookie可以存储sessionId.
Cookie是存储在客户端上的一小段数据,浏览器(即客户端)通过HTTP协议和服务器端进行Cookie交互。
cookie由服务端设置好后返回给浏览器,浏览器在下次请求接口时附带在http头信息中回传。
在JavaScript中可以通过 document.cookie 来读取或设置这些信息,服务端的语言也可以存取 cookie.
Cookie不是越多越好,它会增加带宽,增加流量消耗,所以不要滥用Cookie;不要把Cookie当作客户端的存储器来用。每个域名限制cookie大小为4Kb
cookie的格式
- Set-Cookie: key = value; Path=/
- Cookie中存放的信息包含cookie本身属性和用户自定义属性,Cookie本身属性有”Comment” 、”Domain”、”Max-Age”、”Path”、”Secure”、”Version”。
- Comment 属性是对该cookie的描述;
- Domain 属性定义可访问该cookie的域名,对一些大的网站,如果希望cookie可以在子网站中共享,可以使用该属性。例如设置Domain为 .bigsite.com ,则sub1.bigsite.com和sub2.bigsite.com都可以访问已保存在客户端的cookie,这时还需要将Path设置为/。
可以看下简书的cookie配置信息 - Max-Age 属性定义cookie的有效时间,用秒计数,当超过有效期后,cookie的信息不会从客户端附加在HTTP消息头中发送到服务端。如果cookie定义了有效期,则本保存在客户端本地磁盘,如果不指定生存有效时间,则cookie只在浏览器关闭前有效
- Path 属性定义网站上可以访问cookie的页面的路径,缺省状态下Path为产生cookie时的路径,此时cookie可以被该路径以及其子路径下的页面访问;可以将Path设置为/,使cookie可以被网站下所有页面访问。
- Secure 属性值定义cookie的安全性,当该值为true时必须是HTTPS状态下cookie才从客户端附加在HTTP消息中发送到服务端,在HTTP时cookie是不发送的;Secure为false时则可在HTTP状态下传递cookie,Secure缺省为false。
- Version 属性定义cookie的版本,由cookie的创建者定义。