HTTP报文是HTTP应用程序之间发送的数据块,这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文在客户端、服务器和代理之间流动。
报文是如何流动的。
报文是从上游流向下游的、
请求报文是从客户端流向服务器的,此时,客户端是上游,服务器是下游。响应报文则相反,是从服务器流向客户端的,客户端是下游,服务器是上游。
在途中流经的代理也如同河流一样,靠近流出方向的代理是靠近流入方向的上游。
HTTP报文的三个组成部分
HTTP报文包括这三个部分:起始行、首部、主体(可选)
起始行和首部是由行分割的ASCII文本,主体可以包括文本和二进制数据
起始行:
请求报文的起始行叫请求行。它以请求方法开头、接着请求URL、最后跟着HTTP协议及版本(用来告知服务器客户端使用的是什么HTTP)。这些都以空格分隔。
ps:请求方法有:PUT、POST、GET、HEAD、TRACE、OPTIONS、DELETE。其中红色字体的报文需要带主体
响应报文的起始行叫响应行。它包括了响应报文所使用的HTTP协议、状态码、和描述操作状态的短语。
ps:状态码大致如下,具体可以上网搜索。
1xx:信息提示
2xx:成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误
首部:
包含了报文的信息,例如报文的内容、报文的长度、服务器产生响应的日期等等。首部主要有五个类型:
通用首部、请求首部、响应首部、实体首部、扩展首部。具体可以上网搜索。
主体:
如果报文传送的HTML、json数据、图片、视频、电子邮箱等,都是放在主体里。
主体不一定是一定存在的。
总结自HTTP权威指南第三章