在HTTP协议中,响应首部 Retry-After
表示用户代理需要等待多长时间之后才能继续发送请求。这个首部主要应用于以下两种场景:
- 当与
503
(Service Unavailable,当前服务不存在) 响应一起发送的时候,表示服务下线的预期时长。 - 当与重定向响应一起发送的时候,比如
301
(Moved Permanently,永久迁移),表示用户代理在发送重定向请求之前需要等待的最短时间。
Header type | Response header |
---|---|
Forbidden header name | no |
语法
Retry-After: <http-date> Retry-After: <delay-seconds>
指令
- <http-date>
- 表示在此时间之后可以重新尝试。参见
Date
首部来获取HTTP协议中关于日期格式的细节信息。 - <delay-seconds>
- 一个非负的十进制整数,表示在重试之前需要等待的秒数。
示例
对于计划内宕机时间的处理
不同的客户端与服务器端应用对于 Retry-After 首部的支持依然不太一致。不过,一些爬虫程序,比如谷歌的爬虫程序 Googlebot,会遵循 Retry-After 首部的规则。将其与 503
(Service Unavailable,当前服务不存在) 响应一起发送有助于互联网引擎做出判断,在宕机结束之后继续对网站构建索引。
Retry-After: Wed, 21 Oct 2015 07:28:00 GMT Retry-After: 120
规范
Specification | Title |
---|---|
RFC 7231, section 7.1.3: Retry-After | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |
浏览器兼容性
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | ? | (No)1 | (Yes) | ? | ? | ? |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | ? | ? | (Yes) | ? | ? | ? | ? |
1. See Bug 230260.
相关内容
- Google Webmaster blog: How to deal with planned site downtime
503
(Service Unavailable)301
(Moved Permanently)