zoukankan      html  css  js  c++  java
  • php 会话控制(关于cookie的维护与生命周期)

    cookie是在服务器端被创建并写回到客户端浏览器,浏览器接到响应头中关于写cookie的指令则在本地临时文件中。

    cookie内容的存储是键值对的方式,键和值都只能是字符串

    函数原型:setcookie(name, value, expire, path, domain);

    注释:cookie标题头必须在发送其他标题头之前发送,否则就无效(这是cookie的限制,而不是PHP的限制)。

    cookie的维护

        cookie有四个标识符:cookie的name,domain,path,secure标记。要想在将来改变这个cookie的值,需要发送另一个具有相同cookie name,domain,path的Set-Cookie消息头,这将以一个新的值来覆盖原来cookie的值。然而,如果仅仅只是改变这些选项的某一个也会创建一个完全不同的cookie。

    cookie失效时间

        可以设置过期时间,如果不设置则是会话级别的,即关闭浏览器就会消失。

        当cookie创建时包含了失效日期,这个失效日期则关联了以name-domain-path-secure为标识的cookie。

        要改变一个cookie的失效日期,你必须指定同样的组合。

        当改变一个cookie的值时,你不必每次都设置失效日期,因为它不是cookie标识信息的组成部分

        只有手工改变cookie的失效日期,否则其失效日期不会改变。

        这意味着在同一个会话中,一个会话cookie可以变成一个持久化cookie(一个可以在多个会话中存在的),反之则不可。为了要将一个持久化cookie变为一个会话cookie,你必须删除这个持久化cookie,这只要设置它的失效日期为过去某个时间之后再创建一个同名的会话cookie就可以实现。

    ****需要记得的是失效日期是以浏览器运行的电脑上的系统时间为基准进行核实的。没有任何办法来来验证这个系统时间是否和服务器的时间同步,所以当服务器时间和浏览器所处系统时间存在差异时这样的设置会出现错误。****

    cookie自动删除

        会话cooke(Session cookie)在会话结束时(浏览器关闭)会被删除
        持久化cookie(Persistent cookie)在到达失效日期时会被删除

  • 相关阅读:
    MongoVUE破解方法(转)
    Apache和IIS共享80端口,支持多域名
    让作业飞吧,与屌丝兄弟们分享我的分布式作业调度平台 【拥抱开源,拥抱作业调度的神器Quartz.net】
    关于Nbearlite 访问PostgreSql,MySql,Sqlite的Bug
    php5.4.6/5.3.16/5.2.17安装(In windows),配置(转)
    MSSQL翻页存储过程
    话说客户端连接mongoDB的连接参数(转载)
    关于Windows频繁打开关闭端口时出现的问题(转至老赵)
    zeromq的几种模式(转)
    如何设置代理服务器上网
  • 原文地址:https://www.cnblogs.com/lijiageng/p/6899980.html
Copyright © 2011-2022 走看看