2016-11-16 24 views
0

我們有一個GET Api做一些操作並返回一個長JSON(假設總響應大小爲1 MB)。是否靜態POST Api自動通過瀏覽器重試Get Api?

當客戶端請求GET API時,此API需要大約五分鐘才能完成操作。但瀏覽器在兩分鐘後重試GET API。

我的問題是

  1. 如果我改變獲取API的發佈,所以瀏覽器不會重試請求權?
  2. post Api的超時行爲是否與GET Api相同?
  3. 我們在POST API響應中發送的響應大小是否有限制?

注:我知道郵政API不正確的,我們周圍暫時

感謝事先做這項工作

+1

我建議你在性能和處理巨大數據方面改進應用程序設計。我不確定您是否可以覆蓋瀏覽器超時,但即使可以,我也不會建議將其設置爲超過120秒。 – user2004685

回答

2
  1. 我不知道那是做了重試瀏覽器。它可能是客戶端庫或客戶端和服務器之間執行重試的代理? GET是爲了檢索信息(RFC 2616)。它必須是安全的和冪等的(RFC 2616)。所以,第二個GET可以預計不會造成損害。這不適用於POST。因此,您可以預期在使用POST時,任何HTTP代理都不會發生重試。
  2. 你必須找出重試來自哪裏才能得到答案。
  3. 我不這麼認爲,從來沒有聽說過一個。請求可能是另一回事。

您必須意識到,如此長時間運行的請求可能會遇到更多問題。例如,企業防火牆可能會在停用一段時間後關閉TCP連接。異步處理可能值得考慮。我的意思是將結果保存在服務器上,讓客戶端在稍後的請求中檢索它。這也避免了惱人的用戶。一次又一次地點擊,因爲它需要這麼長時間(人類重試)可能會降低您的服務器。

順便說一句,在服務器上配置壓縮通常會在JSON的情況下減少消息的有效負載。