HTTP 是一个客户端和服务器端请求和应答的标准。
规范把 HTTP请求分为三个部分:状态行、请求头、消息主体。
HTTP 响应与 HTTP 请求相似,HTTP响应也由3个部分构成,分别是:
- 状态行
- 响应头(Response Header)
- 响应正文
HTTP 方法(几个常见的):
- GET:向指定的资源发出“显示”请求。
- POST:向指定资源提交数据,请求服务器进行处理。
- PUT:向指定资源位置上传其最新内容
- CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
- OPTION
- DELETE
HTTP 头字段:是指在超文本协议(HTTP)的请求和响应消息中的消息头部分。它们定义了一个超文本传输协议事务中的操作参数。
- 通用头字段
请求和响应均可使用,用来描述 HTTP消息本身,不用来描述被传输的实体。如:
- Date
- Cache-Control
- 请求头字段
- Accept:可接受的应答的媒体类型
- If-Match / If-None-Match:与HTTP方法一起用,使得条件性执行该方法。
- Host:目标
主机名(域名)
- 响应头字段
- Age:生成该 response 以来,服务器估计已经过去了多少时间,该字段用于缓存机制
- ETag:指定请求变量的当前实体Tag,该字段用来比较来自同一资源的变化的实体。与If-Match/If-None-Match成对使用来实现缓存。
- Last-Modified
- Allow: 实体允许哪些方法
状态码
所有 HTTP 响应的第一行都是状态行,一次是当前 HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
- 1xx 传输层错误
- 2xx 成功,资源给到
- 3xx 成功,资源未给到:
301 Moved Permanently | 被请求的资源已永久移动到新位置; | 302 Found | 请求的资源现在临时从不同的 URL 响应请求。 |
303 See Other | 对应当前的请求的响应可以在另外一个 URL 上被找到 | 304 Not Modified | 如果客户端发送了一个带条件的 GET请求且该请求已被允许,而文档那个的内容并没有改变,则服务器应当返回这个状态码 |
- 4xx 客户端错误:
403 Forbidden | 服务器已经理解请求,但是拒绝执行它。 |
404 Not Found | 请求失败,请求所希望得到的资源未被在服务器上发现。 |
401 Unauthorized | 当请请求要求用户验证 |
405 Method Not Allowed | 请求行中指定的请求方法不能被用于请求相应的资源 |
- 5xx 服务器错误
参考资料:
超文本传输协议: https://zh.wikipedia.org/zh-hans/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE
HTTP 头字段列表:
https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5%E5%88%97%E8%A1%A8
https://msdn.microsoft.com/zh-cn/library/aa287673(v=vs.71).aspx