HTTP、GET和POST

88 阅读3分钟

HTTP

  1. 什么是 HTTP

    • HyperText Transfer Protocol 的简写
    • 超文本传输协议
    • HTML:超文本标记语言

超文本:原先一个个单一的文本,通过超链接将其链接起来。由原先的单一文本变成了可无限延伸、扩展的超级文本、立体文本。

HTML、js、css、图片、字体、音频、视频等等文件,都是通过 HTTP (超文本传输协议)在服务器和浏览器之间传输

每一次前后端通信,前端需要主动向后端发送请求,后端接收请求后,可以给出响应 HTTP 是一个请求 - 响应协议

  1. HTTP 请求响应的过程

HTTP 报文

  1. HTTP 报文是什么

    • 浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
    • 服务器向浏览器发送响应是传输的信息,叫做响应报文
  2. HTTP 报文格式

    • 请求
      • 请求头 -> 起始行+首部
      • 请求体
    • 响应
      • 响应头 -> 起始行+首部
      • 响应体
    • GET 请求,没有请求体,数据通过请求头携带
    • POST 请求,有请求体,数据通过请求体携带

HTTP 方法

  1. 常用的 HTTP 方法
    • 浏览器发送请求时采用的方法,和响应无关
    • GET、POST、PUT、DELETE
    • 用来定义对于资源采取什么样的操作的,有各自的语义
  2. HTTP 方法的语义
    • GET 获取数据
      • 获取资源(文件)
    • POST 创建数据
      • 注册
    • PUT 更新数据
      • 修改个人信息,修改密码
    • DELETE 删除数据
      • 删除一条评论
    • 增删改查
    • 这些方法虽然有各自的语义,但并不是强制性的
  3. RESTful 接口设计
    • 一种接口的设计风格,充分利用 HTTP 方法的语义

GET和POST方法的对比

  1. 语义
    • GET:获取数据
    • POST:创建数据
  2. 发送数据
    • GET 通过地址在请求头中携带的数据
      • 能携带的数据和地址的长度有关系,一般最多就几k
    • POST 既可以通过地址在请求头中携带数据,也可以通过请求体携带数据
      • 能携带的数据理论上是无限的
    • 携带少量数据,可以使用GET请求,大量的数据可以使用POST请求
  3. 缓存 GET 可以被缓存,POST 不会被缓存
  4. 安全性 GET 和 POST 都不安全 发送密码或其他敏感信息是不要使用 GET,主要是避免直接被他人窥屏或通过历史记录找到你的密码

HTTP 状态码

  1. HTTP 状态码是什么 定义服务器对请求的处理结果,是服务器返回的
  2. HTTP 状态码的语义
    • 100~199消息:代表请求已被接收,需要继续处理
      • websocket
    • 200~299 成功
    • 300~399 重定向
      • 301 Moved Permanently 永久性缓存(谨慎使用)
      • 302 Move Temporarily 临时性
      • 304 Not Modified 没有被修改
    • 400~499 请求错误
      • 404 Not Found
    • 500~599 服务器错误
      • 500 lnternet Server Error 服务器内部错误