6.1 HTTP报文首部
主要是从整体上讲首的类型及其构成部分.这个在3.2中有做笔记,所以这里省略..
哎呀,刚刚追我们恋爱吧,真的是太投入了,好好看好好看,这哪里是一个30多男人该看的综艺呢.
MDN网址.developer.mozilla.org/en-US/docs/…
MDN的分类和书上的分类有点出入,他是按首部功能分类.而这里是按HTTP首部分类.很明显,书上这种分类方式更容易让人理解和记忆.MDN上面的分类方法进阶之后就会掌握了.不过ctrl+f查找也是很快的
6.2 HTTP首部字段
6.2.1 HTTP首部字段传递重要信息
即说明一下为什么会存在首部字段,它到底有什么用.那他的作用到底是什么呢?就拿打电话来说,你打电话除了要说的事情,还得把你的区号,电话号码,是否欠费的信息带出去吧.如果欠费了怎么打得出去电话是不.这些和内容无直接关联的信息都是放在HTTP首部字段里面的 后面的内容只记录索引和首部字段的大概意思,具体的还是有需求的时候查看MDN文档,毕竟这些东西有点零散并且没有记忆规律,过一下有个大概印象即可,遇到需求先看索引,再去MDN看详情
6.2.2 HTTP首部字段结构
字段名 + 冒号 + 字段值
Content-Type: text/html
6.2.3 HTTP首部字段的类型
- 通用首部字段: 请求和响应报文中都会使用到的
- 请求首部字段: 只会出现在请求报文中
- 响应首部字段: 只会出现在响应报文中
- 实体首部字段: 针对请求/响应实体部分的,补充和资源内容有关的信息,比如更新时间等
6.2.4 非HTTP/1.1首部字段
- HTTP协议本身有47个首部字段
- 协议没出现过但是已经公共的也有很多
以前一直觉得这些请求头和响应头里面的信息多的很,除了常用的那几个,其他的完全不知道哪个是干什么用的.这两小节一看,思路也清晰很多.不就是几在类50来个嘛,加上常用的也不到100个.第个分类下也就十多二十来个.还是蛮简单的
6.2.5 End-to-end 首部和Hop-by-hop首部
虽然不知道这样分类到底有什么实际用途,但是先把概念记下来吧.毕竟内容不多...
- End-to-end: 这种类型的首部,必须传递到服务器或者客户端
- Hop-by-hop: 这种首部,只传给中间的代理,只转发一次.只有8个.具体那8个我看就没必要记了吧.
- 等等,为什么keep-alive是逐条???????这个不是用来保持客户端和服务器之间的长链接的么?
6.3 通用首部字段
| 首部字段 | 含义 |
|---|---|
| Cache-Control | 操作缓存的机制 多个值用逗号隔开 要注意no-cache和no-store之间的区别 |
| Connection | 指明哪些首部是Hop-by-hop首部 管理持久链接,即Keep-Alive |
| Date | 创建HTTP报文的时间 |
| Pragma | 历史遗留字段,已经没用了 |
| Trailer | 分块传输编码时使用,说明在报文主体后还有哪些首部 |
| Transfer-Encoding | 指定分块传输编码 |
| Upgrade | 切换高版本HTTP协议用的 |
| Via | 追踪客户端和服务器之间的报文传输路径,一般配合TRACE使用 |
| Warning | 告知用户一些与缓存相关的问题警告 |
6.4 请求首部字段
| 首部字段 | 含义 |
|---|---|
| Accept | 浏览器支持的资源类型 |
| Accept-Charset | 浏览器支持的字符集 |
| Accept-Encoding | 浏览器支持的实体编码 |
| Accept-Languagae | 浏览器能够处理的语言 |
| Authorization | 认证信息 |
| Expect | 期望服务器返回100状态码时使用 |
| From | 联系方式 |
| Host | 请求的域名/主机名 |
| If-Match | 如果实体资源的ETag符合则返回 |
| If-None-Match | 与上面反的 |
| If-Range | 配合range使用,如果不满足条件则返回全部,否则返回range部分 |
| If-Modified-Since | 从哪时候之后如果有更新就返回 |
| If-Unmodified-Since | 与上面相反 |
| Max-Forwards | 可经过的代理服务器的最大数量 |
| Proxy-Authorization | 和代理之间的认证信息 |
| Range | 想要请求的数据范围 |
| Referer | 原始资源URL |
| TE | 能够处理的传输编码 |
| User-Agent | 用户代理信息 |
6.5 响应首部字段
| 首部字段 | 含义 |
|---|---|
| Accept-Ranges | 告知客户端是否能够处理范围请求 |
| Age | 资源服务器最近一次响应的时间 |
| Etag | 实体的惟一ID |
| Location | 配合3XX使用,指定新的网址 |
| Proxy-Authenticate | 代理发出的认证标准 |
| Retry-after | 多久后再试,配合503/3XX使用 |
| Server | 服务器信息 |
| Vary | 只对请求中Vary相同的首部返回缓存 |
| WWW-Authenticate | 要求的认证方案 |
6.6 实体首部字段
| 首部字段 | 含义 |
|---|---|
| Allow | 资源支持的请求方式 |
| Content-Encoding | 资源编码方式 |
| Content-Language | 资源使用的语言 |
| Content-Length | 资源的大小 |
| Content-Location | 资源的URI |
| Content-MD5 | 资源的MD5值 |
| Content-Range | 返回的哪一部分资源 |
| Content-Type | 资源的类型 |
| Exppires | 资源的缓存时间 |
| Last-Modified | 资源的最后修改时间 |
6.7为Cookie服务的首部字段
| 首部字段 | 含义 |
|---|---|
| Set-Cookie | 响应首部,告知客户端需要提交Cookie首部 |
| Cookie | 请求首部,状态管理相关信息 |
6.8其他首部字段
| 首部字段 | 含义 |
|---|---|
| X-Frame-Options | 响应首部,防止站点劫持 |
| X-XSS-Protection | 响应首部,防止蹄脚本攻击 |
| DNT | 请求首部,是否允许收集个人信息 |
| P3P | 响应首部,保护个人隐私用的 |