本地測試地址為http://localhost/TEST/login.jsf

當瀏覽器打開cookie時,瀏覽器第一次與服務器建立連接,會創建一個session,並生成一個id即jsessionid,通過response header中的set-cookie方法傳遞給client,當server判斷request中沒有包含jsessionid的cookie時,就是通過URL改寫機制向client傳信息。

在首次瀏覽器與服務器建立連接的請求中,request中並沒有發現保存著jsessionid的cookie,所以會將jsessionid通過追加到URL的方式傳回給client,見下圖2。也就是此時的地址變為http://localhost/TEST/login.jsf;jsessionid=1FBE8ABA3F5CDF90A2C00CDB24840685。從request header中也可以看到,此時client接收到了jsessionid,並將它保存在cookie中,並在每次請求中都會攜帶。可以在後台通過request.getRequestSessionId()的方式查看請求中是否包含session id,當然也可以通過request.getSession().getId()的方式獲取每次創建會話的session id。

當瀏覽器關閉cookie時,即瀏覽器不允許讀取cookie,那麼每次登陸瀏覽器頁面或者在頁面中發起請求,都可以看到response header中存在set-cookie,且每次生成的session id都不同,這是因為瀏覽器不允許讀寫cookie,所以瀏覽器與服務器創建會話時便會重新創建session,生成新的session id。而由於每次request header中都不會包含jsessionid的cookie,所以jsessionid會通過改寫URL的方式傳給client,也就是地址會變為http://localhost/TEST/login.jsf;jsessionid=xxx

jsessionid通過重寫url的方式傳給client這種方式傳給client其實非常不安全,有很多博客寫了,具體哪些看其他博客分析。我們將如何避免:

tomcat7可以通過在web.xml的session-config中設置tracking-mode。<tracking-mode>用于表示容器应该使用哪种技术追踪会话id,它有三個合法值可供選擇。設置URL則會將jsessionid顯示在地址欄中,不安全;設置SSL是最安全的方式,但要求所有请求都必须是HTTPS;最後設置為COOKIE,會將jsessionid儲存在cookie中,即使瀏覽器禁用了cookie,也不會將jsessionid顯示在url上

一些有用的網址

https://fralef.me/tomcat-disable-jsessionid-in-url.html

https://blog.csdn.net/weixin_30840573/article/details/96675887

https://www.jianshu.com/p/f2e5db637ed4

jsessionid與cookie關係的理解的更多相关文章

  1. 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

    我常常不仅仅逛 博客园,还会去找国外,特别是台湾的技术部落格,发现好的文章,我便会收录,今天我转载或者全文复制,在Google 博客园,一位叫保哥, 釐清 CLR..NET.C#.Visual Stu ...

  2. 智课雅思词汇---十七、前綴il-, in-, ir-, im-有什麼關係

    智课雅思词汇---十七.前綴il-, in-, ir-, im-有什麼關係 一.总结 一句话总结:这几个长得非常像,并且意思也非常像 1.前綴il-, in-, ir-, im-是什麼意思? 前缀:i ...

  3. JavaWeb中Cookie会话管理,理解Http无状态处理机制

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6512995108961387015/ 1.<Servlet简单实现开发部署过程> 2.<Serv ...

  4. sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計)

    ---sql: T-SQL 统计计算(父子關係,樹形,分級分類的統計) ---2014-08-26 塗聚文(Geovin Du) CREATE PROCEDURE proc_Select_BookKi ...

  5. cppoop作业:Inheritance+Composition 關係下的構造和析構

    Inheritance+Composition 關係下的構造和析構 哪个的ctor先被调用. 父类先于组件类调用 构造函数

  6. 关于tomcat7服务下面js无法获取JSESSIONID的cookie信息

    http://tomcat.apache.org/tomcat-5.5-doc/config/context.html Does anyone know what changed in the con ...

  7. 对Cookie和Session的理解

    本篇文章系自己总结经验,如果有朋友感觉哪里有问题,欢迎留言评论,谢谢~! Cookie和Session的产生背景: 在动态页面里面,每个变量都是有有效期的,所有的变量的最大生命周期就是一个脚本的周期( ...

  8. cookie,session,token的理解

    Get  POST 区别异同点 淘宝token的 理解   过程算法 防止伪造请求  伪造相对难 简单发展史  登录的操作: 哪些人往自己的购物车中放商品,  也就是说我必须把每个人区分开,这就是一个 ...

  9. session和cookie的最深刻理解

    先说session 对SESSION的争论好象一直没有停止过,不过幺麽能理解SESSION的人应该占90以上.但还是讲讲,别嫌老~ 有一些人赞成用SESSION,有一些人不赞成.但这个问题到底要怎么说 ...

随机推荐

  1. js强制限制输入允许两位小数

    <input type="text" value="@item.CostCash.Value.ToString("#0.00")" c ...

  2. TCP/IP协议与HTTP协议(一)

    1.什么是TCP/IP  如果要了解一个人,可以从他归属的集体聊起来.我们的HTTP协议就属于TCP/IP协议家族中的一员,了解HTTP协议再整个网络流程中的地位,也能更加充分的理解HTTP协议. 要 ...

  3. Governing sand 贪心

    题目链接:https://ac.nowcoder.com/acm/contest/887/C 题目描述 The Wow village is often hit by wind and sand,th ...

  4. synchronized底层实现

    1.锁升级的过程 当多个线程同时竞争一个对象监视器时:当前对象结构中的mark word中是否是当前线程id,如果是则当前线程获得偏向锁. 如果不是,则通过CAS将当前线程id置换到mark word ...

  5. 「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」06 统一配置中心Spring Cloud Config 「 从0到1学习微服务SpringCloud 」07 RabbitM ...

  6. c#数字图像处理(十一)图像旋转

    如果平面上的点绕原点逆时针旋转θº,则其坐标变换公式为: x'=xcosθ+ysinθ   y=-xsinθ+ycosθ 其中,(x, y)为原图坐标,(x’, y’)为旋转后的坐标.它的逆变换公式为 ...

  7. [Codeforces 1228E]Another Filling the Grid(组合数+容斥)

    题目链接 解题思路: 容斥一下好久可以得到式子 \(\sum_{i=0}^{n}\sum_{j=0}^{n}(-1)^{i+j}C_n^iC_n^j(k-1)^{ni+nj-ij}k^{n^2-(ni ...

  8. HDU 3839 Ancient Messages(DFS)

    In order to understand early civilizations, archaeologists often study texts written in ancient lang ...

  9. 自定义HttpMessageConverter实现RestTemplate的exchange方法返回自定义格式数据

    一 概述 实现如下效果代码,且可正常获取到返回数据: ResponseEntity<JsonObject> resEntity = restTemplate .exchange(url, ...

  10. 最大似然估计、n阶矩、协方差(矩阵)、(多元)高斯分布 学习摘要

    最大似然估计 似然与概率 在统计学中,似然函数(likelihood function,通常简写为likelihood,似然)和概率(Probability)是两个不同的概念.概率是在特定环境下某件事 ...