首页 > 其他分享 >session

session

时间:2023-12-25 22:33:18浏览次数:23  
标签:Session 对象 用户 session 服务器 页面

在计算机中,尤其是在网络应用中,“Session”被称为“会话控制”。Session对象用于存储特定用户会话所需的属性及配置信息。当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量不会丢失,而是在整个用户会话中一直存在。

当用户请求来自应用程序的Web页时,如果该用户还没有会话,Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。Session对象最常见的用途是存储用户的首选项,例如用户可能表明不喜欢查看图形,那么可以将此信息存储在Session对象中。

Session是一个存储于服务器端的特殊对象,每个用户在服务器端都有一个唯一的Session。当用户在应用程序的Web页面之间跳转时,存储在Session对象中的变量不会丢失,而是在整个用户会话中一直存在。


引入session主要是为了解决HTTP协议的无状态问题。HTTP协议是一种无状态协议,客户端向服务器发送一个请求,然后服务器返回一个响应,连接就会关闭。服务器不会存储此次请求的有关信息,因此无法知道这次请求和上次请求是否来自同一个客户端。这就导致了以下问题:

  1. 用户信息无法在多个页面之间共享。
  2. 用户在多个页面之间的行为无法被追踪。
  3. 无法保持用户的状态。

引入session之后,session对象可以用来记录每个客户端的访问状态,解决了以上问题。例如,用户在购物网站上浏览商品,并在多个页面之间切换,通过session,我们可以追踪用户的行为并保持用户的状态。同时,session还可以用于实现用户的认证和授权,确保用户的安全性和隐私性。


当用户在应用程序的Web页面之间跳转时,如果没有会话控制,服务器无法记住用户的上一次请求和操作。这就导致了每次用户重新进入网站都需要重新登录,或者在浏览不同页面时,之前输入的数据可能会丢失。

引入session后,服务器可以为每个用户创建一个唯一的会话,并在该会话中存储用户的相关信息。这样,无论用户在哪个页面,服务器都能识别出用户的身份,并保持用户的状态。

例如,用户在购物网站上浏览商品,并添加到购物车中。如果没有session,用户每次刷新页面或跳转到其他页面时,购物车中的商品都会消失。引入session后,服务器可以记住用户的购物车内容,即使用户在不同的页面之间跳转,购物车中的商品也不会丢失。

此外,session还可以用于实现用户的认证和授权。例如,用户登录后,服务器可以在session中存储用户的登录状态和权限信息。这样,在用户访问受保护的资源时,服务器可以验证用户的身份和权限,确保用户只能访问其被授权的资源。

总的来说,session的引入解决了HTTP协议无状态的问题,使得服务器能够识别和跟踪用户的请求,保持用户的状态和信息,提供更好的用户体验和安全性。


如何使用session

使用Session主要涉及以下几个步骤:

  1. 启动Session:在Web应用程序中,当用户首次访问一个页面时,服务器会自动创建一个Session对象,并为其分配一个唯一的Session ID。
  2. 存储数据:可以使用Session对象来存储用户的相关信息,例如用户名、购物车商品等。可以使用Session对象的Add()方法或SetValue()方法将数据添加到Session中。
  3. 读取数据:可以使用Session对象的Get()方法或GetValue()方法来读取存储在Session中的数据。
  4. 删除数据:可以使用Session对象的Remove()方法或Delete()方法来删除存储在Session中的数据。
  5. 销毁Session:当用户完成操作并离开应用程序时,服务器会自动销毁Session对象。也可以使用Session对象的Destroy()方法手动销毁Session对象。

需要注意的是,由于Session是服务器端存储的,因此存储在Session中的数据大小是有限制的,一般建议不要存储过多的数据。此外,为了安全起见,应该对存储在Session中的数据进行加密和验证,以防止恶意用户的和数据泄漏。

session是服务器自己创建的吗

