先理解为什么出现cookie和session:
为了使得网站可以跟踪客户端与服务器之间的交互,保存和记忆每个用户的身份和信息,我们需要一种强有力的解决方案,这样就产生了会话控制。
会话控制思想就是能够在网站中跟踪一个变量,我们可以跟踪变量,就可以做到对用户的支持,并根据授权和用户身份显示不同内容,不同页面。

一、cookie:

  cookie是在http协议下,服务器或脚本可以维护客户端信息的一种方式。当用户访问服务器时,服务器可以设置和访问cookie的信息。cookie保存在客户端。
1)cookie大小限制:
    一个域名的每个cookie限制4千字节;
2)设置cookie
    bool setcookie(string name,[string value,[int expire,[string path,[string domain,[int secure]]]]]);
        name        设置cookie的名字。(必须)
        Value       设置cookie的值。
        expire       设置cookie的过期时间和日期,用一个标准的Unix时间标记,可以用time()函数取得,以秒为单位。
        细节:Setcookie只能保存字符串,如果不是字符串,能转换成字符串它就自动转换,如果不能转换,则不能保存。如果没有设置过期时间,则这个内容不会保存到客户电脑中的cookie当中,它会保存到浏览器的缓存当中,也就是说它的声明周期维持到浏览器关闭为止。在设置 cookie 的页面上去访问cookie信息,是访问不到的,要刷新一下,或者在其他的页面接受。
删除cookie:调用只带有name参数的setcooki,那么名为这个cookie将被从客户机上删除;设置Cookie的失效时间为time()或time()-1
 

二、session

  Session从用户访问页面开始,到断开与网站连接为止,形成一个会话的生命周期。在会话期间,分配客户唯一的一个SessionID,用来标识当前用户,与其他用户进行区分。Session会话时,SessionID会分别保存在客户端和服务器端两个位置,对于客户端使用临时的Cookie保存(Cookie名称为PHPSESSID)或者通过URL字符串传递,服务器端也以文本文件形式保存在指定的Session目录中。SessionID可以作为会话信息保存到数据库中,进行Session持久化,这样可以跟踪每个用户的登陆次数、在线与否、在线时间等
session_start() ://开始一个会话或者返回已经存在的会话。
说明:这个函数没有参数,且返回值均为true。如果你使用基于cookie的session,那么在使用session_start()之前浏览器不能有任何输出。尽量把session_start()写在页面的前面。
1)直接关闭浏览器和点击退出按钮有何区别?
是有区别的,安全退出,及时销毁session文件,如果直接关闭浏览器,session仍然保留在服务器上。
2)session的生存周期
    PHP的session默认在服务器端,每个session一个文件,如果没有设置session的生存周期,关闭浏览器后该ID自动注销(原因是:PHP配置文件里有设置gc_maxlifetime,还有gc_probability gc_divisor 有一定概率的删除会输数据,参考http://php.net/manual/zh/session.security.ini.php);在没有禁用cookie时,cookie在启动session会话的时候扮演的是存储sessionID和session生存期的角色;所以可以修改cookie的周期来间接控制session的周期
    Session_set_cookie_params()函数设置
    setcookie(session_name(), session_id(), time()+600);
 
 
欢迎大家讨论,对于session的生存周期理解

cookie session区别的更多相关文章

  1. session和cookie的区别

    cookie机制和session机制的区别     具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.     同时我们也看到,由于才服务器 ...

  2. 详解SESSION与COOKIE的区别

    在PHP面试中 经常碰到请阐述session与cookie的区别与联系,以及如何修改两者的有效时间. 大家都知道,session是存储在服务器端的,cookie是存储在客户端的,session依赖于c ...

  3. session 和 cookie 的区别与联系

    1.创建一个新的Cookie Cookie cookie = new Cookie("username",name); 2.设置cookie在客户端上存活多久 cookie.set ...

  4. session与cookie的区别,有哪些不同之处

    session与cookie的区别,根据自己的理解总结如下: (1)cookie是一种客户端的状态管理技术,将状态写在 浏览器端,而session是一种服务器端的状态管理技术,将 状态写在web服务器 ...

  5. session与cookie的区别【转】

    我所知道的有以下区别:       1.session保存在服务器,客户端不知道其中的信息:cookie保存在客户端,服务器能够知道其中的信息.       2.session中保存的是对象,cook ...

  6. session与cookie的区别与联系

    session与cookie是在做项目中很常用的会话技术,session与cookie也是面试中被问到频率最高的问题,有一次我去面试,面试官就怼着我session与cookie一直问(头都大了),下面 ...

  7. cookie 和 session区别

    cookie 和 session区别 ① cookie介绍说明 cookie 存放在浏览器缓存中---浏览器进行查看(谷歌) [设置]---[高级]---[内容设置]---[cookie]---[所有 ...

  8. session与cookie的区别以及HTML5中WebStorage理解

    一.session与cookie的区别 二.HTML5中WebStorage理解 WebStorage的目的是克服由cookie所带来的一些限制,当数据需要被严格控制在客户端时,不需要持续的将数据发回 ...

  9. [转]session和cookie的区别和联系,session的生命周期,多个服务部署时session管理

    Session和Cookie的区别 对象 信息量大小 保存时间 应用范围 保存位置 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cookie 小 ...

随机推荐

  1. mybatis_SQL映射(1)

    文章摘录自:http://blog.csdn.net/y172158950/article/details/17258377 1. select的映射 <select id="sele ...

  2. Linux系统shell编程自学_第一章基础

    第一章 基础shell的优势在于处理操作系统底层的业务,Python,php的优势在于开发运维工具,web界面的管理工具以及web业务开发.处理一键安装.优化.报警脚本shell又叫命令解释器,它能识 ...

  3. scrapy_items

    为什么要items? 当数据量多的时候,没有统一的数据管理,统一格式化麻烦 items中除了能添加字段,还能做什么? 1. 进行预先处理 2. 对从items出去的数据进行处理 3. 写上sql语句逻 ...

  4. 2017 .NET 開發者須知

    筆記-Scott Hanselman 的 2017 .NET 開發者須知 转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should- ...

  5. RChain总体架构图

    RChain是我研究区块链依赖发现的和我最契合的(主要是用scala写的),在架构上吞吐率和扩展性也是最好,未来是真正有可能实现在它官网上宣称的能够承载facebook一样的规模,具有和visa一样的 ...

  6. shell第一篇

    前两天不停的再看内核相关的内容,了解内核的形成.内核的执行流程.内核的作用,结果是舍近求远. 其实我只是想了解一下shell的工作,shell与内核有关,但并不需要我么真正去做什么,至少对于我这样额初 ...

  7. 【转】一些常用的Vi命令,可帮助脱离鼠标

    使用Vi编写代码时,如果想脱离鼠标,需要使用一些命令快捷键,下面罗列了一些常用的并且容易记住的: 1. 命令模式下,移动光标或跳转 0到行首 ^到行首第一个非空字符 $到行尾非空字符 fx向后移动光标 ...

  8. ubuntu网桥设置

    什么是桥接? 桥接(Bridging),是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程,工作在OSI的第二层.一般的交换机,网桥就有桥接作用. 一般的交换机,网桥就有桥接作用.就交换 ...

  9. ATS缓存数据结构

    ATS缓存数据结构 HttpTunnel类 数据传输驱动器(data transfer driver),包含一个生产者(producer)集合,每个生产者连接到一个或是多个消费者(comsumer). ...

  10. C为变量提供了5中存储模型(类)