大家都知道session是web中在服务器端保存用户状态的一种方式,但归根结底,http协议本身属于无状态协议,session到底是怎么搞出来的呢,其实服务端维护session用到了两中方式:
1.cookie保存sessionid,在浏览器支持cookie的情况下,服务端一般首选这种方式,在用户请求有状态的服务端时,服务端会写如客户端cookie中一个jsessionid(在tomcat中是这样,其他服务器也类似),这里会有一个服务端生成的session id 用来保存这次会话的id编号,服务端维护了一个session池,这个池是有时间限制的,一般可以在web.xml中配置session-config选项中的,session-timeout,这样客户端在每次请求中代上服务端分配的sessionid,服务端自然知道是那个用户了,从而达到维护客户端状态的目的。
2.服务端考虑到如果客户端浏览器不支持cookie,那么采取了一种叫做url rewrite的技术,这种方式体现在,用户在请求服务端时,会在用户请求的url后边加入;jsessionid=XXXXXXX,这样的参数,效果与存入cookie一样,还是通过客户端记录sessionid编号来维护客户端状态。
所以,有状态的 web session就是这样被实现的,但是在并发量大,集群的环境中使用session可能消耗服务端很大的资源,所以尽量在session里少存入信息.
分享到:
- 2009-12-02 00:41
- 浏览 2863
- 评论(0)
- 论坛回复 / 浏览 (11 / 7768)
- 查看更多
相关推荐
本文将深入探讨HTTP Session的原理及其在实际应用中的作用。 首先,理解"session"一词的含义至关重要。在一般语境中,session指的是有始有终的一系列动作或消息,例如打电话的过程。而在Web开发中,session则被赋予...
ASP.NET中的Session是用于在无状态HTTP协议下保持用户会话状态的一种机制。HTTP协议的无状态特性意味着每次客户端向服务器发送请求时,服务器不会记住之前的交互信息。为了解决这个问题,Session应运而生,它允许...
**Session原理** Session是另一种用户状态管理方式,它将用户数据存储在服务器端,通常以文件或数据库的形式。每个用户会有一个唯一的Session ID,这个ID通过Cookie或URL参数传递给服务器。 1. **启动Session** -...
Session是HTTP协议无状态特性下的解决方案,用于在多个请求之间保持用户的状态信息。在购物车应用中,每个用户可能有自己的购物车,这些信息需要在用户浏览不同的页面时保持一致。我们可以为每个用户创建一个唯一的...
### 有关Session的技术原理及其应用 #### 一、引言 HTTP作为一种无状态协议,在完成一次客户端与服务器间的信息交换后即断开连接,这给跨页面的数据传递带来了挑战。为了解决这个问题,Web开发中引入了多种解决...
### 深入理解Servlet/JSP之“Cookie和Session原理” #### 一、Cookie Cookie是一种常用的技术,用于实现Web应用程序中的用户会话管理。它允许服务器存储一些数据(通常是小文本文件)在用户的计算机上,以便后续...
对于小量且非敏感的数据,可以考虑使用Cookie或HttpCache(Application Cache)作为替代方案,以减少对Session的依赖。 **5. 配置Session超时** 可以通过调整`timeout`属性来延长Session的生命周期,但请注意,过长...
**一、跨域共享session原理** 1. **JSONP(JSON with Padding)**:JSONP是一种早期的跨域解决方案,但不适用于需要服务器端存储session的情况,因为它只能用于获取数据,无法设置Cookie。 2. **CORS(Cross-Origin ...
使用Redis解决session共享的原理非常简单,就是把原本储存在不同服务器上的session拿出来放到一个独立的服务器上。这样就实现了session共享! Springboot配置session共享 Springboot提供了自动化session共享配置...
在HTTP协议无状态的特性下,Session扮演了关键角色,它允许服务器保存和识别不同请求之间的用户信息。 Session的工作原理是:当用户访问网站并登录后,服务器会为该用户创建一个唯一的Session ID,并将其存储在...
- `SpringSession` 是Spring生态系统的一个扩展,它允许我们将HTTP Session数据存储在外部存储(如Redis)中,而不是传统的Java EE容器内。这样,Session数据可以在多台服务器之间共享,解决了负载均衡下的Session...
在这个过程中,如何在不同的服务器之间共享用户Session成为了关键问题。本篇文章将深入探讨如何利用Redis实现Session共享,同时结合Nginx的负载均衡策略,以及Spring Boot的应用框架,构建一个高效、可靠的分布式...
在Web开发中,PHP的cookie和session是两种重要的会话管理技术,用于在无状态的HTTP协议中跟踪用户状态。本文将深入探讨这两种技术的原理、用法以及PHP中操作它们的方法。 首先,理解cookie的产生背景。由于HTTP协议...
3. **Session的工作原理**:当用户访问一个网站时,服务器会为该用户创建一个唯一的Session,并分配一个Session ID。这个Session ID通常通过Cookie传递给客户端。客户端在后续的每一次请求中都会携带这个Session ID...
在PHP中,Session是用于跟踪用户会话状态的关键机制,特别是在HTTP这种无状态协议中。它的实现原理基于服务器端的数据存储和客户端的唯一标识。Session的主要功能是存储和检索用户在多个网页交互过程中的信息,确保...
在Web开发中,Session是服务器用来跟踪用户状态的一种机制,特别是在HTTP协议无状态的特性下。Session生命周期的设置是管理用户会话的关键环节,它决定了一个Session对象从创建到失效的时间间隔。本篇将深入探讨...
本文将深入探讨Session的工作原理,以及在Java Web应用程序中如何有效地利用和处理Session相关的问题。 1. **Session的基本概念** - **会话(Session)**:在Web开发中,Session通常指的是在用户浏览器会话期间,...