计算机基础之HTTP

286 阅读2分钟

HTTP

超文本传输协议。是客户端与服务端之间请求和应答的标准。

通过TCP协议将HTTP请求报文发送给服务端,服务端传给客户端一个响应报文。

请求与响应报文有哪些字段

请求格式:

  • 请求行 例如(GET /images/logo.gif HTTP/1.1) 请求方法 路径+查询参数 协议名/版本
  • 请求头 例如(Host:请求的域名/Ip) 告诉服务器我想干什么以及规定的内容格式
  • 空行
  • 请求体:对于post请求,需要的参数不会放在url上,而是放在请求体中 响应格式:
  • 状态行 例如(HTTP/1.1 200 OK)协议名/版本号 状态码 状态字符串
  • 响应头 例如 (Content-Type: text/html)对应请求报文中请求头设置的格式
  • 空行
  • 响应体:请求需要的资源

HTTP 状态码

客户端向服务端发送一个请求,服务端告诉客户端当前请求的状态。

2xx 成功响应:

  • 200 OK 请求成功
  • 206 Partial Content 服务器处理了部分请求。比如:文件的分片上传。在请求过程中服务端就会处理一部分请求。

3xx 重定向(需要客户端进一步操作才能完成请求)

  • 301 Moved Permanently 被请求的资源被移动到新位置。比如:请求一个url,服务端没有该接口,会回应给客户端一个新地址,重定向正确的地址
  • 304 Not Modified 客户端发送GET请求,并且请求内容和上次访问的内容一样。即客户端资源未被修改,资源依然可以正常使用。这种情况服务端会返回304,告诉客户端资源直接从内存里拿

4xx 客户端错误

  • 401 Unauthorized 请求需要认证信息
  • 403 Forbidden 请求被拒绝 比如:由于身份权限 该接口只能后端人员访问,普通用户拒绝访问
  • 404 Not Found 请求的内容服务器没有即找不到页面

5xx 服务端错误

  • 503 Service Unavailable 服务器没有准备好处理请求。可能是因为服务器停机。

HTTP2.0有什么新特性

  • 基于二进制流。将一个TCP 连接分为若干流,每个流中可以传递若干个信息,每个信息由若干个二进制帧组成。
  • 多路复用。一个TCP连接,可以处理多个请求。
  • 服务器推送。客户端发送获取HTML的请求,服务器会把HTML以及HTML里需要的资源一起发给客户端
  • 压缩 Http 首部
  • 请求可以设置优先级