cookie & session

cookie用于记录客户端用户信息,session用于记录服务器端的用户信息

1. cookie是什么?
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

2. cookie的作用
HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法跟踪会话。而cookie可以用于跟踪用户的会话。

3. cookie的特征
- cookie具有不可跨域特性:例如浏览器在访问Google页面时只会携带Google的cookie,而不会携带百度的cookie。虽然网站images.google.com与网站www.google.com同属于Google,但是域名不一样,二者同样不能互相操作彼此的Cookie。
- cookie对中文只支持UTF-8编码
- cookie支持保存二进制图片

4. cookie的属性

  • String name – cookie的名称(不可改)
  • Object value – cookie的值
  • int maxAge – Cookie失效的时间(second)
      如果为正数,则该Cookie在maxAge秒之后失效。
      如果为负数,该Cookie为临时Cookie,关闭浏览器即失效。默认-1
      如果为0,表示删除该Cookie。
  • boolean secure –该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。
  • String path – cookie路径
  • String domain – cookie域名
  • int version – Cookie版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范。

?什么是cookie隔离
在请求资源的时候不携带cookie信息。
解决方法:静态文件不要存储在主域名目录下,这样在使用非主要域名的时候,请求头中就不会带有cookie数据,以降低请求头的大小、请求时间,从而达到降低整体请求延时的目的。同时,这种方法不会将cookie传入Web Server,也减少了Web Server对cookie的处理分析环节,提高了webserver的http请求的解析速度。


1. session的生命周期
session保存在服务器的内存里。Session在用户第一次访问服务器的时候自动创建。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。Session的超时时间为maxInactiveInterval属性,可以通过对应的getMaxInactiveInterval()获取,通过setMaxInactiveInterval(longinterval)修改。

2. session的识别
服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。例如用同一台机器的chrome和Firefox浏览器访问服务器时,会生成两个不同的Session。但是用多个chrome的内建窗口访问服务器时生成同一个session。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值