Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

http header 相关 #32

Open
lxfriday opened this issue Oct 16, 2019 · 5 comments
Open

http header 相关 #32

lxfriday opened this issue Oct 16, 2019 · 5 comments
Labels
协议 协议

Comments

@lxfriday
Copy link
Owner

lxfriday commented Oct 16, 2019

相关

http 请求头
image

http 响应格式
image

@lxfriday
Copy link
Owner Author

lxfriday commented Oct 16, 2019

Accept-Encoding

MDN Accept-Encoding

Accept-Encoding 首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。

类型

  • gzip 由文件压缩程序 gzip(GNU zip)生成的编码格式 (RFC1952),采用 Lempel-Ziv 算法(LZ77)及 32 位循环冗余 校验(Cyclic Redundancy Check,通称 CRC)。
  • compress 由 UNIX 文件压缩程序 compress 生成的编码格式,采用 Lempel- Ziv-Welch 算法(LZW)。
  • deflate 组合使用 **zlib **格式(RFC1950)及由 deflate 压缩算法 (RFC1951)生成的编码格式。
  • identity 不执行压缩或不会变化的默认编码格式
  • br 表示采用 Brotli 算法的编码方式。

采用权重 q 值来表示相对优先级,这点与首部字段 Accept 相同。另 外,也可使用星号(*)作为通配符,指定任意的编码格式。

例如

Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1

@lxfriday
Copy link
Owner Author

lxfriday commented Oct 16, 2019

Connection

Connection 首部字段具备如下两个作用。

  • 控制不再转发给代理的首部字段
  • 管理持久连接 keep-alive

控制不再转发给代理的首部字段
image

Connection: 不再转发的首部字段名

在客户端发送请求和服务器返回响应内,使用 Connection 首部字段,可控制不再转发给代理的首部字段(即 Hop-by-hop 首 部)。

管理持久连接
image
image

Connection: Keep-Alive
or
Connection: close

HTTP/1.1 版本的默认连接都是持久连接。为此,客户端会在持久连接上连续发送请求。当服务器端想明确断开连接时,则指定 Connection 首部字段的值为 Close。

HTTP/1.1 之前的 HTTP 版本的默认连接都是非持久连接。为此,如果想在旧版本的 HTTP 协议上维持持续连接,则需要指定 Connection 首部字段的值为 Keep-Alive。

Connection: Keep-Alive

以逗号分隔的HTTP头 [通常仅有 keep-alive]

表明客户端想要保持该网络连接打开,HTTP/1.1的请求默认使用一个持久连接。这个请求头列表由头部名组成,这些头将被第一个非透明的代理或者代理间的缓存所移除:这些头定义了发出者和第一个实体之间的连接,而不是和目的地节点间的连接。

@lxfriday
Copy link
Owner Author

Keep-Alive

Keep-Alive 是一个通用消息头,允许消息发送者暗示连接的状态,还可以用来设置超时时长和最大请求数。

注意

需要将 Connection 首部的值设置为 "keep-alive" 这个首部才有意义。同时需要注意的是,在HTTP/2 协议中, Connection 和 Keep-Alive 是被忽略的;在其中采用其他机制来进行连接管理。

参数

  • timeout 指定了一个空闲连接需要保持打开状态的最小时长(以秒为单位)。需要注意的是,如果没有在传输层设置 keep-alive TCP message 的话,大于 TCP 层面的超时设置会被忽略。
  • max 在连接关闭之前,在此连接可以发送的请求的最大值。在非管道连接中,除了 0 以外,这个值是被忽略的,因为需要在紧跟着的响应中发送新一次的请求。HTTP 管道连接则可以用它来限制管道的使用。

@lxfriday lxfriday changed the title http 请求头记录 http header 相关 Oct 16, 2019
@lxfriday lxfriday added the 协议 协议 label Oct 18, 2019
@lxfriday
Copy link
Owner Author

lxfriday commented Oct 25, 2019

X-Frame-Options

给浏览器 指示允许一个页面 可否在 <frame> <embed> 或者 <object> 中展现的标记。站点可以通过它确保网站没有被嵌入到别人的站点里面,从而避免 clickjacking 攻击。

可以有三个值

  • deny 拒绝,相同域名也不行;
  • sameorigin 表示该页面可以在相同域名页面的 frame 中展示;
  • allow-from uri 表示该页面可以在指定来源的 frame 中展示;
X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com/

@lxfriday
Copy link
Owner Author

dns-prefetch

小米官网

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
协议 协议
Projects
None yet
Development

No branches or pull requests

1 participant