1、cookie和session的区别
session是基于cookie实现的,cookie保存在客户端浏览器中,而session保存在服务器上。如果说cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份。session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
区别:
1、存在位置:
cookie存在客户端临时文件夹中;session存在于服务器内存中,一个session域对象为一个用户浏览器服务。
2、安全性
cookie是以明文的方式存在客户端的,安全性低,可以通过一个加密算法进行加密后存放;session存放于服务器内存中,所以安全性好。
3、生命周期
cookie的生命周期是累计的,从创建时就开始计时,时间到后生命周期结束。
session的生命周期是间隔的,从创建时开始计时,如果时间到了还没有访问session,那么session的生命周期被销毁。但是如果期间访问过session,那么将重新计算session的生命周期。关机会造成session生命周期的结束,但是对cookie没有影响。
4、访问范围
cookie为多个用户浏览器共享;session为一个用户浏览器独享。
2、浏览器存储的方式
补充:
cookie 原本并不是用来储存的,而是用来与服务端通信的,需要存取请自行封装 api。而 localStorage、sessionStorage 则自带 getItem 和 setItem 方法,使用很方便。
localStorage /sesstionStorage注意点:
只能存字符串,存取 JSON 数据需配合 JSON.stringify() 和 JSON.parse()。遇上禁用 setItem 的浏览器,需要使用 try…catch 捕获异常
3、HTTP的传输原理
HTTP想要发送一条报文的时候,需要经过以下两个步骤:
TCP三