假设我的客户端(浏览器)请求我的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请求与转发请求有什么不同
发布于 2019-08-06 08:36:56
如果您不希望您的客户端知道您实际上在为来自B或C的响应提供服务,则应该将请求转发到B或C。
如果你想让你的客户端知道你的服务器不会直接处理A,而是做B或C-所以也许将来客户端可以直接请求B或C,而不是请求A- then,你应该向客户端发送一个重定向。
你可以按照你的建议去做-你的服务器处理传入的请求,然后向B或C发出单独的HTTP请求-但这只会增加你的服务器如何与原始客户端通信的复杂性。如果您的服务器逻辑以某种方式“适合”这种方法,我会考虑后退一步,重新思考您的服务器逻辑是直接处理请求,还是使用重定向或转发来处理它。
除非您的服务器由于过多的TCP连接而无法处理新的入站请求,否则我不会担心对此进行优化。
https://stackoverflow.com/questions/57367262
复制相似问题