搜故事,从300万个故事到海量知识百科的华丽转变!

session与cookie引发的一个小故事

时间:2017-08-23

首先加载页面时去得到验证码,后台将验证码数字存入到session中,然后在登陆时把前端传入的验证码数字同后台取出的码进行比较,比较之前首先把原来的sess

提示:本文共有 1120 个字,阅读大概需要 3 分钟。

今天在公司加班,突然心血来潮想看看公司一款产品的后管平台登录图片验证码是如何实现的,发现用的方案就是session。首先加载页面时去得到验证码,后台将验证码数字存入到session中,然后在登陆时把前端传入的验证码数字同后台取出的码进行比较,比较之前首先把原来的session移除掉。若相同则验证通过,不同则验证不通过然后重新请求。这个流程本来是没有什么问题的,然而自己突然想到这里会不会有点问题呢?session在并发时会不会出现覆盖的情况呢?然后就动手开始测试。

首先,使用谷歌浏览器在登陆页面A复制一个登陆页面B出来,此时就出现问题了,由于B页面的出现原先的session值已经被覆盖掉了,此时A页面输入验证码后就会提示验证码错误。此时就在想能不能通过新的方案来解决这个问题。既然覆盖的原因是因为session的key相同造成的,那我能不能使用不同的key,那不就行了吗?这时很自然的想到了使用cookie,用cookie来保存一个随机数,每次请求验证码时候设置一个随机数存入cookie,同时session的key就是用这个随机数,并给cookie设置了个过期时间。由于cookie可以覆盖,所以不用担心同一时间,大量的请求问题。

代码完成后,便开始测试,然而并不是想的那么顺利,此时出现了一个困扰了我几个小时的问题。每次浏览器请求时都被写入cookie,可为什么在登陆时就不带上cookie呢?查了各种资料,甚至在java后台那里把请求头no-cache注释掉,都没解决。都快要放弃时,然后突然发现,JSSESSIONID的路径为什么和COOKIE的路径不一样呢?然后查了一些路径方面的资料,终于发现是这个原因了。然后再试试问题就解决了,真是坑了我好久。

然后我又突然想到,session是线程安全的吗,会不会存在着覆盖的情况。仔细分析后发现是安全的,我同时打开谷歌、火狐浏览器,然后使用不同的用户登录系统,发现并没有出现session里用户名被覆盖的情况,原因原来是JSSESSION这个东西,JSSESSIONID表示一个会话,这个会话维护着自己的session,所以不会出现覆盖的情况。这同时也解释了为什么我最初时也就是没有改验证码情况之前,通过两个浏览器不会出现验证码被覆盖的情况。如果通过同一个浏览器来登陆不同用户的话,就会出现用户被覆盖的情况,相比原因大家也都知道,那就是JSSESSIONID是一致造成的。

用了将近一天的时间弄明白了这个问题,同时也对session和cookie的原理有了更加深入的了解。学习技术就应该孜孜不倦,任何异常的产生都是有原因的,解决这个异常的过程虽然很艰难,但是随着不断地深入你会学到很多很多。

看到此处说明本文对你还是有帮助的,关于“session与cookie引发的一个小故事”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
鲸鱼睡前故事 If You Give a Mouse a Cookie如果你给了小老鼠一块饼干

鲸鱼睡前故事 If You Give a Mouse a Cookie如果你给了小老鼠一块饼干

牛奶,小老鼠,饼干,故事,孩子,小男孩,图画,插画家,他一定会,冰箱,外教,小班,小朋友,插图,鲸鱼,英语,纸巾,睡前故事,认真地,这个故事,小朋,你念,还可以,就好了,前程,信号,一环扣一环,东西,世界各地,作家

2020-07-09 #短篇故事

睡前英语故事丨Holiday Cookies 节日饼干

睡前英语故事丨Holiday Cookies 节日饼干

饼干,丽莎,妈妈,小朋友们,节日,星星,妈妈说,合中,来加,罗宾逊,我喜欢,好呀,剪出,先生,原声,动画,圆饼,外教,孩子,字幕,宝贝,形状,烤盘,红色,词汇量,英语,英双语,蓝色,阶段,邻居们

2011-02-19 #短篇故事

Android本地登录与WebView网页登陆同步问题cookie同步问题

Android本地登录与WebView网页登陆同步问题cookie同步问题

工件,处理器,如果您,组件,增量,版本,注释,可以使用,编程语言,优势,功能,所需,架构,标志,集成,请参阅,应用,了解详情,一起使用,不会有,您可以,建议您,最后一个,默认为,构造函数,在使用,在上面,更新了

2020-06-02 #故事会在线阅读

有个故事告诉我们行动的重要性 有一个穷... 来自Cookies

有个故事告诉我们行动的重要性 有一个穷... 来自Cookies

富和尚,和尚,南海,行动,凭什么,姚琛,富和,故事,人生目标,地方,水瓶,机会,租船,白日梦,重要性,践行,长江,南下,告诉我们,不会有,你一直在,动的人,容易实现,如果不去,实现计划,我想到,心动不如行动,有一天,在做,足够了

2020-04-27 #故事会

英语单词编故事用bookfoot.Cookies.Moon.Spoon.Food编故事 要短一点 有趣一点.

英语单词编故事用bookfoot.Cookies.Moon.Spoon.Food编故事 要短一点 有趣一点.

吉姆,杰克,菜单,东西,厨师,筷子,汉堡包,竞速,比赛,又开始,加一个,非常出色,太多了

2020-08-16 #短篇故事

小松鼠小老鼠和小田鼠的故事小松鼠小老鼠与小田鼠的故事

小松鼠小老鼠和小田鼠的故事小松鼠小老鼠与小田鼠的故事

小松鼠,小老鼠,花生,小田,好朋友,和小田,鼠的故事,两个好朋友,好的,里一,伙伴,叶子,偷吃,处境,意识,没过多久,朋友,机会,花儿,生气,泥土,礼物,花生地,黄花,饿肚子,们一起,一定是,不用担心,一条路,从哪里

2020-07-10 #故事大全

童话故事作文:小白兔 小松鼠 小猴子 小狐狸 小刺猬

童话故事作文:小白兔 小松鼠 小猴子 小狐狸 小刺猬

小白兔,菊花,小刺猬,小伙伴,小猴子,稀巴烂,回家,小松鼠,小狐狸,自己做,灿灿,王思,发现了,小山沟,童话故事,作文,公公,大树,小山,样子,文章内容,沟里,篮子,精彩内容,里长,野菊花,今天天气真好,到一个,如果我们,森林里

2020-06-27 #经典故事

童话故事作文:小白兔 小松鼠 小猴子 小狐狸 小刺猬

童话故事作文:小白兔 小松鼠 小猴子 小狐狸 小刺猬

小白兔,菊花,小刺猬,小伙伴,小猴子,稀巴烂,回家,小松鼠,小狐狸,自己做,灿灿,王思,发现了,小山沟,童话故事,作文,公公,大树,小山,样子,文章内容,沟里,篮子,精彩内容,里长,野菊花,今天天气真好,到一个,如果我们,森林里

2020-07-19 #小故事