向浏览器发送cookie再获取,为什么获取不到刚刚发送的cookie

向浏览器发送cookie再获取,为什么获取不到刚刚发送的cookie,第1张

cookie的原理,楼主有时间,应该多看看。

把数据保存到cookie中,在服务器的响应的时候,就会把cookie保存到客户端(一般是浏览器)的硬盘中。当你第二次(关键)访问的时候,浏览器才会将cookie带过来。 而楼主你的代码中,根本就没有二次访问,所以就肯定获取不到值了。

这种情况是可以保存在session中。

cookie有的过期是有时间显示的,就要看你访问的服务,内部是如何实现的。有的要按退出才删除cookie,有的则是关闭浏览器,它也会监听到,清除cookie;有的要是没安全退出,关闭浏览器,需要一定的时间这个session才会过时。

(1) 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识,也就是5F4771183629C9834F8382E23BE13C4C 用一个方法(忘了方法的名字)处理URL串就可以得到这个东西 这个方法会判断你的浏览器是否开启了Cookie,如果他认为应该加他就会加上去 (2) 链接1:wapbrowse/developerWorks/cn/java/j-jstl0318/indexshtml (6) 方法一:url中紧跟servlet/jsp文件名加;jsessionid=sessionId,其中sessionId由>

SpringBoot + SpringSecurity + 前后端分离 (前端 127001:8848,后端 localhost:8998)

登录和其他请求的JSESSIONID(存入cookie内)不同,导致其他请求给后端的JSESSIONID为未登录的无效SESSIONID,提示未登录。

顺序:登录(/login) ---> 组织结构(/depts) ---> 个人信息(/staff/getOne/wld)

登录:响应Cookie

组织结构:响应Cookie

个人信息:请求Cookie

后端

顺序:登录(/login) ---> 个人信息(/staff/getOne/wld) ---> 组织结构(/depts)

登录:响应Cookie

个人信息:无Cookie

组织结构:响应Cookie

后端

A、B两次的测试登录和其他的 *** 作Cookie都不同,说明后端响应请求成功,但响应JSESSIONID并没有存入到本地,以致后序的 *** 作拿不到Cookie中的JSESSIONID,能获取后端传来JSESSIONID的拿到了一个新的JSESSIONID(A中组织结构),不能获取后端传来JSESSIONID的也没有请求Cookie(B中个人信息)。

开启withCredentials后,服务器才能拿到你的cookie。当然后端服务器也要设置允许你获取你开启了才有用(之前有设置)

loginhtml(登录):没有开启

show-informhtml(个人信息):开启

struct-treehtml(组织结构):开启 (但是dataType没有指定,所以在A、B测试中其均有响应Cookie)

SpringSecurity中登录的过滤器

其他请求的过滤器

1、每次调试前,浏览器缓存、cookie啥的清除干净,方便查找问题

2、改动要完整,要清楚是干什么的(前端loginhtml没有开启withCredentials是这次的主要问题)

综述:Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

1获取Cookie的值:获取Cookie值的标准代码格为:myCookieValues["auth"];

上句代码可以获取名为myCookie的Cookie对象键名为auth的键值。如果不存在,则返回null。

DateTime now=new DateTimeNow;

ResponseCookies["Info"]Expires = DateTimeNowAddDays(1);

//设定Cookie过期时间下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法

2代码如下:

>

这是为了返回的cookie不在响应体里面不是json格式的,而是在响应头里面,前面已写在响应体里面用json path extractor获取cookie

1、给登录的请求下添加一个正则表达式提取器,从头部提取JSESSIONID:

 原本登录返回的JSSESSIONID如下:

所以我们正则表达式写为如下的格式:

Set-Cookie: JSESSIONID=(); Path=/lanzhouhf_Web; >

以上就是关于向浏览器发送cookie再获取,为什么获取不到刚刚发送的cookie全部的内容,包括:向浏览器发送cookie再获取,为什么获取不到刚刚发送的cookie、关闭浏览器,重新使用之前已登录的cookie(jsessionId),还是登录状态,是因为服务器的session还没过期吗、jsessionid包含在请求url里是不是漏洞等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9424695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存