宝哥面试题分享(13):CookieSession面试题:session、cookie_session面试题必问题和答案-程序员宅基地

技术标签: java  servlet  服务器  

Cookie/Session面试题

001会话是什么?

会话:客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话。
http协议是“无状态”协议,不能保存用户信息,需要判断是否是同一个用户,需要会话跟踪。cookies和session都是用来跟踪浏览器用户身份的会话方式,但两者应用场景不一样。

002Session和Cookie的概念?

Cookie 是Web 服务器发送给客户端(浏览器)的一小段信息,客户端请求时可以读取该信息发送到服务器端,进而进行用户的识别。对于客户端的每次请求,服务器都会将 Cookie 发送到客户端,在客户端可以进行保存,以便下次使用。
Session 代表着服务器和客户端一次会话的过程。每一个用户都有一个不同的 session,各个用户之间是不能共享的,是每个用户所独享的,在 session 中可以存放信息。Session 的实现依赖于 Cookie,如果 Cookie 被禁用,那么 session 也将失效。

003Cookie的工作原理?

(1)浏览器端第一次发送请求到服务器端
(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端
(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie
(4)服务器端通过Cookie中携带的数据区分不同的用户

img

004Session的工作原理?

(1)浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该Cookie发送至浏览器端
(2)浏览器端发送第N(N>1)次请求到服务器端,浏览器端访问服务器端时就会携带该name为JSESSIONID的Cookie对象
(3)服务器端根据name为JSESSIONID的Cookie的value(sessionId),去查询Session对象,从而区分不同用户。

img

005Cookie禁止掉,Session还能用吗?

第一种,在每次请求中都携带一个 SessionID 的参数放入URL
第二种,Token 机制。Token 的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。随机且无状态,用户信息都被加密到token中,服务器收到token后解密就可知道是哪个用户。需要开发者手动添加。

006Cookie的生存周期?

Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。

007Cookie和Session的区别?

①存在的位置:
Cookie存在于客户端,临时文件夹中; Session存在于服务器的内存中,一个Session域对象为一个用户浏览器服务
②安全性
Cookie是以明文的方式存放在客户端的,安全性低,可以通过一个加密算法进行加密后存放; Session存放于服务器的内存中,所以安全性好
③网络传输量
Cookie会传递消息给服务器; Session本身存放于服务器,不会有传送流量
④生命周期(以20分钟为例)
Cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,Cookie生命周期结束;
session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问Session,那么Session生命周期被销毁。但是,如果在20分钟内(如在第19分钟时)访问过Session,那么,将重新计算Session的生命周期。关机会造成Session生命周期的结束,但是对Cookie没有影响
⑤访问范围
on的生命周期。关机会造成Session生命周期的结束,但是对Cookie没有影响
⑤访问范围
Cookie为多个用户浏览器共享; Session为一个用户浏览器独享

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mtb278750/article/details/129701990

智能推荐

python 人脸提取_Python 自动提取电影中所有人脸-程序员宅基地

文章浏览阅读1.1k次。最近由于论文写作需要涉及到人脸的提取操作,结合以前做过的人脸识别项目:Python自动识别人脸开机和 ffmpeg 的影片逐帧提取功能,实现了自动提取电影中所有人脸的操作。我们知道,机器学习、深度学习的算法需要数据量到达一定量级之后效果才比较好。所以我们今天的这个功能主要可以用于一些人脸识别算法的训练集、测试集提取。1.准备我们使用ffmpeg提取视频中的图片,它的安装方法如下:1.1(1)w..._视频中提取人脸

jenkins java版本_jenkins 多版本 jdk-程序员宅基地

文章浏览阅读3.4k次。最近又开始使用jenkins了,遇到一个问题,开发本地使用的jdk是1.7,而我们jenkins由于需要对docker的插件的支持必须使用1.8。这样就导致了有的开发的代码在jenkins去代码库checkout代码的时候,有的代码能被jenkins打包,但是有的代码拉取下来登录到jenkins宿主机能够使用mvn install打包,但是不能被jenkins打包,出现这个问题主要是mvn使用的是...

Cocos2d-x 3.2:通过ClippingNode实现一个功能完善的跑马灯公告(2)-程序员宅基地

文章浏览阅读54次。Cocos2d-x 3.2:通过ClippingNode实现一个功能完善的跑马灯公告(2)本文转载至深入理解Cocos2d-x 3.x:一步一步通过ClippingNode实现一个功能完善的跑马灯公告(2)本文的主要内容是根据跑马灯解析ClippingNode实现原理。本文涉及到Cocos2d-x 3.x的渲染机制以及部分opengl的知识。首先看看上一篇文章中说到的跑马灯的简单...

【深度学习】RNN-程序员宅基地

文章浏览阅读6.9k次,点赞4次,收藏31次。循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。_rnn

pert计算公式期望值_练习-三点估算和PERT技术-程序员宅基地

文章浏览阅读873次。三点估算和PERT技术通过考虑估算中的不确定性和风险,可以提高活动持续时间估算的准确性。这个概念起源于计划评审技术(ProjectEvaluationandReviewTechnique,PERT)。PERT经常使用3种估算值来界定活动持续时间的近似区间,其关系如下:·最可能时间(tE)。活动的持续时间估算。项目管理论坛·最可能时间(tM)。基于最可能获得的资源、最可能取得的资源生产率..._beta pert 分布, 三点时间满足 90%概率分布,求期望时间te

MFC链接SQL Server ——学生成绩管理系统-程序员宅基地

文章浏览阅读3.3k次,点赞18次,收藏67次。MFC链接SQL Server连接数据库新建一个udl文件,服务器名称与SQL Server服务器保持一致。选择相应的数据库,测试连接。(先建好数据库)将udl文件改成txt文件。打开该文件,第3行为SQL Server数据库连接字符串。在MFC项目中添加连接代码新建基于对话框的MFC应用程序项目,按学号命名。在电脑查找msado15.dll的路径,例如:C:\Program Files (x86)\Common Files\System\ado\msado15.dll在MFC项目头文

随便推点

五年级计算机下册工作计划,五年级下学期工作计划-程序员宅基地

文章浏览阅读67次。指导思想:五年级组2009年下学期工作计划是坚持"以人为本,以德为先"的宗旨,以课堂教学为阵地,以课改为中心工作,努力培养本年级学生良好的学习风尚,努力建设一支团结协作,努力进取,敢于创新的教师团队.年级情况.五年级组共有十名教师,其中四个班主任兼语文教师,两个数学老师,一个英语老师,一个体育老师,一个音乐老师,一个科学老师.本组老师是充满活力与热情的,更是智慧与勤奋的.我们达成了共识:集体的'优...

e480 黑苹果_GitHub - aliyoge/Hackintosh-ThinkPad-E480: Thinkpad E480 for macOS Catalina-程序员宅基地

文章浏览阅读927次。Thinkpad E480 for macOS CatalinaHackintosh your Thinkpad E480让你的Thinkpad E480装上黑苹果电脑配置规格详细信息电脑型号联想ThinkPad 翼480(0UCD)处理器英特尔 酷睿 i5-8250U 处理器内存16GB 金士顿 DDR4 2400MHz硬盘东芝(TOSHIBA) 240GB集成显卡英特尔 UHD 图形620声卡..._e480 hackintosh 14.0

python zipfile模块_python标准库学习之zipfile模块-程序员宅基地

文章浏览阅读219次。ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo。ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的。class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])file:zip文件名(包含路径)mode:r,w,acompression..._python zipfile模块 csdn

