2016-06-14 83 views
0

我想知道您對此概念的看法/評論。如果有替代品可用?如果這是可行的/有益的?想法:使用單個http請求生成多個http響應

根據我的理解,對於每個http請求,服務器執行一些操作併發送一個http響應。

現在考慮一下我們希望對服務器上運行的進程擁有更多控制權的任何場景。

情況1:http請求發送 - >服務器啓動處理(正在處理的長時間任務) - >用戶關閉瀏覽器。 這裏進程仍然執行,消耗服務器和http響應將在客戶端被忽略。

這裏資源浪費了。

情況2:HTTP請求發送 - >服務器開始處理(在處理長期的任務)

在這裏,客戶不知道在服務器上運行的進程的狀態。 客戶端必須等到它收到http響應。

我的想法:在最初的http請求和最終的http響應之間,添加一個功能來發送多箇中間http響應,它將攜帶有關服務器端運行進程的信息。

解情況1:http請求發送 - >服務器啓動處理(在過程漫長任務) - > [返回進程id作爲中間體http響應] - >用戶關閉瀏覽器 - > [發送>服務器啓動處理(在過程漫長任務) - - >與所述過程在運行的細節[返回HTTP響應HTTP請求發送:http請求使用所述進程id]

解情況2關閉服務器進程服務器間隔] - > [如果需要,執行任何操作]

請評論:)並糾正我是否缺少任何東西。

+0

這通常是通過返回202接受與一個'位置'標題告訴你去哪裏尋找結果。如果您想要進行更新,請使用WebSockets。定義你自己的HTTP可能不是一個有效的路線,而且SO無法真正幫助你完成這個過程。我們不負責協議。 – jonrsharpe

+0

這聽起來乾淨簡單。去執行它。 –

+0

@RolandIllig當我們不明白任務的重要性時,我認爲把OP放在一個「乾乾淨淨」的事情上並不是特別有建設性。 – jonrsharpe

回答