大白话理解cookie

HTTP协议是无状态的,需通过会话控制解决服务器识别请求问题,主要方式有Cookie和Session。本文详细介绍了Cookie,包括其创建、读取、修改、删除操作,属性值如Expires、Max - Age等,还提及会话Cookie和持久Cookie特点,以及Cookie不可跨域名性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP协议是一个无状态的协议,服务器无法区分出两次请求是否发送自同一服务器。

需要通过会话控制来解决这个问题,会话控制主要有两种方式Cookie Session

Cookie就是一个头,Cookie由服务器创建,服务器以响应头的形式发送给客户端,

客户端收到Cookie以后,会将其自动保存,在下次向服务器发送请求时会自动将Cookie以请求的形式发,服务器收到以后就可以检查请求头中的Cookie并且可以根据Cookie中的信息来识别出不同的用户。

具体操作:设置、读取、删除cookie

  1. 创建document.cookie=key=value; key1=value2
  2. 读取var x = document.cookie
  3. 修改(进行覆盖)document.cookie=newkey=newvalue; newkey1=newvalue2
  4. 删除(设置过期时间expires )document.cookie = "key=value; expires=Thu, 01 Jan 1970 00:00:00 GMT";
function setCookie(name, value,days) {
//三个参数,一个是cookie的名子,一个是值,最后一个是天数
    var exp = new Date();
 //setTime() 方法以毫秒设置,向 1970/01/01 添加毫秒,并显示新的日期和时间。
    exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
//toGMTString格林威治时间 (GMT) 把 Date 对象转换为字符串,并返回结果。
    document.cookie = name + "=" + value + ";expires=" + exp.toGMTString();
  }

属性值:

① Expires 时间要转成GMT形式 : toGMTString()

② Max-Age:毫秒  60 * 60 * 24 一天

③ Domain属性指定浏览器发出 HTTP 请求时,哪些域名要附带这个 Cookie

www.example.com会设为example.com,而且以后如果访问example.com的任何子域名,

④ Path属性指定浏览器发出 HTTP 请求时,哪些路径要附带这个 Cookie

PATH属性是/,那么请求/docs路径也会包含该 Cookie。当然,前提是域名必须一致。

1如不设置过期时间,只要关闭浏览器窗口,Cookie就消失了。被称为会话Cookie

一般不保存在硬盘上而是保存在内存里

2)设置了过期时间,Cookie保存到硬盘上,关闭后再次 打开浏览器,这些Cookie依然有效直到超过设定的过期时间。。

Cookie具有不可跨域名性

转载于:https://www.cnblogs.com/renzm0318/p/11073851.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值