【问题标题】:What is the difference between making HttpRequest and Forwarding HttpRequest?制作 HttpRequest 和转发 HttpRequest 有什么区别?
【发布时间】:2019-08-05 23:47:00
【问题描述】:

假设我的客户端(浏览器)请求我的 java 服务(服务 A)。

http://localhost:8080/getDataFromB

根据请求,我需要从我的服务 A 向服务 B 或服务 C 发出另一个 HttpRequest 以获取数据。

getDataFromB: http://serverb.com/getDataFromB

getDataFromC: http://serverc.com/getDataFromC

我尝试根据请求向服务 B 和服务 C 发出 HttpRequest。但我应该这样做吗?或者我应该将请求转发给服务 B 还是服务 C ?如果是这样,我会在我这边保存一些 TCP 连接请求。

发出 HttpRequest 与转发请求有什么区别

【问题讨论】:

    标签: java spring http httprequest netflix-zuul


    【解决方案1】:

    如果您不希望您的客户知道您实际上是在提供来自 B 或 C 的响应,则应将请求转发给 B 或 C。

    如果您希望您的客户端知道您的服务器不会直接处理 A,而是会处理 B 或 C - 所以也许将来客户端可以直接请求 B 或 C 而不是请求 A - 那么您应该向客户端发送重定向。

    您可以改为按照您的建议进行操作 - 您的服务器处理传入请求,然后向 B 或 C 发出单独的 HTTP 请求 - 但这只会增加您的服务器与原始客户端通信的方式的复杂性。如果您的服务器逻辑以某种方式“适合”这种方法,我会考虑退后一步并重新考虑您的服务器逻辑以直接处理请求,或者通过重定向或转发来处理它。

    除非您的服务器由于过多的 TCP 连接而无法处理新的入站请求,否则我不会担心对此进行优化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-10
      • 2013-10-01
      • 2012-01-02
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多