我们的一些 API(REST)使用 HTTP 方法 OPTIONS 获得大量请求。虽然这些 API 只支持 GET 方法。由于不支持 OPTIONS,所有这些请求都会变成 4xx。
观察:这些请求即将到来
- 来自不同的客户端 IP
- 有空白的referer
- 使用有效的用户代理。我随机检查,请求来自移动浏览器。
我该如何处理这些请求?如何确保这些请求有效?我应该与 GET 一起启用 OPTIONS 吗?
请注意,某些页面具有 AMP 版本。这可能有关系吗?
我们的一些 API(REST)使用 HTTP 方法 OPTIONS 获得大量请求。虽然这些 API 只支持 GET 方法。由于不支持 OPTIONS,所有这些请求都会变成 4xx。
观察:这些请求即将到来
我该如何处理这些请求?如何确保这些请求有效?我应该与 GET 一起启用 OPTIONS 吗?
请注意,某些页面具有 AMP 版本。这可能有关系吗?
只是一个猜测:
许多前端(如 Angular 等框架)发送所谓的“预检请求”。
CORS 预检请求是检查是否理解 CORS 协议的 CORS 请求。
这是一个 OPTIONS 请求,使用三个 HTTP 请求标头:Access-Control-Request-Method、Access-Control-Request-Headers 和 Origin 标头。
需要时,浏览器会自动发出预检请求。在正常情况下,前端开发人员不需要自己制作此类请求。
https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
因此,如果您的 API 有不同的前端使用它是合法的,我会说您应该接受这些标头。