在 Google Chrome 中,我可以查看浏览器发送和接收的 http 标头。一个有趣的选择是您可以将整个请求/响应复制为 cURL cmd。
问题是,每次我运行生成的 cURL 命令时,虽然服务器发送HTTP/1.1 200 OK,但内容长度为零,当浏览器本身发送相同的请求时,情况并非如此。
你的事情可能是什么问题?
听起来像是一个可以防御 DDoS 攻击的 HTTP 服务器。
HTTP 服务器可能期望每个请求包含特定于操作时间和顺序的内容。它可能作为特殊标记驻留在标头或正文中。
我的猜测是,每次服务器可能会使用不同的 cookie 值进行响应,这使得发送 2 个具有相同 cookie 值的请求无效。或者它可能是使用 UTC 时间作为参数的东西。无论如何,您的请求中一定有某些内容未通过服务器端过滤。
--
或者类似地,它可以是一次性使用的资源。例如,为一次性下载准备的临时文件。一旦被访问,该文件就不再可用。