Cookies与session的区别,获取与使用

fiddler: inspectors选项卡下–raw选项卡(点击即可直接保存至笔记本)
1.Chrome浏览器:一般被存储至%APPDATA%\Google\Chrome\UserData\Default\中名为Cookies的文件

IE里把各个网站的Cookies分别保存成XXX.txt文件,Firefox和Chrome把Cookies都保存到一个格式为SQLite3的数据库里

|
|

2.可以直接查询:
Chrome:设置–隐私设置–内容设置–Cookies选项卡里查看,可以根据不同域名查看

|
|

3.前端获取:
地址栏输入:Javascript:alert(document.cookie)即可查询当前地址的cookies

cookie的传递内容一般不加密,因此密码之类的敏感信息一般不放入Cookies

设置Cookies的生命周期:生存时间长久有效,保存在客户端硬盘,浏览器关闭也不清除,生命周期可以改变
方法1:设置–隐私设置–内容设置–Cookies–仅将本地数据保存到您退出浏览器为止
方法2:用开发手段在服务器的代码层修改生命周期
Name:cookies一旦创建,名称不可修改
Value:值若为Unicode字符需要为字符编码,若为二进制需要用Base64编码
Unicod编码:保存中文,中文属于Unicode字符,在内存中占4个字符,英文属于ASCII字符,只占两个字节
Base64编码:保存二进制图片,如保存数字证书
base64是基于64个可打印字符来表示二进制数据的表示方式,因为2的6次方为64,所以每6个bit为一个单元对应一个可打印字符,三个字节有24个bit
6bit=一个Base64单元(2的6次方)
一个字节=8bit,所以3个字节需要用四个base64可打印字符表示
MaxAge:若为正数,cookies在MaxAge秒后失效,为负数则为临时cookies,关闭浏览器则失效,也不会被保存,为0则删除该cookies,默认为-1
Secure:是否仅被使用安全协议传输(HTTPS,SSL等),在传输前先加密数据,默认为false
Path:cookies使用路径,若为“/sessionWeb/”,则只有contextPath为"/sessionWeb"的程序可以访问该cookie,最后一个字符必须为“/”
Domain:可以访问该cookie的域名,若设为“.google.com”,则以“google.com”结尾的域名都可以访问该cookie,第一个字符必须为“.”
Cookie不可跨域名和浏览器使用

HTTP是无状态协议
无状态:每份协数据独立,前后不具有关联性,cookies是服务器为了识别用户给颁发的具有唯一ID的通行证(相当于身份证)将不同阶段的数据传输用指定的方式进行关联,解决了无状态性
session机制:确认无cookies用户的身份
cookies保存在客户端浏览器,session保存在服务器,客户端再次访问时只用在session查找该用户的状态即可

session传输步骤:
1.服务端运行时创建,并为该session生成唯一的session ID
session ID会被在请求中用来获取已经创建的Session,session创建后可以调用相关方法增加内容保存到服务器
2.服务器先将session ID发送到客户端,客户端在初次请求后发送的请求会带上session ID
3.服务器接收请求后依据session ID找到session

session的传输媒介:
1.cookie:用抓包工具从cookie中获取session ID用于模拟用户请求
没有cookie,把sessionID当做cookie,因此服务器向客户端浏览器发送一个名为JSESSIONID的cookie,其值为session的ID
客户端若不支持cookie,传输session就需要重写URL地址
2.URL地址重写:
将session ID的信息重写到URL地址,服务器能解析重写后的URL,获取ID
重写厚度输出可能是:https://www.baidu.com/s? jsessionid=babvhajbvlavbahbv,用户单击这个链接的时候回把session ID通过URL提交到服务器

session的生命周期:程序一般在用户做log off的时候删除session,服务器自己有删除机制,浏览器关掉不会删除但会找不到,所以服务器回自己设置失效时间,如Tomcat中可以通过setMaxInactiveInterval(int seconds)方法修改默认超时时间

session:没有存储容量上限,但为了服务器性能要设置删除机制
能存取任何类型数据(列表,map图,数字,字符串等),cookie只能用编码的方式存取Unicode或二进制数据,复杂数据无法存储
session对客户透明但不存储在本地,所以不会被本地利用攻击
cookie保管在客户端,对于并发用户多的网站有利,session并发多了容易耗费server内存
对于WAP应用,不支持cookie,只能用URL地址+session
cookie在整个浏览器有效,session只在本窗口及子窗口有效
cookie支持跨域名访问,如,将domain属性设为“.biaodianfu.com”,则以此为后缀的域名都能访问该cookie,session只在其所在域名有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值