Session原理

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Java,HTTP协议,session原理

撰写时间:2019-06-17

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以下这些大多都是文字表达,没有一一写实际的案例出来演示,但是详细的看一下的话,也就知道什么意思了,文中表达比较通俗。

Web三大概念:cookie,session,application

Session:记录一系列状态

Session与cookie功能效果相同。Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。

解释session:当访问服务器否个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session,而这个内存是跟浏览器关联在一起的。这个浏览器指的是浏览器窗口,或者是浏览器的子窗口,意思就是,只允许当前这个session对应的浏览器访问,就算是在同一个机器上新启的浏览器也是无法访问的。而另外一个浏览器也需要记录session的话,就会再启一个属于自己的session

原理:HTTP协议是非连接性的,取完当前浏览器的内容,然后关闭浏览器后,链接就断开了,而没有任何机制去记录取出后的信息。而当需要访问同一个网站的另外一个页面时(就好比如在第一个页面选择购买的商品后,跳转到第二个页面去进行付款)这个时候取出来的信息,就读不出来了。所以必须要有一种机制让页面知道原理页面的session内容。

问题:如何知道浏览器和这个服务器中的session是一一对应的呢?又如何保证不会去访问其它的session呢?

原理解答:就是当访问一个页面的时候给浏览器创建一个独一无二的号码,也给同时创建的session赋予同样的号码。这样就可以在打开同一个网站的第二个页面时获取到第一个页面中session保留下来的对应信息(理解:当访问第二个页面时将号码同时传递到第二个页面。找到对应的session。)。这个号码也叫sessionID,session的ID号码,session的独一无二号码。

session的两种实现方式(也就是传递方式):第一种通过cookies实现。第二种通过URL重写来实现

第一种方式的理解:就是把session的id 放在cookie里面(为什么是使用cookies存放呢,因为cookie有临时的,也有定时的,临时的就是当前浏览器什么时候关掉即消失,也就是说session本来就是当浏览器关闭即消失的,所以可以用临时的cookie存放。保存再cookie里的sessionID一定不会重复,因为是独一无二的。),当允许浏览器使用cookie的时候,session就会依赖于cookies,当浏览器不支持cookie后,就可以通过第二种方式获取session内存中的数据资源。

第二种方式的理解:在客户端不支持cookie的情况下使用。为了以防万一,也可以同时使用。

如果不支持cookie,必须自己编程使用URL重写的方式实现。

   如何重写URL:通过response.encodeURL()方法

      encodeURL()的两个作用

         第一个作用:转码(说明:转中文的编码,或者一些其他特殊的编码。就好比如网页的链接中存在中文字符,就会转换成为一些百分号或者其他的符号代替。)

第二个作用:URL后面加入sessionID,当不支持cookie的时候,可以使用encodeURL()方法,encodeUTL()后面跟上sessionID,这样的话,在禁用cookie的浏览器中同时也可以使用session了。但是需要自己编程,只要链接支持,想用session就必须加上encodeURL()。

提示:若想程序中永远支持session,那就必须加上encodeURL(),当别人禁用了cookie,一样可以使用session。

简单的代码例子:在没有使用encodeURL()方法前的代码

在使用encodeURL()方法后的代码

看下图,当重写URL 的时候,每一次访问的时候都会将sessionID传过来,传过来了,就没有必要再在cookie里读了。

规则:

  1. 如果浏览器支持cookie,创建session多大的时候,会被sessionID保存再cookie里。只要允许cookie,session就不会改变,如果不允许使用cookie,每刷新一次浏览器就会换一个session(因为浏览器以为这是一个新的链接)
  2. 如果不支持cookie,必须自己编程使用URL重写的方式实现session
  3. Session不像cookie一样拥有路径访问的问题,同一个application下的servlet/jsp都可以共享同一个session,前提下是同一个客户端窗口。

Session中的一些常用方法说明

isNew():是否是新的Session,一般在第一次访问的时候出现

getid():拿到session,获取ID

getCreationTime():当前session创建的时间

getLastAccessedTime():最近的一次访问这个session的时间。

getRrquestedSessionid: 跟随上个网页cookies或者URL传过来的session

