5

浅谈浏览器中的cookie

1. 概述

cookie是服务器保存在浏览器的一小部分文本信息,每个cookie都不能超过4kb。浏览器每次向服务器发出请求,就会自动附上这段信息。
cookie会保存以下几方面的信息。

Cookie的名字
Cookie的值
到期时间
所属域名(默认是当前域名)
生效的路径(默认是当前路径)

浏览器可以设置不接受cookie,也可以设置服务器发送cookie
window.navigator.cookieEnabeled属性返回一个布尔值,表示浏览器是否打开Cookie功能。
document.cookie属性当前网页的所有cookie,cookie返回的是分号分隔的所有cookie。
document.cookie属性也是可写的,可以通过它为网站添加cookie.
document.cookie = 'fontSize=14';
Cookie 的值必须写成key=value的形式。注意,等号两边不能有空格。
但是document.cookie一次只能写入一个cookie,而且写入的不是覆盖,而是添加。

2.Cookie的属性

服务器向浏览器发送cookie的时候,除了cookie本身的内容,还有一些可选内容,它们都必须以分号开头。

(1)value属性
value属性是必需的,它是一个键值对,用于指定Cookie的值
(2)expires属性
expires属性用于指定cookie过期的时间。如果不设置该属性,或者设为null,Cookie只在当前会话(session)有效,浏览器窗口一旦关闭,当前 Session 结束,该 Cookie 就会被删除。
(3)domain属性
domain属性指定cookie的域名信息。
(4)path属性用来指定路径。
(5)secure属性
secure属性用来指定Cookie只能在加密协议HTTPS下发送到服务器。
(6)max-age
max-age属性用来指定Cookie有效期,比如60 60 24 * 365(即一年31536e3秒)。
(7)HttpOnly
HttpOnly属性用于设置该Cookie不能被JavaScript读取。

3.Cookie的限制

长度限制:只能不超过4kb

4.同源政策

浏览器的同源政策规定,两个网址只要域名相同和端口相同,就可以共享 Cookie。

Http-Only Cookie

设置 Cookie 的时候,如果服务器加上了HttpOnly属性,则这个 Cookie 无法被 JavaScript 读取(即document.cookie不会返回这个Cookie的值),只用于向服务器发送,防止XSS攻击盗取Cookie.

5.Cookie的作用

  1. 识别用户身份
  2. 记录用户的操作历史

zhanziwei
75 声望1 粉丝

« 上一篇
MVC是什么
下一篇 »
HTTP入门知识