了解传输协议

http: 传输协议

          => 前端怎么和后端沟通
          => 后端又是怎么把数据传递回来的

一个 http 请求的步骤
    1. 建立连接
    2. 前端 发送请求
    3. 后端 返回响应
    4. 断开连接
    + 注意:
      -> 这个请求只能由前端发起
      -> 四个步骤一个都不能少
    + 例子: 前端想和后端说两次事情
      -> 建立连接 -> 说第一个事情 -> 后端把第一个事情做完反馈结果 -> 断开连接
      -> 建立连接 -> 说第二个事情 -> 后端把第二个事情做完反馈结果 -> 断开连接

建立连接

    + 基于 TCP/IP 协议的三次握手
    + 目的: 保证前后端可以正常通信
      => 前后端都直到对方可以正常收发消息

前端发送请求

    + 每一个请求都以请求报文的形式发送
    + 报文: 报告 + 文章
      => 请求报文, 就是一个固定格式的信件
      => 必须有一个表体
        -> 中间些内容
        -> 最后必须要有时间
        -> 还有有一个此致敬礼
      => 浏览器我帮我们自动组装好
    + 请求报文里面包含哪些内容
      => 请求报文行(请求行)
        -> GET 请求方式(欠着)
        -> xxx.html 请求路径, 你向服务器请求的是什么东西
        -> HTTP/1.1 传输协议版本
      => 请求报文头(报文头)
        -> 对本次请求进行一些描述性的信息
        -> Host: 请求的主机
        -> User-Agent: 浏览器的信息(终端信息)
        -> Content-Type: 前端给后端的数据的数据格式
        -> cookie: (欠着)
      => 请求报文空行(请求空行)
        -> 分隔请求头和请求体的一个空行
      => 请求报文体(请求体)
        -> 前端给后端的数据
    + 一个报文
      请求行  什么请求 请求哪一个地址
      请求头  一些描述信息
      请求空行
      请求体  前端给后端的数据

后端响应:

    + 每一个响应都以响应报文的形式返回
    + 还是一个固定格式的 "信件"
    + 响应报文里面包含哪些内容
      => 响应状态行(状态行)
        -> HTTP/1.1 传输协议版本
        -> 200 响应状态码(欠着)
        -> OK 对响应状态码的简单描述
      => 响应报文头(响应头)
        -> 对本次响应的一些描述性信息
        -> Date: 服务器时间
        -> Server: 服务器信息
        -> Conetnt-Length: 后端返回的数据长度
        -> Content-Type: 后端返回的数据的格式(会让浏览器按照固定的数据格式解析内容)
      => 响应报文体(响应体)
        -> 后端给前端返回的数据
    + 一个响应报文
      状态行 传输协议 状态码 状态码的简单描述
      响应头 本次响应的描述信息
      响应体 后端给前端的数据

断开连接

    + 基于 TCP/IP 协议的四次挥手
    + 保证相互都不在进行通讯了

响应状态码

    + 再响应报文里面的一个信息
    + 表示本次请求的状态
      -> 成功(标准成功, 删除成功, 创建成功, ...)
      -> 失败(路径不对, 参数不对, 权限不对, ...)
      -> 缓存
      -> ...
    + 响应状态码分成五类
      => 100 ~ 199
        -> 表示连接继续, 继续请求
        -> 很少出现
      => 200 ~ 299
        -> 各种意义上的成功
        -> 200 标准成功
      => 300 ~ 399
        -> 重定向
        -> 本该请求一个路径, 但是由服务端给你换了一个路径
        -> 你看到的路径和你请求的路径不是一个, 中间有服务器给你处理了一下
        -> 304 缓存
        -> 301 永久重定向
        -> 302 临时重定向
      => 400 ~ 499
        -> 各种客户端错误
        -> 404 请求地址错误
        -> 403 权限不够不允许查看
      => 500 ~ 599
        -> 各种服务端错误
        -> 502 服务器维护或者过载

常见的请求方式

    + 什么是请求方式
      => 前端和后端说话的方式方法
      => 你用不同的方式和后端说话, 他接收到的信息是不一样
    + 常见的请求方式有八种(了解)
      1. GET -> 多用于向服务端获取一些数据
      2. POST -> 多用于向服务器传递信息
      3. PUT -> 多用于向服务器传递信息, 并让服务器存储起来
      4. DELETE -> 多用于让服务器删除一些信息
      5. HEAD -> 不需要响应体, 主要是为了获取响应头信息
      6. PACTH -> 和 PUT 类似, 倾向于局部更新
      7. CONNECT -> 预留方式, 管道连接改成代理连接的方式
      8. OPTIONS -> 用于允许前端查看服务端性能(服务端同意)
    + 二阶段使用 GET 和 POST
      => 三阶段我们可能会涉及到 PUT DELETE

GET 和 POST 请求的区别 ? (这是最主要的部分)

    GET
      1. 倾向于向服务器获取数据
      2. 直接再地址后面进行拼接(请求体是空的)
      3. 大小限制为 2KB 左右(因为 IE 最多传递 2KB)
      4. 会被浏览器主动缓存
      5. 相对于 POST 不是很安全(明文发送)
      6. 数据格式必须是 url 编码的格式, 如果不是会自动转换成 url 编码

    POST
      1. 倾向于向服务器传递数据
      2. 再请求体里面传递过去(地址后面没有)
      3. 理论上是没有限制(但是可以被服务器限制)
      4. 不会被浏览器主动缓存, 需要手动设置
      5. 相对于 GET 比较安全的(暗文发送)
      6. 数据格式理论上我所谓, 但是要和请求头中的 content-type 一致
        => 请求头里面的 content-type 表示请求体的数据格式

    注意:
      + 当你需要传递和用户相关的隐私信息的时候, 必须要使用 POST 方式发送
      + 当我做登录的时候, 一定要用 POST 方式发送请求

中国加油!武汉加油!千峰加油!我自己加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值