【问题标题】:HTTP client acting as a pseudo-server充当伪服务器的 HTTP 客户端
【发布时间】:2011-09-04 06:51:42
【问题描述】:

假设我要部署一个可能放置在 NAT/防火墙后面的服务器应用程序,并且我不想要求用户调整他们的 NAT 端口映射。换句话说,与服务器的连接是不可能的,但我的应用程序本质上是一个服务器应用程序,即它按 URI 发送回对象。

现在,我正在考虑定期从服务器发起连接,以查看需要响应的请求。我将通过端口 80 使用 HTTP,因为它几乎可以在任何地方通过 NAT/防火墙工作。

问题是,在实现可以在应用程序级别充当服务器的客户端(特别是使用 HTTP)时,是否有任何标准注意事项和常见做法?任何特殊的 HTTP 标头?设计模式?

例如我正在考虑以下方案:

  • 客户端(这是我的逻辑服务器)向服务器发送一个虚拟 HTTP 请求
  • 服务器返回非标准头X-Request-URI:X-Host:X-If-Modified-Since:等,换句话说,请求头包裹在X-xxx中,因为在这种情况下它们不是标准的;还请求保持连接活动
  • 客户端以发送请求对象的 POST 请求进行响应;再次,使用包装的标题(例如X-Status:等)

除非有更“标准”的方式来做这样的事情,你认为我的方法是合理的吗?

编辑:发生了一个有趣的讨论on reddit here

【问题讨论】:

    标签: http client-server protocols http-protocols


    【解决方案1】:

    我做过类似的事情。这是很常见的。客户端启动与服务器的连接并保持连接处于活动状态。如果会话关闭,客户端将重新启动。当会话启动时,服务器可以将任何内容推送到客户端,因为它是客户端启动的。

    【讨论】:

    • 那么标题呢,你用什么来向后发送请求并响应它们?
    • 只要客户端/服务器都同意,它可以完全为您定制。
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多