浏览器与服务器交互:Session与Cookie原理
需积分: 50 46 浏览量
更新于2024-08-16
收藏 897KB PPT 举报
"浏览器与服务器之间的交互主要涉及session和cookie技术,它们用于识别用户身份和维护状态。在Web应用程序中,session和cookie是常见的会话管理机制,帮助服务器区分不同的客户端请求并保持用户会话的连续性。"
**1. SESSION介绍**
- **背景问题**: 当使用同一浏览器登录两个不同账号的网银时,可能会出现前一个账号信息被覆盖的情况,这就是因为浏览器和服务器之间缺乏有效的用户身份识别机制。
- **工作原理**: 每个用户的请求都会对应一个服务器端的session。当用户首次请求服务器时,服务器创建一个session对象,并将其关联到该用户的特定请求。这个session对象通常存储在服务器的内存中,包含了用户的状态信息。
- **生命周期**: session的产生是通过`HttpSession session=request.getSession();`来完成的。一旦创建,session会有一个预设的过期时间,可以通过`setMaxInactiveInterval(arg0)`来设置,例如30分钟后未活跃的session会被销毁。此外,`<session-config>`标签可以在`web.xml`配置文件中定义全局的session超时时间。
**2. SESSIONID与浏览器的对应**
- **sessionID**: 每个session都有一个唯一的标识符sessionID,这是一个24位的随机字符串。
- **对应机制**: 当服务器创建session并分配sessionID后,会通过HTTP响应将sessionID返回给浏览器。然后,浏览器在后续的请求中,会在HTTP头部携带这个sessionID,服务器根据sessionID找到对应的session对象。
- **存储方式**: sessionID通常是通过cookie来传递的。浏览器接收到sessionID后,会将其保存在本地的一个名为sessionID的cookie中。
**3. COOKIE的类型和作用**
- **持久cookie (persistcookie)**: 这种类型的cookie会保存在用户的硬盘上,即使浏览器关闭再打开,cookie仍然存在,通常用于长期保持用户设置或登录状态。
- **sessioncookie**: 与持久cookie相反,sessioncookie不会写入硬盘,只存在于内存中,浏览器关闭后就会消失,主要用于临时存储会话信息,比如sessionID。
**4. session与cookie的交互**
- 浏览器每次发起请求,都会检查是否存在sessionID的cookie,如果有,则将sessionID包含在请求头中发送给服务器。
- 服务器根据接收到的sessionID从内存中找到对应的session,处理请求,然后返回响应。
- 如果浏览器没有sessionID或者session已过期,服务器会创建新的session并更新sessionID,然后再次通过cookie返回给浏览器。
**5. 安全与优化考虑**
- 由于session信息存储在服务器端,相对安全,但大量session会占用服务器内存,所以合理设置session过期时间和管理策略至关重要。
- 对于隐私和安全要求较高的应用,可能需要考虑防止session劫持,例如使用HTTPS加密通信,以及定期更换sessionID等安全措施。
总结起来,session和cookie是浏览器与服务器之间识别用户身份和维护会话的关键技术,理解它们的工作原理对于开发高效、安全的Web应用具有重要意义。
2018-02-26 上传
2021-10-13 上传
2014-10-16 上传
2022-08-03 上传
点击了解资源详情
2022-03-08 上传
2019-08-20 上传
2010-04-20 上传
2021-05-23 上传
辰可爱啊
- 粉丝: 18
- 资源: 2万+
最新资源
- katarina
- conflict-practice-debbiev123:让我们解决一些冲突
- warrio:warr.io 的投资组合网站
- Amplifyapp
- Kaue-G:关于我
- conflict-practice-arnitha-b:让我们解决一些冲突
- 行业文档-设计装置-一种切纸机高精度定位装置.zip
- CordovaIonicMobileFirst:我的演示文稿的回购-等待-Cordova和Ionic和MobileFirst
- 基于Mixare,使用OpenGL重写了Mixare的算法。.zip
- STM32编程实现直流有刷电机位置速度电流三闭环PID控制.zip
- decimal-to-roman-converter
- trailer-marvel:Aqui se passa a ordem dos filmes da marvel e junto os预告片
- 前端基础在线2021年1月
- 移远4G网络模块开发设计资料
- ngtrumbitta-services-lodash:将Lodash注入任何Angular应用程序中,并通过旧的_处理程序使用它
- 基于react+parcel和vue+webpack的通用领卷系统.zip