3.1 报文流
http使用流入和流出来描述事物处理方向,报文包含:起始行、首部和主体。
3.2 起始行
起始行包含:请求行和回应行。
3.2.1请求行
请求行包含:方法、请求URL(描述了对哪个资源执行这个方法,另外还包含http版本)
例:GET /test/layout.txt http/1.1
格式:所有字段都以空格符进行分隔(方法、路径、版本)
3.2.2响应行
响应行包括:http版本、数字状态码、原因短语。
例:http/1.0 200 ok
格式:所有字段都以空格符进行分隔
3.3 方法
在3.2中示例Get即是方法,常用方法有如下7种:
方法 | 描述 | 是否包含主体 |
GET | 从服务器获取一份文档 | 否 |
HEAD | 只从服务器获取文档的首部 | 否 |
POST | 向服务器发送需要处理的数据 | 是 |
PUT | 将请求的主体部分存储在服务器中 | 是 |
TRACE | 对可能经过代理服务器的报文进行追踪 | 否 |
OPTIONS | 决定可以在在服务器上 | 否 |
DELETE | 从服务器上删除一份文档 | 否 |
其他还有些诸如:Lock(允许用户锁定资源)、MKCOL(允许用户创建资源)、Copy(复制服务器上资源)、Move(在服务器上移动资源)等。
3.4状态码
与方法类似,方法是向服务器说明要做什么事,而状态码是告诉客户端,发生了什么事。
整体范围 | 已定义范围 | 分类 |
100-199 | 100-101 | 信息提示 |
200-299 | 200-206 | 成功 |
300-399 | 300-305 | 重新定向 |
400-499 | 400-415 | 客户端错误 |
500-599 | 500-505 | 服务端错误 |
常见状态码:200 原因短语:OK 含义:成功,请求的数据都在相应主体中
常见状态码:401 原因短语:Unauthorized 含义:需要输入用户名和密码
常见状态码:405 原因短语:Not Found 含义:服务器无法找到所请求的URL对应的资源
3.5 首部
~~~(没总结出什么东东来)
3.6 主体(实体)
实体的主体是http报文的负荷,就是其要传递的内容。
http报文可承载很多类型的数据:图片、视频、HTML文档、软件应用程序等