一篇文章了解 cookie,session

222 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情

1.1 cookie 由来

HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。要跟踪该会话,必须引入一种机制。Cookie就是这样的一种机制 http是一个无状态协议,服务器从网络上无法知道客户身份,因此需要客户端有一个通行证访问的时候带上,这样就知道了客户身份。--->cookie工作原理

1.2cookie是什么

Cookie实际上是一小段的文本信息。 客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

2.session

2.1 什么是session

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。

客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。 Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话, Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。 Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

2.2Session的有效期

服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。

如果超过了超时时间没访问过服务器,Session就自动失效了

 

3.cookie,session区别

Cookie和Session都是会话技术 

  1. cookie 存储在客户端(客户的浏览器上)

session 存储在服务器上

  1. 单个cookie不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。 session没有对存储的数据量的限制,可以保存更为复杂的数据类型 session保存在服务端上会在一段时间内才消失,如果session过多会增加服务器的压力

session很容易失效,用户体验很差;     虽然cookie不安全,但是可以加密 ;     cookie也分为永久和暂时存在的;     浏览器 有禁止cookie功能 ,但一般用户都不会设置;

1.一定要设置失效时间,要不然浏览器关闭就消失了;

  1. 3.Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击

4.使用

 记住密码功能就是使用永久cookie写在客户端电脑,下次登录时,自动将cookie信息附加发送给服务端