OPTIONS请求使应用程序速度降低2倍?

问题描述 投票:7回答:1

我有一个使用API​​的非常密集的单页应用程序。假设应用程序位于application.com。现在,如果我将API放在api.application.com中,它将启用CORS,因此所有浏览器都将在实际请求之前执行OPTIONS请求。

这会使我的应用程序速度降低2倍吗?

api cors single-page-application
1个回答
9
投票

它可能不会使整个应用程序变慢2倍。有时您可能会发出2个http请求。但是您的应用程序可能不仅仅是HTTP请求,因此您必须衡量整个应用程序的性能。

浏览器发出预检的条件是:

  • HTTP方法不是简单方法(GETHEADPOST)或
  • [除AcceptAccept-LanguageContent-LanguageContent-Type之外还有HTTP标头(但仅当Content-Type值不是application/x-www-form-urlencodedmultipart/form-datatext/plain时]

如果您的HTTP请求不符合这些条件,它将不会发出预检。预检是一个很小的没有主体的OPTIONS请求,因此它应该很快(取决于您的连接速度)。发出预检后,其结果会缓存一段时间(缓存时间因浏览器而异。Chrome/ Safari会执行5分钟,FF执行24小时)。

如果您对减少预检的技巧感兴趣,请参见以下答案:How to apply CORS preflight cache to an entire domain

© www.soinside.com 2019 - 2024. All rights reserved.