COOKIE&&SESSION总结

总结一下cookie和session

cookie

  • 为什么会有cookie
    因为http是一种无状态的协议,它不对之前发生过得请求和响应状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。假设要求登陆认证的web页本身无法进行状态的管理(不记录已登陆的状态),那么每次跳转新页面不是要再次登陆,就是要在每次请求的报文中附加参数来管理登陆状态。
    无状态协议当然是就有它的优点。由于不必保存状态,自然可以减少服务器的CPU及内存资源的消耗。从另一个侧面来说,也正是因为http协议本身是非常简单的,所以才会被应用到各种场景中。
    保留无状态协议这个特征的同时又要解决类似的矛盾问题,于是就引入cookie技术。cookie技术通过在请求和响应报文中写入cookie信息来控制客户端的状态。
    cookie会根据从服务器端发送的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入cookie值后发送出去。
    服务器端发现客户端发送过来的cookie后,会去检查究竟是从哪一个客户端发送过来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。
  • 长连接


在客户端执行http请求的之前,会通过TCP协议与服务器建立连接,http响应后,TCP连接不销毁,以便在下一次http请求的时候直接使用连接,保存时间默认是5秒。


  • cookie语法
    setcookie(名字,值,过期时间,有效目录,子域名);

  • 设置cookie


    cookie保存的类型只有字符串和数字

  • 删除cookie

  • cookie支持下标


    Cookie在浏览器上没有数组的概念,只是浏览器请求到服务器后,PHP将同名的值转成数组。

  • 临时性cookie和永久性cookie
    1、临时性cookie:关闭浏览器后cookie消失
    2、永久性cookie:关闭浏览器后cookie不消失,给临时性cookie添加一个过期时间即可

  • cookie的有效目录
    cookie默认只能在当前目录和后代目录中生效

  • cookie支持子域名
    不同的子域名是独立的网站。他们之间默认只能访问自己的cookie.
    默认情况下,cookie变量是区分子域名的。

  • cookie的缺点
    1、安全性低,因为http协议不加密,不验证报文的完整性,容易被窃听伪装篡改。
    2、增加了数据请求的负载,大部分浏览器队cookie的限制是4k
    3、可控性差,客户端可以禁用cookie

session(会话)


1、session技术一般基于cooke技术,但也可以通过其他方式实现
2、要使用一个会话,必须显式的开启一个会话,默认情况下,会话不会自动开启



3、要自动启动会话,在php.ini中找到session.auto_start=0这行,把0改为1,并重启服务器
4、session可以保存除了资源以外的任何数据类型
5、session_id()获取会话编号,session_name()获取会话名称


6、会话重复开启会提示性报错

  • 会话的执行过程
    1、使用session_start()函数,PHP从session仓库中加载已经存储的会话
    2、当session第一次启动时候,服务器给客户分配一个唯一的会话id保存在cookie中
    3、执行PHP的时候,通过会话编号去仓库中存入或读取值
    4、当PHP执行结束时,没有被销毁的session变量被自动保存到服务器的session仓库中。

session和cookie的区别

  • 相同点
    1、都是会话技术,有生命周期
    2、都是无状态性:服务器将请求内容发送到客户端后,服务器不在记录客户端的信息成为无状态性。

  • 不同点

姓名 Cookie session
存储地方 浏览器中 服务器端
安全性
数据负载 4K 没有限制
数据类型 字符串和数字 出了资源类型外
可控性

禁用cookie

1、如果禁用了cookie,基于cookie的所有技术默认都无法使用
2、php可以通过配置文件改变




3、PHP自动在URL地址上,表单中加上会话编号


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 6,942评论 1 17
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,473评论 11 349
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 8,766评论 0 20
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 4,933评论 0 51
  • 注:本文转载自前端大全 背景 在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称...
    楠小忎阅读 3,919评论 0 0