Session是由服务器端自动创建的。当用户首次访问一个Web页面时,服务器会为该用户创建一个唯一的Session对象,并为其分配一个唯一的Session ID。这个Session对象用于存储用户的相关信息,以便跟踪用户的操作状态。服务器会一直保持这个Session对象,直到用户关闭浏览器或会话超时。

这里的服务器是指什么

这里的“服务器”指的是Web服务器,例如常见的Apache、Nginx等服务器软件。这些服务器软件在接收到用户的请求后,会处理请求并返回响应给用户。在处理请求的过程中,服务器可以创建Session对象,并在其中存储用户的相关信息,以便跟踪用户的操作状态。同时,服务器也会通过响应头返回一个Cookie给浏览器,浏览器在后续的请求中会将Cookie中的值传给服务器,以便服务器能够匹配和识别用户的Session。

标签:Session,对象,用户,session,服务器,页面
From: https://blog.51cto.com/u_11924918/8972953

相关文章

  • 【flink番外篇】5、flink的window(介绍、分类、函数及Tumbling、Sliding、session窗口
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......
  • shell脚本之定期杀非活session连接
    !/bin/bashORACLE_SID="testdb"ORACLE_HOME="/u01/app/oracle/product/11gR2/db"INACTIVE_TIMEOUT=60#非活动超时时间(秒)设置Oracle环境变量exportORACLE_SIDexportORACLE_HOME连接到Oracle数据库sqlplus-S/nolog>>/home/oracle/kill_session_output.......
  • Spring Boot学习随笔- 第一个Thymeleaf应用(基础语法th:,request、session作用域取值)
    学习视频:【编程不良人】2021年SpringBoot最新最全教程第十五章、ThymeleafThymeleaf是一种现代化的服务器端Java模板引擎,专门用于Web和独立环境。Thymeleaf在有网络和无网络的环境下皆可运行,即可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页......
  • SQLAlchemy scoped_session
    SQLAlchemyscoped_session本身session不是线程安全的。 https://docs.sqlalchemy.org/en/14/orm/contextual.htmlTheobjectisthescoped_sessionobject,anditrepresentsaregistryofSessionobjects.Ifyou’renotfamiliarwiththeregistrypattern,ago......
  • Cookie 和 session 的区别
    Cookie和session的区别参考回答:HTTP是一个无状态协议,因此Cookie的最大的作用就是存储sessionId用来唯一标识用户。一句话概括RESTFUL参考回答:就是用URL定位资源,用HTTP描述操作。讲讲viewport和移动端布局参考回答:可以参考这篇文章:响应式布局的常用......
  • cookie和session的一些疑惑以及ai解答
    我:那么当浏览器关闭的时候,当再次访问这个地址的时候,为什么之前设置的cookie没有被删除掉?而且按照你说的这次可能会生成一个新的sessionID,那么cookie里面的其他数据,它是如何获取上一次的cookie的信息,而且它是如何知道是这个客户端访问的?而不是其他客户端?AI:当浏览器关闭时,是否删......
  • requests模块-session
    session对象能够跨http请求保持某些参数importrequestss=requests.Session()#设置cookiess.get("http://httpbin.org/cookies/set/sessioncookie/123456789")#发送请求,查看当前请求的cookiesr=s.get("http://httpbin.org/cookies")print(r.text)运行结果{"co......
  • Javaweb | 状态管理:Session、Cookie
    ......
  • js Cookie、sessionStorage、localStorage 的区别
    fetch发送2次请求的原因参考回答:fetch发送post请求的时候,总是发送2次,第一次状态码是204,第二次才成功?原因很简单,因为你用fetch的post请求的时候,导致fetch第一次发送了一个Options请求,询问服务器是否支持修改的请求头,如果服务器支持,则在第二次中发送真正的请求......
  • SpringSession+SpringSecurity中如何保存Authentication到Session中的Attribute
     org.springframework.security.web.context.SecurityContextPersistenceFilter#doFilter(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,javax.servlet.FilterChain) org.springframework.security.web.context.HttpSessionSecurityC......