乐趣区

关于前端学习:Javascript传输协议

  • 理解 HTTP 协定

    • http 传输协定是前后端交互的一种形式,示意前端以怎么的模式发送数据给后端,后端以怎么的模式返回数据给前端
    • 传输协定中必须经验 建设连贯 –> 前端发送申请给后端 –> 后端返回响应给前端 –> 断开连接
    • 只能由前端被动发动,后端不能被动沟通前端
    • 一次连贯只能沟通一件事,所以对一件事尽可能详细描述
    • 前后端进行交互时只能应用字符串格局,不能应用其余格局的数据类型,中文会主动转换为 url 编码
  • 传输协定传输过程

    • 建设连贯(基于 TCP/IP 协定的三次握手)
      建设连贯的目标是保障浏览器与服务器之间进行通道的连贯

      过程: 前端询问后端状态,后端回应前端,前端回应后端的回应,前端与后端确认失常连贯,前端发送申请给后端


    • 前端发送申请(以申请报文模式进行发送)
      申请报文是一个非凡格局的字符串文件(由浏览器进行组装)
      申请行的参数阐明:

      1. 申请形式
        HTTP 1.0 的申请形式:

        1. GET 偏差于获取的形式(大部分都是给后端一些参数,用来获取一系列数据)
        2. POST 偏差于给服务器一些数据(大部分都是登录,给服务器一些信息,而后返回一个简略的后果)
        3. PUT 偏差于给服务器一些信息,增加数据(大部分用于注册,给服务器发送一些信息进行存储)
        4. HEAD 用于获取服务器头信息

        HTTP 1.1 的申请形式:

        1. DELDTE 偏差于删除信息(大部分时删除评论等)
        2. CONNECT 管道连贯扭转代理连贯应用
        3. PATCH 偏差于给服务器一些信息进行批改信息(大部分用于欠缺用户材料)
        4. OPTIONS 获取服务器性能,然而须要服务器批准
      2. ./login.php 示意申请地址
      3. HTTP/1.1 示意传输协定版本

      申请头(对本次申请的形容信息)

      1. Host 示意申请的主机
      2. Accapt 示意须要的数据类型
      3. User Agent 示意申请的终端
      4. Cookie
      5. Content-type 示意申请体的数据格式

      申请空行(分隔申请体和申请头)
      申请体(前端携带给后端的参数;GET 申请没有)


    • 后端接管申请并返回响应(以响应报文模式发送)
    • 状态行:

      1. 响应状态码
      • 100 ~ 199 示意连贯持续
        101 状态码示意连贯持续
      • 200 ~ 299 示意各种意义上的胜利
        200 状态码示意通用胜利
      • 300 ~ 399 示意重定向
        301 状态码示意永恒重定向(本次申请永恒拜访这个地址,从新切换为新的地址)
        302 状态码示意长期重定向(本次申请长期应用 服务器 来决定浏览器跳转页面)
      • 400 ~ 499 示意客户端谬误
        403 状态码示意拜访权限不够
        404 状态码示意拜访地址不存在
      • 500 ~ 599 示意服务端谬误
        500 状态码示意通用服务端谬误
        501 状态码示意服务器保护或过载
      1. 对响应状态码的简略形容
      2. 传输协定的版本
    • 响应行:

      1. 对本次响应的形容信息
      2. Date 示意服务器工夫(世界规范工夫)
      3. Server 示意服务器信息
      4. Content-Type 示意响应体的数据格式
      5. ···
    • 响应体(后端给前端的数据)

    • 断开连接(基于 TCP/IP 协定的四次挥手)
      保障浏览器与服务器之间通道的断开
      过程:前端收到响应报文,向后端发送断开报文,后端接管到断开报文并发送断开报文,前端接管到后端的断开报文并发送断开信息,后端无回应,断开来连贯
  • GET 和 POST 申请形式的区别

    • GET 语义上是获取信息,GET 携带参数的形式时 queryString,信息在地址栏前面间接拼接,不在申请体中,GET 实践上携带数据有限,然而浏览器地址栏无限,IE 为 2KB,GET 会被浏览器被动缓存,GET 明文发送
    • POST 语义上是提交信息,POST 携带参数是 requestBody,信息在地址栏没有,而是在申请体中,POST 实践上携带数据有限,然而会被服务器端限度,POST 申请不会被浏览器被动缓存,POST 暗文发送,POST 的数据格式须要与申请头内的 content-type 内的格局相匹配
  • 理解 Cookie(客户端的本地存储空间,用于存储一些数据)

    特点:

    1. Cookie 依照域名进行存储(只能拜访以后域名)
    2. Cookie 依照文件门路存储(子级能够拜访父级门路内容,父级不能拜访子级内容)
    3. Cookie 贮存时依照字符串的模式进行存储('key=value')
    4. Cookie 的存储空间为 4KB 或 50 条数据
    5. Cookie 时效性,默认为会话级别生效,敞开浏览器后就没有了,可进行手动进行设置
    6. Cookie 前后端均可操作
    7. 申请时主动携带数据
  • 操作 cookie 语法

    应用 JS 进行操作

    // 获取数据
    let cook = document.cookie
    // 设置或批改数据
    document.cookie = 'key = value;expires=' + new Date() + ';path=/'
    /* 
      key = value 设置值
      expires='+ new Date() +' 对 Cookie 设置时效性性
      path=/ 设置存储门路
      存储的数据会主动转换为字符串格局,个别只存储一些简略的数据
    */
    // 删除一条数据
    document.cookie = 'key = value;expires=-1'

    应用 PHP 进行操作

    // 获取数据(PHP 自带一个关联型数组)$cook = $_COOKIE;
    $cook = $_COOKIE['key'];// 拜访一个指定数据
    
    // 设置或批改
    setcookie(key,value,expires,path);
  • 理解 session(服务器端的一个存储空间)

    特点:开启 session 时,会主动生成一个“明码”,这个“明码”一半会主动存储到 cookie 中,当数据返回给前端时会主动把这个“明码”带回去,并且 cookie 中存在一个 session_id

  • 设置 session 的语法

    // 设置 session 对应的 cookie 的时效性
    session_set_cookie_params(时效时长,session_name(),session_id());
    // 参数一:单位为秒,设置多长时间过期
    // 参数二:设置 session 的 key
    // 参数三 session 的 value
    // 设置时效性的办法必须写在 session_start() 之前
    
    // 开启 session 空间
    session_start();
    // 设置 session
    $_SESSION['key']= value;
退出移动版