繁体   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