http 使用术语流入和流出描述事务处理的方向。报文流入端服务器,工作完成之后,会流回用户的 Agent 代理中
http 报文会像河水一样流动。
报文由三个部分组成,起始行,头部,以及可选的主体部分。所有的报文分两种:请求报文,响应报文
请求报文格式:
响应报文格式:
- 请求行,包含一个方法,一个请求方的URL和HTTP版本号。
- 响应行,包含版本号,状态码,原因短语。
- 首部分类
- 通用首部,既可以出现在请求报文中,也可以出现在响应报文中。
- 请求首部,提供更多有关请求的信息。
- 响应首部,提供更多有关响应的信息。
- 实体首部,描述主体的长度和内容,或者资源自身。
- 扩展首部,规范中每定义的新首部。
- HTTP 定义的一组常用的方法,通过语义化的方式规范请求的动作。
方法 | 描述 | 是否包含主体 |
---|---|---|
GET | 从服务器获取一份文档 | 否 |
HEAD | 只从服务器获取文档头部 | 否 |
POST | 向服务器发送需要处理的数据 | 是 |
PUT | 将请求的主体部分存储到服务器上 | 是 |
TRACE | 对可能经过代理服务器传输的服务器上去的报文进去跟踪 | 否 |
OPTIONS | 决定可以在服务器上执行哪些方法 | 否 |
DELETE | 从服务器上删除一份文档 | 否 |
-
GET 方法和 HEAD 方法都是被认为是安全的,不产生动作,只是向服务器端获取文档数据。HEAD 不同事的只返回文档头部。
-
POST 方法起初是用的向服务器输入数据的,通常会用来支 HTML 的表单。
-
PUT 方法修改服务器的的数据。PUT 方法会向服务器文档写入文档数据。让服务器用请求的主体部分创建一个新文档,或者 URL 已经存在就覆盖原先的数据(修改)
-
TRACE 方法,客户端发起一个请求时,这个请求可以能要穿过防火墙、代理、网关或者其他一些应用程序。每个中间节点的可能会修改原始 HTTP 请求。 TRACE 请求会目的服务器发起一个“环回”诊断。
-
OPTIONS 方法请求 web 服务器告知其支持的各种功能。
-
DELETE 方法所做的事情就是请服务器删除请求 URL 所指定的资源。
- 100 ~ 199 信息性状态码
- 200 ~ 299 成功状态码
- 300 ~ 399 重定向状态码
- 400 ~ 499 客户端错误状态码
- 500 ~ 599 服务器错误状态码
首部和方法配合工作,共同决定客户端和服务器能做什么事情。
有些首部提供了与报文相关的基本的信息,它们被称为通用首部。
请求首部只是在请求报文中出现的首部。
Accept 首部为客户端提供了一种将其喜好和能力告知服务器的方法
有是客户端希望为请求加上某些限制。
HTTP 本身就支持一种简单的机制,可以对请求进行质询/响应认证。这种机制要求客户端在获取特定的资源之前,先对自身进行认证。
代理服务器上用的首部
只出现在响应报文中的首部
如果资源有多种表示方式,HTTP/1.1 可以为服务器和客户端提供对资源进行协商的能力。
HTTP 的质询/响应认证机制的响应侧
用描述 HTTP 报文载荷部分(主体部分)的头部
内容首部提供了与实体内容相关的特定信息
通用的缓存首部说明了如何或什么时候进行缓存。实体的缓存首部提供了与被缓存实体有关的信息。