本帖最后由 yangrui 于 2018-10-23 11:20 编辑
cookie
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。为了解决这样的问题,我们就可以给客户端们颁发一个身份证吧,每人一个,无论谁访问都必须携带自己身份证。这样服务器就能从身份证上确认客户身份了。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response响应对象向客户端浏览器颁发一个Cookie。客户端浏览器会将Cookie保存起来。当浏览器再请求该网站时,浏览器会自动的把Cookie提交给服务器。服务器检查该Cookie,以此来辨认用户信息。服务器还可以根据需要修改Cookie的值。
Cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,Cookie就消失。
Cookie具有不可跨域名性,比如淘宝网给你的Cookie,你在请求京东的时候就不会带上这个Cookie。
Session
除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“身份证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
Cookie和Session的区别
1、Cookie数据存放在客户的浏览器上,Session数据存放在服务器上。
2、Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗,所以一些机密的信息不建议存放在Cookie中。
3、Session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用Cookie。
4、单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie。
|
|