1.Cookie
- 什么是Cookie?其作用?
- Cookie的工作机制
- Cookie的内容
HTTP协议本身是无状态的,而服务器端的业务必须是要有状态的。所以Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。无状态的意思就是服务器无法判断用户身份。Cookie实际上是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个cookie,客户端浏览器会把cookie保存起来,当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。
Cookie机制:
当用户第一次访问并登录一个网站的时候,cookie的设置以及发送会经历一下4个步骤:
客户端发送一个请求到服务器=>服务器发送一个HTTP Response响应到客户端,其中包含Set-Cookie的头部=>客户端保存cookie,之后向服务器发送请求时,HTTP Request请求会包含一个cookie的头部=>服务器返回响应数据
Cookie内容:
打开控制台,查看某网站的cookie:
Name=Value:cookie名称和对应的值,注意这里的NAME不能和其他属性项的名字一样
Domain:生成该Cookie的域名。Cookie是不可以跨域名的,隐私安全机制禁止网站非法获取其他网站的Cookie。正常情况下,同一个一级域名下的两个二级域名也不能交互使用Cookie
Path:表示这个cookie影响到的路径,浏览器跟会根据这项配置,向指定域中匹配的路径发送cookie。当设置为‘/’时,表示所有路径都可以使用该cookie。
Expired/Max-Age:有效时间,在设置的某个时间后该cookie就会失效。其中Max-Age为负数表示该cookie只是一个临时cookie,不会被持久化,仅在本浏览器窗口或者本窗口打开的子窗口中有效,关闭该浏览器后该cookie立即失效;当Max-Age为-1时,时间已经过期;Max-Age为0时,表示立即删除cookie。
Size:cookie的大小(单位)
HTTPOnly:告知浏览器不允许通过脚本document.cookie去更改这个值,同样这个值在document.cookie中也不可见。但在http请求仍然会携带这个cookie。注意这个值虽然在脚本中不可获取,但仍然在浏览器安装目录中以文件形式存在。这项设置通常在服务器端设置。
Secure:安全标志,指定后,只有在使用SSL连接时候才能发送到服务器,如果是http链接则不会传递该信息。就算设置了secure 属性也并不代表他人不能看到你机器本地保存的 cookie 信息,所以不要把重要信息放cookie就对了服务器端设置
2.Session Storage:
用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
内容:
3.LocalStorage:
用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除。比如Google浏览器的数据一般保存在:C:\Users\账户名称\AppData\Local\Google\Chrome\User Data里面。
Cookie和SessionStorage的区别:
保持状态:cookie保存在浏览器端,session保存在服务器端
存储的大小:单个cookie保存的数据不能超过4kb;session大小没有限制。
安全性:cookie:针对cookie所存在的攻击:Cookie欺骗,Cookie截获;session的安全性大于cookie。
(1)sessionID存储在cookie中,若要攻破session首先要攻破cookie;
(2)sessionID是要有人登录,或者启动session_start才会有,所以攻破cookie也不一定能得到sessionID;
(3)第二次启动session_start后,前一次的sessionID就是失效了,session过期后,sessionID也随之失效。
(4)sessionID是加密的
(5)综上所述,攻击者必须在短时间内攻破加密的sessionID,这很难。
应用场景:
cookie:
(1)判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除cookie,则每次登录必须从新填写登录的相关信息。
(2)保存上次登录的时间等信息。
(3)保存上次查看的页面
(4)浏览计数
session:
Session用于保存每个用户的专用信息,变量的值保存在服务器端,通过SessionID来区分不同的客户。
(1)网上商城中的购物车
(2)保存用户登录信息
(3)将某些数据放入session中,供同一用户的不同页面使用
(4)防止用户非法登录
更多参考文章:https://www.cnblogs.com/pengc/p/8714475.html