• PHP.相关技术.cookie


    cookie的基本流程如下:

    1. 设置cookie(可以用PHP,JS进行设置)
    2. cookie被自动添加到request header中
    3. 服务端接收到cookie,进行操作
    什么是cookie?

    cookie是浏览器自带的,存储到客户端,具体来说是一个纯文本文件,每个浏览器存储的位置都不一样。

    cookie有什么用?

    每次访问服务器的时候,浏览器都会查看是否有相应的cookie,有则自动添加在request header中的cookie字段中。

    什么数据适合存储到cookie里?

    可以重复使用的数据,如认证信息等。但是cookie是有限制的,最大为4KB,最多为20个。

    cookie有哪些属性?

    cookie有7大属性。分别为

    • name:cookie名称.

    • value:cookie值。

    • expire:过期时间,是一个unix时间戳

      • 如果设置成零,或者忽略参数, Cookie 会在会话结束时过期(也就是关掉浏览器时)。

      • 在HTTP1.1中新增了 max-age 选项,使用该选项而不用 expire

          max-age 的值是一个以秒为单位时间段(cookie失效时刻= 创建时刻+ max-age)。
        
          max-age 的默认值是 -1(即有效期为 session );
          若max-age有三种可能值:负数、0、正数。
          负数:有效期session;0:删除cookie;正数:有效期为创建时刻+ max-age
        
    • domain:域名,默认值为设置该cookie的网页所在的域名

    • path:是路径,默认值为设置该cookie的网页所在的目录

    • secure:必须为安全的URL才会发送

    • httpOnly:Cookie 仅可通过 HTTP 协议访问,js无法操作。这种类型的cookie只能通过服务端来设置

    如何设置cookie?
    • 服务器端

      • 如PHP,使用 setcookie() 函数设置,设置完成后,会通过 response 的 set-cookie选项保存到客户端

      • 以上七个属性都能进行设置

      • 每个 set-cookie 选项会设置一个,想设置多个,使用多个 set-cookie

    • 客户端

      • 如JS,使用 document.cookie="test=11"; 进行设置
    如何修改和删除cookie
    • 修改: path/domain值一致的情况下,直接赋值即可。
    • 删除: path/domain值一致的情况下,将 expire 字段设置为一个过去的时间即可。
    cookie编码

    cookie其实是个字符串,但这个字符串中逗号、分号、空格被当做了特殊符号。所以当cookie的 key 和 value 中含有这3个特殊字符时,需要对其进行额外编码,一般会用escape进行编码,读取时用unescape进行解码;当然也可以用encodeURIComponent/decodeURIComponent或者encodeURI/decodeURI(三者的区别可以参考这篇文章)

  • 相关阅读:
    B站崩溃的背后,b站高可用架构到底是怎么样的?
    批量查询注册表键值函数 RegQueryMultipleValues 应用一例
    windows服务程序的安装和卸载函数
    API 获得GetLastError()错误代码对应的文字信息
    API 在屏幕上简单显示字符串
    API 实现类似于 C# DateTime 的类
    Windows API ReportEvent 写系统日志
    .net core 新增对DOCKER后报 ERR_EMPTY_RESPONSE
    Windows docker 安装报 WSL 2 installation is incomplete.
    SSD固态硬盘装系统无法进入引导
  • 原文地址:https://www.cnblogs.com/qiye5757/p/9762911.html
Copyright © 2020-2023  润新知