cookie简介

本文详细介绍了HTTP协议中的Cookie机制,解释了为何需要Cookie来维持会话状态,以及Cookie的主要属性,包括name=value、expires、path、domain、secure、maxAge和httpOnly等。Cookie用于跟踪用户会话,存储用户信息,并确保数据安全。同时,文中还讨论了Cookie的限制,如不可跨域以及如何通过设置属性控制其有效期和访问范围。
摘要由CSDN通过智能技术生成
  1. 需要cookie的原因
  • HTTP 是无状态的协议(对于事务处理没有记忆能力)
    当客户端和服务端会话完成时,由于每个请求都是完全独立的,服务端不会保存任何会话信息,因此服务端也无法确认当前访问者的身份信息,就无法知晓上一次的请求发送者和这一次的发送者是否相同。
    所以服务器与浏览器为了进行会话跟踪,就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 cookie 或者 session 去实现。
  1. cookie

  • 由服务器生成,发送给浏览器,浏览器将cookie以key-value形式保存到某个目录下的文本文件内,当再次请求同一网站时会把该cookie发送给服务器
  • cookie 存储在客户端:是客户端访问某个Web时,保存在客户端(本地终端)的数据信息
  • cookie 是不可跨域的: 每个 cookie 都会绑定单一的域名,无法在别的域名下获取使用,一级域名和二级域名之间是允许共享使用的(靠的是 domain)。
  1. cookie的重要属性
  • name=value
    键值对,设置 Cookie 的名称及相对应的值,都必须是字符串类型、值为 Unicode 字符,需要为字符编码、值为二进制数据,需要使用 BASE64 编码。
  • expires
    设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效
  • path
    定义了Web站点上可以访问该Cookie的目录,默认是 ‘/’。如果设置为 /abc,则只有 /abc 下的路由可以访问到该 cookie,如:/abc/read。
  • domain
    指定 cookie 所属域名,默认是当前域名
  • secure
    该 cookie 是否仅被使用安全协议传输。安全协议有 HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效。
  • maxAge
    cookie 失效的时间,单位秒。如果为整数,则该 cookie 在 maxAge 秒后失效。如果为负数,该 cookie 为临时 cookie ,关闭浏览器即失效,浏览器也不会以任何形式保存该 cookie 。如果为 0,表示删除该 cookie 。默认为 -1。- 比 expires 好用。
  • httpOnly
    如果给某个 cookie 设置了 httpOnly 属性,则无法通过 JS 脚本 读取到该 cookie 的信息,但还是能通过 Application 中手动修改 cookie,所以只是在一定程度上可以防止 XSS 攻击,不是绝对的安全
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值