目录
一、会话跟踪技术的概述
会话
:
用户打开浏览器,访问
web
服务器的资源,会话建立,
直到有一方断开连接,会话结束
。在
一次会话中可以包含
多次
请求和响应。
- 从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就被建立
- 会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着
- 浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程就被称之为会 话。
会话跟踪
:
一种维护浏览器状态的方法,
服务器需要识别多次请求是否来自于同一浏览器
(一次会话可以多次请求)
,以便在同一次会话的多次请求间
共享数据
。
为什么现在浏览器和服务器不支持数据共享呢?
- 浏览器和服务器之间使用的是HTTP请求来进行数据传输
- HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求
- HTTP协议设计成无状态的目的是让每次请求之间相互独立,互不影响
- 请求与请求之间独立后,就无法实现多次请求之间的数据共享
HTTP协议设计成无状态的目的是为了提高服务器的性能和可伸缩性。无状态意味着服务器不会保存客户端请求的任何状态信息,每个请求都是独立的。这样可以减少服务器的负担,因为服务器不需要为每个客户端维护状态信息的数据结构。同时,无状态也使得服务器可以很容易地进行水平扩展,即通过增加服务器节点来处理更多的请求,而无需考虑请求之间的关联。此外,无状态的设计使得HTTP协议具有简单、灵活、可重用的特性,使其成为广泛使用的互联网通信协议。
如何·实现会话跟踪:
(1)客户端会话跟踪技术:Cookie
(2)服务端会话跟踪技术:Session
它们之间最大的区别
:
Cookie
是存储在浏览器端而
Session
是存储
在服务器端
HTTP协议是无状态的,靠HTTP协议是无法实现会话跟踪 。想要实现会话跟踪,就需要用到Cookie和Session
二、Cookie
2.1 Cookie的基本使用
Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。
- 服务端提供了两个Servlet,分别是ServletA和ServletB
- 浏览器发送HTTP请求1给服务端,服务端ServletA接收请求并进行业务处理
- 服务端ServletA在处理的过程中可以创建一个Cookie对象并将name=zs的数据存入Cookie
- 服务端ServletA在响应数据的时候,会把Cookie对象响应给浏览器
- 浏览器接收到响应数据,会把Cookie对象中的数据存储在浏览器内存中,此时浏览器和服务端就 建立了一次会话
- 在同一次会话中浏览器再次发送HTTP请求2给服务端ServletB,浏览器会携带Cookie对象中的所有数据
- ServletB接收到请求和数据后,就可以获取到存储在