簡體   English   中英

http spec:等待創建“文件”

[英]http spec: Wait for creation of “file”

是否有與http相關的規范,可以幫助我實現“等待文件創建”?

這是應該實現的:

  1. 名為“接收器”的服務器連接到“中間”服務器,並等待直到在該服務器上創建文件
  2. 服務器“創建者”創建一個文件並將其發送到服務器“中間”
  3. 一旦整個文件在服務器“中間”可用,服務器“接收器”應立即開始下載。

我知道我可以使用websockets和自定義方法來實現這一點。

但是在以這種方式進行操作之前,我想知道是否有涉及該用例的與http相關的規范。

簡短答案

是的,HTTP規范本身( RFC7230 )已經涵蓋了您的用例,並且在RFC6202中還描述了一種稱為HTTP Long Polling的已知機制,其中服務器在返回響應之前會等待幾秒鍾。

長答案

HTTP是一種靈活的協議,以至於HTTP規范本身( RFC7230 )已經涵蓋了您的用例。 第1節 (重點是我的)中:

HTTP是信息系統的通用接口協議。 它旨在通過向客戶端提供與提供的資源類型無關的統一接口來隱藏服務實現方式的詳細信息 同樣,服務器不需要知道每個客戶端的用途:可以將HTTP請求視為孤立的請求,而不是與特定類型的客戶端或應用程序的預定順序相關聯。 結果是可以在許多不同的上下文中有效使用的協議,其實現可以隨時間獨立發展。

該規范允許服務器連接到其他服務器並等待某些內容(“隱藏服務實現方式的詳細信息”),並且某些內容可以是文件或其他任何內容(“與提供的資源類型無關”)。

您應注意,該規范並未定義服務器的內部工作方式。 它沒有定義服務器為提供響應所必須執行的操作,如第1節 (重點介紹)中所述:

這種靈活性的結果是,不能根據接口后面發生事情來定義協議。

在您的用例中,服務器“接收器”實際上是客戶端,因為它連接到服務器“中間”並希望接收文件。 服務器“中間”正在等待另一台服務器做某事的事實是無關緊要的,因為規范未定義接口后應該發生的事情。

但是,如果您正在尋找一種類似的機制,其中服務器還等待某些東西,那么一個示例就是RFC6202 (重點是我的)中描述的HTTP Long Polling:

HTTP長輪詢:服務器嘗試“保持打開狀態”( 不立即回復 )每個HTTP請求,僅在有要傳遞的事件時才響應。

在HTTP Long Polling中,在接收到客戶端的請求后,服務器不會立即答復(“未立即答復”)。 它只是等待事件發生。 服務器可以等待多長時間甚至都沒有定義。 該機制在HTTP工作方式的范圍內起作用,因此符合HTTP規范。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM