cookie和session的理解
一个常见的错误是以为 session 在有客户端访问时就被创建,然而事实是直到某 server 端程序(如 Servlet )调用HttpServletRequest.getSession(true)这样的语句时才会被创建。
*************************************************************************************
我一开始还不信,做个试验我信了。
一开始不信是因为,用 FireFox 测试清空了Cookie ,只要一跑一个jsp ,马上会看到生成了一个名字是 JSESSIONID 的Cookie ,注意这个是 Session Cookie (会话Cookie),不是 Persistent Cookie (持久Cookie),这个《Cookie和Session专题 》一文中讲的很明白,会话 Cookie 是为实现 session 机制而采用的在 Client 端与 Server 端之间保持状态的解决方案之一,在默认情况下是保存在 Client 端内存中的。注意:会话 Cookie 的“会话”这里不是指 Server 端的 Session ,而是指的是浏览器,所以会话 Cookie 的生命周期不是与 Server 端的 Session 那个会话相同,而是与浏览器相同,就是说只要开着浏览器会话 Cookie 就存在,关闭浏览器它就过期了。但是会话 Cookie 的值是与 Server 端的 SessionId 对应相同的。就是说会话Cookie随着Server端Session的创建而创建,但并不随着Session的过期而过期,而是随着Client端的浏览器关闭而销毁。 这说明只要会话Cookie 出现了,Server 端的 Session 就已经创建了。
我一开始的错误想法是:我的 jsp 里没有 HttpServletRequest.getSession(true) 的代码阿,但是 JSESSIONID 的Cookie 出现了就说明 Server 端 Session 创建了,这与《Cookie和Session专题 》上面讲的不符啊,不过马上想通了,jsp 属于动态页,本质就是一个 Servlet ,编译后的 jsp 是要到 Server 端进行交互的(即便 jsp 里没写一句交互的代码),因为 jsp 里有内置对象,内置对象就是和 Server 交互的产物,所以如果你的首页是个 jsp 页的话,即便没有HttpServletRequest.getSession(true),Session 也会创建。
如果首页是*.html 就不同了,再将 FireFox 的 Cookie 都清除了,将首页设置为 index.html, 回车,查看,果然这次没有JSESSIONID 的 Cookie 生成,这说明Server的Session也没有创建,让 index.html 提交到一个Servlet, 确实可以证明没有 HttpServletRequest.getSession(true) ,Sesion是不会创建的, 即便Servlet又转发(或者重定向)到第二个页,只要第二个页依然不是jsp页,Session就依然不会创建,FireFox 当然也没有名字为 JSESSIONID 的 Cookie 生成。
另外对jsp页面为什么会自动生成session,是因为jsp在默认的情况下session的属性设置的为true,如果设置为
,但是不显示的使用HttpServletRequest.getSession(true)的话session就不会创建了。
转载于:https://www.cnblogs.com/blackInHefei/archive/2012/05/03/2480800.html
cookie和session的理解相关推荐
- [html] 说说你对cookie和session的理解
[html] 说说你对cookie和session的理解 cookie: 可以通过客户端, 服务端设置, 容量小, 可以通过设置domain来实现同步登录, 除了name, value, 它还有多个选 ...
- 对cookie与session的理解
cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户. cookie的出现就是为了解决这个问题, 第一次登录 ...
- Java Web之Cookie和Session的理解
日常现象 登录了某个网站,过一会儿再登录,诶,不用输入密码了,直接是登录状态了,好神奇~~~ 在某网站看了一部手机,接下来浏览其他网站,旁边的广告全是手机和类似信息,好恐怖~~~ 浏览某网站时,提示我 ...
- postman怎么传session_Day 47: 不搞懂Cookie和session誓不罢休
Hello大家好!我是Cathy海希,今天是我学习编程的第47天. 欢迎同时关注我的Youtube&B站?Cathy海希TV 今天后知后觉地发现方方老师有在知乎上提及跟我相关的内容,简直太荣幸 ...
- Java Web(三) 会话机制,Cookie和Session详解
很大一部分应该知道什么是会话机制,也能说的出几句,我也大概了解一点,但是学了之后几天不用,立马忘的一干二净,原因可能是没能好好理解这两种会话机制,所以会一直遗忘,一直重新回过头来学习它,今天好好把他总 ...
- 快速理解Token,Cookie,Session
在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. Cookie Cookie ...
- 深入理解cookie和session
cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结.(转发自https://www.cnblogs.com/roy-blog/p/82 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...
- 【转】彻底理解cookie,session,token
转自:https://zhuanlan.zhihu.com/p/63061864 彻底理解cookie,session,token 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是 ...
最新文章
- 《关系营销2.0——社交网络时代的营销之道》一从单向沟通转向多方沟通
- 展望2018:WebRTC和下一代编解码器
- sqlite换成mysql_从SQLITE的数据转到MYSQL
- Redis消息队列发展历程
- 「1024 程序员节」各大公司和程序员们都是怎么过的?你都做了哪些计划或安排?
- myeclipse自带tomcat
- 谷歌 analytics.js 简要分析
- Java中字符串的全部知识_java基础教程之字符串的介绍,比较重要的一个知识点「中」...
- tomcat优化配置
- opencv实现阈值分割
- GB28181协议错误码返回码整理
- 一、Java入门基础
- 数仓(一)简介数仓,OLTP和OLAP
- 应用宝ysdk微信二维码扫码登录没有回调问题
- Python3 正则表达式
- SPI MOSI和MISO 相位不同
- 南大金陵学院 计算机,以赛促学,南大金陵学子在全国大学生计算机设计大赛摘得一等奖1项和二等奖4项...
- 打开阿尔卡特511大猫路由功能
- 增强线下体验 加强线上渠道 便利蜂引领行业破局
- 飞浆AIstudio 李宏毅线性代数作业答案
热门文章
- 网站在改版时如何降低对排名的影响呢?
- 周期串java_求最小周期串
- feign session 调用_springboot使用feign调用session传递失效解决方案
- RxPermission原理解析
- android java.nio.charset.MalformedInputException: Input length = 1
- ​Python 3 新特性:类型注解——类似注释吧,反正解释器又不做校验
- pandas dataframe 过滤——apply最灵活!!!
- 神经网络为什么要归一化
- Finding Similar Items 文本相似度计算的算法——机器学习、词向量空间cosine、NLTK、diff、Levenshtein距离...
- xampp的Apache配置