购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.5 HTTP会话管理

回顾 HTTP 请求-响应的过程可以发现,服务器会对客户端的每次请求进行响应,但是并没有保存过程中产生的请求、响应数据,这意味着HTTP不会为了下次请求的需要而保存本次请求过程中传输的数据。这就带来一个问题,当有多个用户同时访问服务器时,服务器如何区分他们呢?例如,用户甲和用户乙同时浏览一个购物网站,用户甲想要购买一箱牛奶,用户乙想要购买一部手机,当他们进行商品结算时,服务器需要知道发起请求的用户的身份才能区分他们分别购买的是哪件商品。

为了识别不同的用户及为同一个用户提供持久的服务,服务器通常需要对用户的状态进行跟踪,这就需要用到会话技术。以日常生活中打电话为例,从拨通电话开始到挂断电话之间发生的一连串的你问我答的完整过程就是一次会话。再比如,王女士去某商场购物,从她进入商场开始,其间可能有过咨询商品详细信息、试衣服、将某商品买下来等多种行为,直到最后王女士走出商场为止,这一过程也可以称为一次会话。

在Web开发中,会话是指客户端和服务器在一段时间内发生的一系列请求和响应过程。例如,某用户登录一个论坛并发帖的整个过程、某用户在一个电子商务网站购物的完整过程,都是一个会话。

在会话技术中,主要使用Cookie和Session对象保存会话数据。Cookie对象将会话数据保存在客户端,这些会话数据用于服务器识别用户身份。Session对象将会话数据保存在服务器端,以在服务器上记录与用户对应的信息。

Cookie对象保存会话数据的实现机制如图1-9所示。当客户端第一次向服务器发出请求时,服务器发现用户没有带来用于会话的Cookie,响应时就会在HTTP响应头中增加字段Set-cookie,其中包含信息,如id=“34294”。客户端会把Cookie保存到本地,当用户再次向该服务器发送请求时,浏览器就会在请求头中将Cookie信息一同发送给服务器,如id=“34294”。通过这种方式,服务器就可以识别用户的身份,跟踪用户在该网站上的活动,并为该用户提供持久的服务。

图1-9 Cookie对象保存会话数据的实现机制

【梳理回顾】

本节介绍了HTTP的主要内容和Web开发需要解决的基本问题,其中HTTP报文格式、请求方法是学习的重点。 SbZAN9uWEgOoqOeV14TeMjykmw5fAgQUgippL3IxGAGLuLmUxBPUbZpblZJEr00T

点击中间区域
呼出菜单
上一章
目录
下一章
×