用于 HTTP 协议交互的信息被称为 HTTP 报文。请求段(客户端)的 HTTP 报文叫做请求报文,响应段(服务器端)的叫做响应报文。HTTP 报文本身是由多行(用 CR+LF 作换行符)数据构成的字符串文本。
HTTP报文格式
HTTP 报文大致可分为报文首部和报文主体两块,两者由最初出现的空行(CR+LF)来划分。通常,报文主体并不是必须的(比如常见的 GET 请求就没有报文主体)。
HTTP报文格式:
报文首部, 服务器端或客户端需处理的请求或响应的内容及属性;
CR+LF, 用于划分报文首部和主体,CR(Carriage Return, 回车符:16 进制表示为 0x0d)和 LF(Line Feed, 换行符:16 进制表示为 0x0a);
报文主体,需要被发送的数据。
报文结构
请求报文
请求报文格式:
请求行,包含用于请求的方法(如 GET, POST),请求 URI 和 HTTP 版本;
首部字段,包含表示请求各种条件和属性的各类首部;
其他,可能包含 HTTP 的 RFC 标准中未定义的首部(Cookie 等)。
请求报文结构
请求报文范例:
比如我提供加法计算的接口,你要给我传递2个数(a和b),我给你返回一个计算结果。
请求报文
响应报文
响应报文格式:
状态行,包含表明响应结果的状态码,原因短语和 HTTP 版本;
首部字段,包含表示响应各种条件和属性的各类首部;
其他,可能包含 HTTP 的 RFC 标准中未定义的首部(set-Cookies 等)。
响应报文结构
响应报文可能是:
请求报文