HTTP
-
什么是 HTTP
- HyperText Transfer Protocol 的简写
- 超文本传输协议
- HTML:超文本标记语言
超文本:原先一个个单一的文本,通过超链接将其链接起来。由原先的单一文本变成了可无限延伸、扩展的超级文本、立体文本。
HTML、js、css、图片、字体、音频、视频等等文件,都是通过 HTTP (超文本传输协议)在服务器和浏览器之间传输
每一次前后端通信,前端需要主动向后端发送请求,后端接收请求后,可以给出响应 HTTP 是一个请求 - 响应协议
- HTTP 请求响应的过程
HTTP 报文
-
HTTP 报文是什么
- 浏览器向服务器发送请求时,请求本身就是信息,叫请求报文
- 服务器向浏览器发送响应是传输的信息,叫做响应报文
-
HTTP 报文格式
- 请求
- 请求头 -> 起始行+首部
- 请求体
- 响应
- 响应头 -> 起始行+首部
- 响应体
- GET 请求,没有请求体,数据通过请求头携带
- POST 请求,有请求体,数据通过请求体携带
- 请求
HTTP 方法
- 常用的 HTTP 方法
- 浏览器发送请求时采用的方法,和响应无关
- GET、POST、PUT、DELETE
- 用来定义对于资源采取什么样的操作的,有各自的语义
- HTTP 方法的语义
- GET 获取数据
- 获取资源(文件)
- POST 创建数据
- 注册
- PUT 更新数据
- 修改个人信息,修改密码
- DELETE 删除数据
- 删除一条评论
- 增删改查
- 这些方法虽然有各自的语义,但并不是强制性的
- GET 获取数据
- RESTful 接口设计
- 一种接口的设计风格,充分利用 HTTP 方法的语义
GET和POST方法的对比
- 语义
- GET:获取数据
- POST:创建数据
- 发送数据
- GET 通过地址在请求头中携带的数据
- 能携带的数据和地址的长度有关系,一般最多就几k
- POST 既可以通过地址在请求头中携带数据,也可以通过请求体携带数据
- 能携带的数据理论上是无限的
- 携带少量数据,可以使用GET请求,大量的数据可以使用POST请求
- GET 通过地址在请求头中携带的数据
- 缓存 GET 可以被缓存,POST 不会被缓存
- 安全性 GET 和 POST 都不安全 发送密码或其他敏感信息是不要使用 GET,主要是避免直接被他人窥屏或通过历史记录找到你的密码
HTTP 状态码
- HTTP 状态码是什么 定义服务器对请求的处理结果,是服务器返回的
- 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 服务器内部错误
- 100~199消息:代表请求已被接收,需要继续处理