Cookies
Cookie允许同源的页面共享,是服务器端存储在客户端的一小部分数据,用于进行用户身份验证,大小不超过4KB,会随请求发送到客户端
具体的属性有:
1)Name
2)Value
3)Domain:设置允许访问cookies的域名
4)Path:设置路径
5)max-age:有效时间,单位秒
6)Expires:有效时间,GMT字符串
7)Secure:仅通过https传输
8)Same-Site,可以防御CSRF攻击,有三个值:
strict:禁止第三方网站的cookie
Lax:大部分情况禁止第三方网站cookie,除了get请求
none:不做任何限制,同时设置secure有效
session
也用于验证用户信息,服务器向客户端存入一个SessionID到Cookie中,具体数据存入服务器的文件或者数据库中,之后的请求都带上这个SessionID,服务器就能凭借SessionID在自己的session找到有关这个用户之前保存的一切信息和状态
cookie与session的区别
1)session存储在服务器端,cookies存储在客户端
2)单个Cookies保存的数据不超过4KB,一个站点最多报存20个Cookie,而对于session来说是没有上限的,但考虑到服务器的性能,session内不要放过多的信息,并设置session删除机制
3)cookies只能保管ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据,session可以存储任何类型的数据
4)Cookie对客户端是可见的,容易引发cookie欺骗,因此不太安全,session对客户端是透明的