session cookie什么时候被发送?
答案:2 悬赏:10 手机版
解决时间 2021-03-27 23:01
- 提问者网友:鐵馬踏冰河
- 2021-03-27 08:17
session cookie是在向同一个主机名发送请求时,还是向同一个ip请求时被发送出去?更具体一些如果请求www.baidu.com时获得sessionID,那么下次向zhidao.baidu.com或者www.baidu.com/somedir 发送请求时会一并发出session cookie吗?
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-01-08 16:31
一般情况,session是和域名有关的.比如你访问a.com,他会产生一个session来记录你的访问状态等.但是访问b.com还需要生成另外一个session,他们是两个不同的.即使是一个域名下的二级域名.session也是不同的.
而cookie是存储在本地电脑的一个加密过的文件.
你访问a.com的时候.可以生成一个cookie.如果你再访问abc.a.com 在这个aba.a.com中也是可以读取刚才那个cookie的.
简单说.session不跨域名.cookie可以跨域名.
而cookie是存储在本地电脑的一个加密过的文件.
你访问a.com的时候.可以生成一个cookie.如果你再访问abc.a.com 在这个aba.a.com中也是可以读取刚才那个cookie的.
简单说.session不跨域名.cookie可以跨域名.
全部回答
- 1楼网友:青尢
- 2020-05-10 22:54
session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的sessionid,用该sessionid
为标识符来存取服务器端的session存储空间。而sessionid这一数据则是保存到客户端,用cookie保存的,用户提交页面时,会将这一
sessionid提交到服务器端,来存取session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用cookie,那么session也会失效。
服务器也可以通过url重写的方式来传递sessionid的值,因此不是完全依赖cookie。如果客户端cookie禁用,则服务器可以自动通过重写url的方式来保存session的值,并且这个过程对程序员透明。
可以试一下,即使不写cookie,在使用request.getcookies();取出的cookie数组的长度也是1,而这个cookie的名字就是jsessionid,还有一个很长的二进制的字符串,是sessionid的值。
大家都知道,http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现
网上商店中的购物车呢,session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过sessionid来区分不同
的客户,session是以cookie或url重写为基础的,默认使用cookie来实现,系统会创造一个名为jsessionid的输出
cookie,我们叫做session
cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session
cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的jsessionid,我们通常情是看不到jsessionid的,但
是当我们把浏览器的cookie禁止后,web服务器会采用url重写的方式传递sessionid,我们就可以在地址栏看到
sessionid=kwjhug6jjm65hs2k6之类的字符串。
明白了原理,我们就可以很容易的分辨出persistent cookies和session
cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session
cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent
cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如session
cookie安全了。
通常session
cookie是不能跨窗口使用的,当你新开了一个浏览器窗口进入相同页面时,系统会赋予你一个新的sessionid,这样我们信息共享的目的就达不到了,此时我们可以先把sessionid保存在persistent
cookie中,然后在新窗口中读出来,就可以得到上一个窗口sessionid了,这样通过session
cookie和persistent cookie的结合我们就实现了跨窗口的session tracking(会话跟踪)。
在一些web开发的书中,往往只是简单的把session和cookie作为两种并列的http传送信息的方式,session
cookies位于服务器端,persistent
cookie位于客户端,可是session又是以cookie为基础的,明白的两者之间的联系和区别,我们就不难选择合适的技术来开发web
service了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