美文网首页
COOKIE&&SESSION总结

COOKIE&&SESSION总结

作者: 8d2855a6c5d0 | 来源:发表于2017-11-21 23:35 被阅读0次

    总结一下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地址上,表单中加上会话编号


    相关文章

      网友评论

          本文标题:COOKIE&&SESSION总结

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