1.3 HTTP报文
将http比作物流业,那报文就是搬运东西的包裹。
这个部分会说明这个包裹的三个组成部分,以及这个包裹支持的功能(方法)等。
1.3.1 报文流
http使用术语流入
(inbound), 流出
(outbound)来描述事务处理
(transaction)的方向。报文流入源端服务器,工作完成后流回客户端。
http报文像河水一样流动。不管是请求报文还是响应报文,都向下游
流动。报文的发送者就是上游(upstream)的那端。
1.3.2 报文的组成部分
http报文是简单的格式化数据块。由三部分组成,下面是一个例子:
http/1.0 200 OK 起始行
Content-type: text /plain 首部
Content-length:19 //这里是一个空行CRLF
hi! I’m a message! 主体
起始行
和首部
是由行
分隔的ASCII文本,由两个字符组成的行终止序列作为结束,其中包含一个回车符
(ASCII码13)和一个换行符
(ASCII码10,这个行终止序列可以写成CELF
)。文件的程序也应该接受单个换行符作为行的终止。
实体的主题部分是一个可选
的数据块。主体中可以包含文本或者二进制数据,也可为空。
报文分为请求报文和响应报文。其格式分别为:
- 请求报文格式:
<method><request-URL><version> eg:| GET /test/hi.txt HTTP/1.1
<headers> | ACCEPT: text/*
| Host: www.joes-hardware.com
//CRLF |
<entity-body> |
- 响应报文格式:
<version><status><reason-phrase> eg:|HTTP/1.0 200 OK
<headers> |Content-type: text/plain
|Content-length: 19
//CRLF |
<entity-body> |Hi! I'm a message!
以上是大体的结构,1.3HTTP报文的其他部分是各个部分的描述