报文流
HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。
这些报文在客户端,服务器和代理之间流动。
报文的组成成分
HTTP报文是简单的格式化数据块,由三个 部分组成:
- 对报文进行描述的起始行(start line)
- 包含属性的首部(header)块
-
可选的,包含数据的主体(body)部分,可以包含文本或二进制数据,也可以为空
报文的语法
所有的HTTP报文都可以分为两类,请求报文和响应报文。
请求报文格式如下:
<method> <request-URL> <version>
<headers>
<entity-body>
- 方法:HTTP中定义了一组常用的请求方法,告知服务器要做什么事情
- 请求URL:命名了所请求资源
响应报文格式如下:
<version> <status> <reason-phrase>
<headers>
<entity-body>
- 状态码:描述请求过程中所发生的情况,告诉客户端,发生了什么事
- 原因短语: 数字状态码的可读版本
报文的其他组成详情:
- 版本号:为使用HTTP的应用程序提供一种线索,以便相互了解对法的能力和报文格式
- 首部:名/值对的列表
- 主体部分: HTTP要传输的内容
方法(method)
- GET:通常用于请求服务器发送某个资源
- HEAD: 通常用于请求服务器在响应中返回首部,不会返回实体的主体部分,这样可以了解资源情况,判断其是否村子,查看其是否被修改
- PUT:向服务器写入文档,让服务器用请求的主体部分来创建一个所请求的URL命名的新文档
- POST: 向服务器中输入数据,通常用它来支持HTML的表单
- TRACE: 客户端发起请求后,请求可能要穿过防火墙,代理,网关等,每个中间节点都有可能会修改原始的HTTP请求,TRACE允许客户端在最终将请求发送给服务器时,看看它变成了什么样子
- OPTIONS:询问服务器通常支持哪些方法
- DELETE:请求服务器删除请求URL所指定的资源
状态码
- 100~199:信息性状态码
- 200~299:成功状态码
- 300~399:重定向状态码
- 400~499: 客户端错误状态码
- 500~599:服务器错误状态码