isRequestedSessionIdFromCookie():是否通过Cookies传过来的

isRequestedSessionIdFromURL():是否通过重写URL传过来的

isRequestedSessionIdValid():是不是有效的sessionID

其中下面的结果图对应上面的8个方法

  

 

其对应的代码

session有期限

当一个网站的第一个窗口关掉了,而没有继续接着访问第二个页面,就没有使用到session。那么session会在中断程序后立刻关闭session吗?这个时候session就需要给它保留的时间,当最近一次访问的时候开始计时,每刷新一次重写开始计时。当隔了这么久的时间,没有访问这个session后,对不起,要关闭这个session了。session有过期时间,session什么时候过期,要看配置,

session能干什么

session就是服务器里面的一块内存,内存里面能放任何东西,只要是名值对就可以了。

session里面的名字永远都是String类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620178.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Session详解

Session(重点) 什么是Session: 服务器会给每一个用户(浏览器)创建一个Session对象一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在用户登陆之后,整个网站它都可以访问–>保存用户的信…

Session详解,学习Session,这篇文章就够了(包含底层分析和使用)

说明:下面介绍session,我们使用到了游览器抓包,http的知识,如果不了解,请先简单了解下。http介绍,http请求,http响应。因为cookie和session是一对”好兄弟“,我们介绍session也要使用…

移动端VIN码识别技术的出现,为汽配供应链带来便捷

汽配供应链作为汽车后市场一大蓝海,成为众多商家的“必争之地”。在现今人工智能大数据的大环境下,拥抱科技,运用人工智能技术构建智能化数据平台成为提升企业行业竞争力的首选。 VIN码即车架号就是汽车的唯一的身份证,汽车从下线…

harrier 查看查看服务器状态,机油尺检查细节多多,嘉普力汽配工场教你如何正确查看机油尺...

平常我们总是说烧机油、机油消耗、机油增多,很多车主都快得"机油恐惧症"了,时刻担心自己的机油出现问题。既然担心就要查机油,那么你会看机油尺吗?今天,嘉普力汽配工场就教车主朋友们如何正确查看机油尺。 机…

汽车汽配行业B2B电子商务系统营销渠道自动化,综合提升B2B平台交易效率

汽车工业作为国家制造业的支柱之一,是衡量国家工业水平的基本指标。不断完善汽车工业整体的行业规范,促进汽车工业更稳定、更健康的发展,才能有效提升汽车工业的经济作用及影响力。 4S店模式,作为我国一直以来最主要的汽车销售模…

数商云采购系统对账结算功能介绍 | 缩短汽配企业结算周期,提高资金周转效率

近年来随着市场饱和度增加、竞争加剧,特别是信息技术的广泛发展,造成相当程度的平衡打破,使得通过平台化提升汽配供应链整体效率并建立主体间信任的可塑性增强,汽配供应链迎来新的变局。 作为名副其实的中小企业,汽配…

《汽修汽配管理系统——“汽修管理”模块》项目研发阶段性总结

完成模块功能:汽修管理(预约维修,客户接待,售后服务) 一、 功能实现 汽修管理主要包括预约维修,客户接待,售后服务 预约维修见图一, 该页面可查看老客户的资料,也可对第…

汽车汽配行业智慧供应链系统:提升企业效率,构建SCM平台数字化优势

过去几年,中国汽车产业经历了快速的发展阶段,已经成为全球最大的汽车市场。其中,汽车产业链、供应链有序、畅通的运转对中国汽车行业保持健康平稳发展起到了重要的支撑作用。随着新一轮技术革命到来,中国汽车供应链正面临着无限的…

汽车汽配行业经销商协同系统:实现汽配经销商销售管理全流程数字化

汽车经销商是从事汽车交易,取得汽车所有权的中间商。对于汽车制造企业而言,经销商是重要的资源,如何占有更多的经销商,是决定汽车企业市场开拓能力及成败的关键。随着国内汽车市场的竞争愈加激烈,汽车企业想要站稳脚跟…

成都榆熙教育:拼多多新手开店商品类目怎么选择?

