HTTP协议中Cookie彻底解读

Cookie简介:

      Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。

http和cookie的交互过程

                                          

大体流程:服务器向客户端发送cookie——浏览器将cookie保存——浏览器每次都向服务器提交cookie

SetCookie:"name=value;domain=.domain.com;expires=Sat,11 Jun 2016 11:29:42 GMT;HttpOnly;secure;"
// 其中name=value为必选项,其余为可选项
  • name:一个唯一确定的cookie名称。通常来讲cookie的名称是不区分大小写的
  • value:存储在cookie中的字符串值。最好为cookie的name和value进行url编码
  • domain:可以访问该cookie的域名
  • path:表示cookie作用的路径,默认情况下,cookie会和创建它的网页、其目录及其子目录下的网页和相关联
  • expires:失效时间,表示cookie何时过期的时间戳(也就是何时停止向服务器发送cookie的时间戳)。如果不设置这个,那么该cookie只存储在RAM,即session cookies,将在浏览器关闭的时候删除所有cookie,当然浏览器页面设置这个时间,时间格式是GMT格式,如果客户端和服务端时间不一样,那么就会存在偏差
  • max-age:与expires作用相同,用来告诉服务器还有多久过期(单位是秒)
  • HttpOnly:设置后,浏览器无法通过document.cookie来显示或设置该cookie,无法通过脚本来获取,但依旧保存在浏览器目录中
  • secure:设置后,只有在使用HTTPS的时候才会带上该cookie,而发送普通http请求则不会带上该cookie,但仍然可以在机器上看到该cookie
  • 二.利弊

  • 1.利处
  • 可以在客户端上保存用户数据,例如购物车商品数据等,起到简单的缓存的作用,同时服务器还可以利用缓存在cookie中的数据,对其进行较为精准推荐
    保存用户的登陆状态,用户进行登陆,登陆成功后,服务器生成特定的sessionID设置到cookie中,每次HTTP请求都会带上sessionID作为用户标识
    2.弊处
    仅仅采用cookie作为验证手段容易导致XSS或CSRF攻击
    cookie由于未加密导致隐私信息泄露
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值