美文网首页
关于cookie

关于cookie

作者: 饕餮潴 | 来源:发表于2018-12-21 12:03 被阅读5次

    什么事cookies:

    • cookie是浏览器存储在用户 客户端上的一小段文本文件 (不超过4k,单域名cookies不超过30个),不包含任何执行代码。
    • http://example.com设置的 Cookie,可以被https://example.com读取。
      (浏览器的同源政策规定,两个网址只要域名相同和端口相同,就可以共享 Cookie(参见《同源政策》一章)。注意,这里不要求协议相同。,)

    为什么要cookies:

    由于http协议的无状态,对于一个浏览器发送的多次请求,服务器无法辨别是否源自同意浏览器,所欲需要额外的数据用于维护会话,cookies就是这样一段随http请求一起被传递的额外数据。

    cookies的构成:

    set cookie: name=value; domain=.mozilla.org; expires=Feb, 13-Mar-2018 11:47:50; path=/; secure

    • 名称 name:一个唯一确定cookie的名称,不分大小写,cookie的名字必须是经过URL编码的,一般可以采用某个前缀在加上当前时间的- - 做法,这样的话名称能够确保是唯一的,也比较方便。

    • 值 value:存储在cookie中的字符串值,必须经过被URL编码

    • 域 domain:对于哪个域是有效的,如果没有设置的话,默认来自设置cookie的那个域,在上诉例子中就是.Mozilla.org

    • 失效时间 expires:表示cookie何时应该被删除的时间戳,这个日期是GMT格式的日期,如果设置是以前的时间,cookie会被立刻删除。上 诉cookie的失效时间是Feb,13-Mar-2018 11:47:50。

    • 路径 path :指定域中的那个路径,应该想服务器发送cookie,/ 表示没有限制
      安全标志 secure :指定以后,cookie只有在使用https连接的时候才可以发送到服务器,该属性只是一个开关,不需要指定。如果通信是https 该开关默认打开。

    cookies常见应用

    • 对话(session)管理:保存登录、购物车等需要记录的信息。
    • 个性化:保存用户的偏好,比如网页的字体大小、背景色等等。
    • 追踪:记录和分析用户行为。

    cookies相关设置

    • cookies由http协议生成,也主要被http协议使用
    设置cookie
    • 在http回应头信息里放置 Set-Cookie字段
      Set-Cookie:foo=bar // 在浏览器保存一个名为foo的cookie 值为bar
    • http回应可以设置多个Set-Cookie字段 生成多个cookie
    HTTP/1.0 200 OK
    Content-type: text/html
    Set-Cookie:test_Cookie=one
    Set-Cookie:testCookie=tow
    
    [page content]
    

    除了cookie的值 还可以附加上面提到的其他属性
    Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly
    Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly

    • 如果服务器想要修改之前的cookie 就不许保证新的cookie的 key domain path secure这四个与之前的cookie完全一致,否则会创新新的cookie 而不替换旧cookie
    服务器收到浏览器发来的cookie 亮点是无法知道的:
    1. cookie的这种属性和过期时间
    2. 那个域名设置的cookie 到底是一级域名还是二级域名设置的cookie

    相关文章

      网友评论

          本文标题:关于cookie

          本文链接:https://www.haomeiwen.com/subject/wtaykqtx.html