64位下无法使用Microsoft.Jet.OLEDB.4.0的解决方法-程序员宅基地

文章浏览阅读9.5w次,点赞4次,收藏9次。OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询解决办法1.下载ACE2010的驱动,64位的。http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ed_microsoft.jet.oledb.4

全球首家!苹果市值达 3 万亿美元,AR 和自动驾驶是下一重点?-程序员宅基地

文章浏览阅读212次。作者 | 苏宓出品 | CSDN(ID:CSDNnews)成立于 1976 年的苹果公司,耗时 44 年,终于在 2018 年首次达到 1 万亿美元的市值。自此之后,苹果的发展仿佛安装了“高速马达”,短短两年后的 2020 年 8 月,苹果市值超越沙特阿美,打开 2 万亿美元的大门,成为彼时全球市值最高的上市公司。这一次,苹果仅用了一年的时间,在 2022 年新年伊始,于...

Java/Python/Go不同开发语言在进程、线程和协程的设计差异_线程和进程 不同的编程语言-程序员宅基地

文章浏览阅读1.5k次,点赞18次,收藏17次。在多线程项目开发时,最常用、最常遇到的问题是1,线程、协程安全2,线程、协程间的通信和控制本文主要探讨不同开发语言go、java、python在进程、线程和协程上的设计和开发方式的异同。_线程和进程 不同的编程语言

推荐文章

热门文章

相关标签