http会话

会话

可以简单的理解为,用户打开一个浏览器,点击多个超链接,访问服务器的多个web资源,然后关闭浏览器,整个过程称为一个会话。

保存会话的两种技术:

cookie是客户端的技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去,这样web资源处理的就是用户各自的数据。
这里写图片描述

用户向后端的服务器发送请求到serlet1,serlet1会将用户数据以cookie的形式回写个客户端,客户端可以将cookie值保存到IE的缓冲中或者本地的磁盘中,客户端访问服务器时,会带着保存的cookie值,发送到serlet2,从而实现数据的同步,

cookie细节
  • 一个cookie只能识别一种信息,他至少含有一个标识该信息的名称(name)设置值(value)
  • 一个web站点可以给一个web浏览器发送多个cookie,一个web浏览器也可以存储多个web站点提供的cookie
  • 浏览器一般只允许存放300个cookie,每一个站点最多存放20个cookie,每个cookie的大小限制为4KB
  • 如果创建一个cookie,并将它发送该给浏览器,默认情况下一个会话级别的cookie(即存储在浏览器内存中),用户退出浏览器即被删除,若希望浏览器将该cookie存储在硬盘中,则需要使用maxAge,并给出一个以秒为单位的时间;将最大的有效值设置为0,则是命令浏览器删除该cookie。
  • 删除cookie时,path必须一致,否则不会删除。

Session

session是服务器端的技术,服务器在运行的时候可以为每一个用户的浏览器创建一个独享的session对象,由于session为每个用户独享,所以用户在访问服务器的web资源时,可以把各自的数据放在 各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源从用户各自的session中取出数据为用户服务。

这里写图片描述

userA 从浏览器A反问购买产品的的服务servlet1,会通过request.getSession()创建一个session(a) name=洗衣机,的session。当客户需要付款时,再servlet2中直接调用request.getsession()会回调刚刚创建的session,

session

在web开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此在需要保存客户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其他程序时,其他的程序可以从用户的session中取出该用户的数据,为用户服务。

session和cookie的区别:

  • cookie是把用户的数据写给用户的浏览器
  • session技术是将用户的数据写到用户独占的session中。

这里写图片描述

浏览器A 访问servlet1时,servlet1通过调用代码request.getsessioon()创建一个session。每一个session都有一个id号,服务器会将session ID 基于cookie的方式回送给客户端,客户端重新访问时,会带着session ID访问服务器

注意:服务器将session ID以cookie的方式发送给客户端,这个cookie的默认时没有设置有效期的,在关闭浏览器之后,就会将cookie值删除。故需要设置cookie的保存时间。

抓包查看

此包是在服务器上抓的包,客户端117.78.24.17 服务端 192.168.0.109抓包分析登录界面session和cookie的发送情况。

客户端发送请求到服务器端,cookie中的session值是空,

这里写图片描述

服务器端生成一个session并将session ID、cookie保存位置、cookie的保存时间发送给客户端。
这里写图片描述

客户端继续访问时,将session ID 写在cookie中。

这里写图片描述

URL重写

为解决客户端关闭cookie保存之后,会导致session ID无法保存最终导致客户浏览的数据无法保存。解决的方法,就是在访问的URL的基础上增加session ID。

这里写图片描述

参考链接:http://www.mamicode.com/info-detail-608168.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值