JavaWeb来一发(五)Session和Cookie

一、Cookie和Session简介

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

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

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

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

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

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

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

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

二、Cookie和Session的区别和联系

  • session的实现是对cookie有依赖的,服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie。
  • cookie数据存放在客户的浏览器上,session数据放在服务器上,因此session占用服务器资源,cookie不会。 
  • cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗。
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

参考资料:

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

猜你喜欢

转载自blog.csdn.net/ss1300460973/article/details/85522255