我想知道如何发布HTTP状态代码,这会导致抓取工具稍后尝试该内容,因为系统当前正在高负载运行。
304状态和没有内容显示是否可以解决此问题?
答案 0 :(得分:4)
您应该设置503
(服务不可用)并设置Retry-Later
选项。这似乎是一个准确的解决方案。
请参阅:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html和http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
答案 1 :(得分:1)
304
HTTP Status代码表示Not Modified
。
如果自上次抓取工具到达其网页(假设抓取工具发送HTTP标头以指示其何时到来)以来您的内容未被修改,我认为发送一个内容是可以的304 HTTP状态 - 实际上,这是正确的做法。
但是如果出现以下情况,您可能不应该发送Not Modified
状态代码:
相反,如果您的网络服务器超载,则正确的HTTP状态代码为503 Service Unavailable
(quoting):
服务器目前无法使用 (因为它过载或下载了 保养)。
一般来说,这是一个 临时状态。
答案 2 :(得分:0)
好吧,如果您使用304
回答无条件请求,客户端可能会将您的答案排序为“一般错误”(如500)。为什么不发送针对此类情况的状态代码503 Service Unavailable
?。