• cookie和session


    cookie生成:

    1. 首先,我们假设当前域名下还是没有 Cookie 的
    2. 接下来,浏览器发送了一个请求给服务器(这时候的Request Headers 并没有 Cookie 这个字段)
    3. 服务器设置 Cookie 并发送给浏览器(当然也可以不设置,设置了的Response Headers 就有了 Set-Cookie: name=wyc; Path=/ 这个字段)
    4. 浏览器将 Cookie 保存下来
    5. 接下来,以后的每一次请求,都会带上这些 Cookie,发送给服务器(Cookie: name=wyc)
    6. 一个 Set-Cookie 字段只能设置一个 Cookie,当你要想设置多个 Cookie,需要添加同样多的 Set-Cookie 字段,每个字段后面可以跟上过期时间等属性

    cookie格式:
    1.Cookie 就是浏览器储存在用户电脑上的一小段文本文件
    2.Cookie 是纯文本格式,不包含任何可执行的代码
    3.Cookie 由键值对构成,由分号和空格隔开
    4.Cookie 虽然是存储在浏览器,但是通常由服务器端进行设置
    5.Cookie 的大小限制在 4kb 左右

    cookie属性:
    1.expires:Cookie 失效日期(毫秒)
    2.max-age:expires 是 http/1.0 协议中的选项,在新的 http/1.1 协议中 expires 已经由 max-age 选项代替,expires 的值是一个时间点 (Cookie 失效时刻 = expires),而 max-age 的值是一个以秒为单位时间段
    3.httpOnly:当 Cookie 带 httpOnly 选项时,客户端则无法通过 js 代码去访问(包括读取、修改、删除等)这个 Cookie。

    cookie弊端:
    1.cookie数据可以在客户端被修改伪造
    2.数据大时候存放在cookie影响效率

    session:
    1.每个 session 都对应一个 session_id,通过 session_id 可以查询到对应的 session
    2.session_id 通常是存放在客户端的 cookie 中,服务端存好 session 之后将对应的 session_id 设置在 cookie 中发送给客户端
    3.当请求到来时,服务端检查 cookie 中保存的 session_id 并通过这个 session_id 与服务器端的 session 关联起来,进行数据的保存和修改

    当你浏览一个网页时,服务端随机产生一个很长的字符串,然后存在你 cookie 中。当你下次访问时,cookie 会带有这个字符串,然后浏览器就知道你是上次访问过的某某某,然后从服务器的存储中取出上次记录在你身上的数据。由于字符串是随机产生的,而且位数足够多,所以也不担心有人能够伪造。


    cookie:直接setcookie("id",111);向客户端设置cookie,响应头里面就会有:Set-Cookie: id=111。第一次访问的时候客户端没有cookie信息,所以不携带,服务器set-cookie后,下次再访问另一个文件时就会在请求头携带cookie信息。
    session:服务器通过cookie发送sessionId到客户端,并在服务端建立一个与session同名的文件。下次访问时就携带服务器发放的sessionId。
    session_start(); //生成sessionId添加到响应首部,存到文件或者数据库中。
    $_SESSION['name'] = wyc; //将数组内容存放到文件或者数据库中。
    $_SESSION['age'] = 111;
    session删除:
    session_start();
    unset($_SESSION['name']); //删除某个元素
    $_SESSION = array(); //清空session
    setCookie(session_name(),"",time()-10,"/"); //删除客户端中cookie中的session
    session_destory(); //删除服务器的session


    参照:http://mertensming.github.io/2016/10/19/cookie-session/
    https://github.com/alsotang/node-lessons/tree/master/lesson16

  • 相关阅读:
    详解如何在vue项目中引入饿了么elementUI组件
    移动端Web页面适配方案
    蛋糕仙人的javascript笔记
    小程序框架细节系列
    微信小程序 获取用户信息并保存登录状态
    (尚006)Vue计算属性之set与get
    (尚004)Vue计算属性之基本使用和监视
    (尚003).Vue_模板语法
    (尚002)Vue的基本使用
    (尚001)Vue框架介绍
  • 原文地址:https://www.cnblogs.com/mentalidade/p/7018183.html
Copyright © 2020-2023  润新知