工作原理:
cookie是存在用户硬盘中,用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。当用户再次访问这个站点时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该Cookie存在,浏览器就将它加到requestheader的Cookie字段中,与http请求一起发送到该站点。(cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,也就是说,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。)
1.优点:兼容性好
分担了服务器存储的负担
极高的扩展性和可用性
1.通过良好的编程,控制保存在cookie中的session对象的大小。
2.通过加密和安全传输技术(SSL(Secure Sockets Layer 安全套接层)),减少cookie被破解的可能性。
3.只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
4.控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
2.缺点:(流量)增加了网络流量;
(大小限制)每个特定的域名下最多生成20个cookie。数据容量有限,最多只能存储4KB的数据,浏览器之间各有不同;
(安全性)不安全;
浏览器提供了 cookie 属性给 javascript,因此可以通过 document.cookie 来访问这个页面中的cookie
获取cookie:var res = document.cookie;
设置cookie: document.cookie = "name=Jack; age=20; sex=男";(每一对cookie值与相邻的cookie值之间都会有一个分号和空格)
cookie的期限:expires expires的值的格式是toUTCString()后的格式
可以修改原cookie的expires、secure属性,但不能修改domain、path属性。修改cookie时domain、path必须与原cookie保持一致。
secure是 cookie 的安全标志,通过cookie直接包含一个secure单词来指定,也是cookie中唯一一个非名值对儿的部分。指定后,cookie只有在使用SSL连接(如HTTPS请求)时才会发送到服务器。不指定时,不论是 http 请求还是 https 请求,均会发送cookie。
存储在cookie的数据每次都会被浏览器自动放在http请求中。因此,如果这些数据不是每次都要发给服务器的话,这样做一定会增加网络流量。