拼多多成立至今已经快6年了,它的发展也是迅猛,某宝用了十几年获得的成就,它仅用6年时间就进行了超越,成为了国内前三的电商平台,因此也吸引了越来越多的个体户和商业户入驻,那么如何开一个拼多多店铺和会花…

百炼智能店店通(车后版)亮相2021AMR北京国际汽保汽配展 开启门店渠道拓展新时代

4月23-27日,由法兰通联展览(北京)有限公司主办的2021中国汽车服务产业新趋势千人大会和2021AMR北京国际汽车维修检测诊断设备、零部件及美容养护展览会(简称AMR北京国际汽保汽配展)落下帷幕。2021年展会展出规模达90,000平方米,为期四天的展期吸引952家参…

微信汽配电商小程序开发功能设计方案

随着互联网的不断发展,在汽车服务市场中的发展也紧跟着市场发展的脚步。汽车配件行业中,通过微信汽配电商小程序就可以实时查看具体的销售情况,以及收入的具体情况。 微信汽配电商小程序功能: 1、商城 商城中可以提供一些汽车周…

汽车汽配电商平台系统解决方案

汽车市场发展简况 —— 自中国改革开放以来,国民收入的逐步提高,截止2016年,中国汽车市场销量已经连续8年蝉联世界第一。据最新数据显示,2017年上半年汽车销量同期上涨3.81%,达到1,335万辆,这还不含二手车…

python 使用pyqt5实现了一个汽车配件记录系统

前言 老姐要求做个记录销售汽车配件得的excel,我觉得太麻烦了,身为程序员的我 必须安排一个方便快捷的系统,安排上!!! 环境要求:python3,pyqt5,pandas 1、实现效果 初…

基于JavaEE的汽车配件管理系统_JSP网站设计_SqlServer数据库设计

目 录 摘要1 Abstract2 1、引言3 1.1 课题背景3 1.2 国内外研究现状3 1.3 课题目的5 1.4 课题意义5 1.5 需要解决的问题5 1.6 可行性研究6 1.6.1 经济可行性6 1.6.2 技术可行性6 1.6.3运行可行性7 1.6.4 时间可行性7 1.6.5 法律可行性7 2、相关技术简介7 2.…

Java、JSP汽车4S店配件销售系统的设计

技术:Java、JSP等 摘要:随着汽车产业的蓬勃发展汽配行业也取得了极大地进步,但是当前大部分的汽车配件行业是靠手工操作来进行货物管理。当汽车的品种不断出新,配件的种类也不断增多,只靠人工操作已经不能满足实际情况…

easyui 文本框 显示提示信息data-options=prompt:'格式:水箱支架-京东汽配店铺-图集(大图/图集6)'...

<tr><td>图集6:</td><td><input class"easyui-textbox" data-options"prompt:格式&#xff1a;水箱支架-京东汽配店铺-图集(大图/图集6)" type"text" id"GoodsPicc5Name" name"GoodsPicc5Name" …

IT论坛测试

目录 一、项目介绍 项目名称 项目简介 相关技术 项目展示 二 、测试用例设计和功能测试 测试用例设计 注册页面 登陆页面 首页面 发布帖子页面 修改个人信息页面 功能测试 注册页面 登录页面 首页面 发布帖子页面 修改个人信息页面 三、接口测试 1.Junit单…

性能测试流程? 怎么做性能测试?

一、前期准备 性能测试虽然是核心功能稳定后才开始压测&#xff0c;但是在需求阶段就应该参与&#xff0c;这样可以深入了解系统业务、重要功能的业务逻辑&#xff0c;为后续做准备。 二、性能需求分析&#xff08;评审&#xff09; 评审时&#xff0c;要明确性能测试范围、目…

泽众AutoRunner软件的使用方法,以测试win10环境下系统自带的计算器为例

准备工作&#xff1a; 系统&#xff1a;Win10 测试的软件&#xff1a;Win10自带的计算器 本文中AutoRunner软件的下载地址&#xff1a;https://dl.pconline.com.cn/download/1592874-1.html?qq-pf-topcqq.group &#xff08;大家也可以在泽众的官网下载&#xff0c;这个是我随…