cookie
cookie不可跨域,每个cookie都会绑定单一的域名
图文解析:
属性:
- name、value:键值对,不多说(值最好进行URL编码。有一种说法:cookie规定是名称/值是不允许包含分号,逗号,空格的,考虑服务器的兼容性,任何存储cookie的数据都应该被编码)
- domain: 域名,没有设置,自动绑定到执行语句的当前域,同一个域名下的二级域名不可以交换使用cookie;
- path: 默认是'/',匹配的是web的路由; (默认路径 www.baidu.com;‘/blog’路径 www.baidu.com/blog)
- Expires/Max-age: 有效期;常见两种值:1.session:当关闭浏览器结束会话时,这个cookie会被删除(会话储存);2.一个具体时间:Max-Age以秒为单位。正数时cookie会在Max-Age秒之后删除;负数表示的是临时储存,存在浏览器内存中,浏览器关闭失效;为0时删除cookie;
- secure: true时,cookie只会在https和ssl等安全协议下传输;
- HttpOnly: 常考,设置为true,不能通过js脚本来获取cookie的值,能有效的防止xss攻击
js操作cookie:
设置:document.cookie='myname=laihuamin;path=/;domain=.baidu.com';
获取:document.cookie
服务器设置cookie:
打开控制台,看一个http的请求头和响应头中的东西即可明白:
服务端就是通过setCookie来设置cookie的