2016-08-23 17:06:45 4867次浏览 1条回答 0 悬赏 10 金钱

1.jpg

2.png

补充于 2016-08-23 17:07

最佳答案

  • 飘逸 发布于 2016-08-23 19:04 举报

    这里有个重要的概念:cookie是存在于客户端的。

    在你服务端对浏览器返回了创建cookie的header头时,浏览器则会根据服务端返回的cookie创建规则去创建cookie,规则中包含着name,value,expire等。 cookie的本质就是一个小小的纯文本文件。

    而等到下次浏览器再次发起一个请求时,则会自动去客户端存在的cookie的集合中去寻找应当被通过 request header 发送到服务端的cookie。但是这个被发送的cookie并不包含expire。所以你打印 request header 中 cookie expire的结果为null。你可以理解为 被你用来打印请求 cookie expire的 request 组件代表着http协议的 request header。

    对于服务端发送创建cookie的header到浏览器创建及发送cookie的交互过程,chrome的f12记录的一清二楚。

    当然,如果你想要判断当前的cookie有没有过期,完全不需要通过你之前设置的过期时间去判断,因为cookie一旦过期。则不会被浏览器发送到服务器。你服务器根本就接受不到。当然,如果你实在需要一个类似于过期时间的东西,那么你可以把这个东西放入 cookie 的 value 中。毕竟cookie的value服务器是完全可以接收的。

    我觉得这篇文章吊的不要不要的:
    http://bubkoo.com/2014/04/21/http-cookies-explained/

    2 条回复
    回复于 2016-08-24 01:14 回复

    哦,好的,你这样讲我又学到了新知识,谢谢!

    回复于 2016-08-24 10:07 回复

    @杜子腾 不用谢,采纳啊。

    觉得很赞
    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
37853
等待激活

37853

注册时间:2016-10-31
最后登录:1970-01-01
在线时长:0小时0分
  • 粉丝0
  • 金钱100
  • 威望10
  • 积分200

热门问题