Skip to main content

HTTP协议

概述

超文本传输协议,规定了浏览器和服务器之间数据传输的规则

特点:

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每一次都是独立的。
    • 缺点:多次请求间不能共享数据。
    • 优点:速度快

请求协议

格式:

  1. 请求行:请求数据第一行(请求方式、资源路径、协议)

    GET /brand HTTP/1.1
  2. 请求头:第二行开始,格式是key: value

    Host请求的主机名
    User-Agent浏览器版本,如Chrome浏览器的标识类似Mozilla/5.0……Chrome/79,IE浏览器的标识类似Mozilla/5.0(WindowsNT……) like Gecko
    Accept表示浏览器能接受的资源类型,如text/*,image/或者/*表示所有;
    Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
    Accept-Encoding表示浏览器可以支持的压缩类型,如gzip,deflate等。
    Content-Type请求主体的数据类型。
    Content-Length请求主体的大小(单位:字节)。
  3. 请求体:POST请求,存放请求参数

注:

​ 请求方式-GET:请求参数在请求行中,没有请求体

​ 请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的

响应协议

  1. 响应行:响应数据第一行(协议、状态码、描述)

    HTTP/1.1 200 OK
  2. 响应头:第二行开始,格式key:value

  3. 响应体:最后,存放响应数据

1xx响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它
2xx成功-表示请求已经被成功接收,处理已经完成
3xx重定向-重定向到其他地方;让客户端再次发起一次请求以完成整个处理
4xx客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等
5xx服务器错误-处理发生错误 ,责任在服务端。如:程序抛出异常 等

**状态码大全:**https://cloud.tencent.com/developer/chapter/13553

Content-Type表示该响应内容的类型,如:text/html,application/json
Content-Length表示该响应内容的长度(字节数)
Content-Encoding表示该响应压缩算法,如gzip
Cache-Control指示客户端应如何缓存,如max-age=300表示最多缓存300秒
Set-Cookie告诉浏览器为当前页面所在的域设置cookie