Web开发来一发(五)Session和Cookie

1、Cookie

Web应用程序是使用HTTP协议传输数据的,HTTP协议是无状态的协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。要跟踪该会话,必须引入一种机制。Cookie机制弥补了HTTP无状态的不足。

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

Cookie的设置以及发送过程分为以下四步:

1)客户端发送一个http请求到服务器端;

2)服务器端发送一个http响应到客户端,其中包含Set-Cookie头部;

3)客户端发送一个http请求到服务器端,其中包含Cookie头部;

4)服务器端发送一个http响应到客户端。

2、Session

Session技术是服务端的解决方案,它是通过服务器来保持状态的。Session 对象存储特定用户会话所需的属性及配置信息,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。

如果多次登录的请求处理服务器不一致,怎么处理?

方案一,将用户锁定到特定的服务器上,但如果服务器挂掉Session就拿不到了。

方案二,Session广播给其他服务器,但会增大网络负荷。

方案三,Session信息共享在Redis。

3、Cookie和Session的区别和联系

1)session的实现是对cookie有依赖的,服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie。

2)cookie数据存放在客户的浏览器上,session数据放在服务器上,因此session占用服务器资源,cookie不会。 

3)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。

4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

参考资料:

https://www.cnblogs.com/andy-zhou/p/5360107.html#_caption_22

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值