Web services 为什么公共web服务客户端使用代理

Web services 为什么公共web服务客户端使用代理,web-services,rest,service,proxy,Web Services,Rest,Service,Proxy,我注意到,大多数充当web服务客户端的架构都使用代理与rest服务器通信?虽然可以在没有代理服务器的情况下访问rest服务,但我读过的一个示例是,它使用代理服务器与其rest服务器通信使用代理访问rest服务有什么好处吗?对于小型本地应用程序web服务,通常不需要使用代理。这主要取决于您的服务器负载(客户端数量、请求频率)以及访问您的服务的网络区域:后台服务器到服务器、前台局域网、广域网或整个互联网) REST Web服务大多是在线资源,通过URL以独特的方式标识,通常以经典的HTTP方式提供服

我注意到,大多数充当web服务客户端的架构都使用代理与rest服务器通信?虽然可以在没有代理服务器的情况下访问rest服务,但我读过的一个示例是,它使用代理服务器与其rest服务器通信使用代理访问rest服务有什么好处吗?

对于小型本地应用程序web服务,通常不需要使用代理。这主要取决于您的服务器负载(客户端数量、请求频率)以及访问您的服务的网络区域:后台服务器到服务器、前台局域网、广域网或整个互联网)

REST Web服务大多是在线资源,通过URL以独特的方式标识,通常以经典的HTTP方式提供服务。从客户端看,他不知道自己获取的数据是静态的、动态的还是缓存的。他只是简单地获取数据,就好像它是静态的一样

在大规模应用程序中,随着客户端、资源和web服务请求的增加,您需要技术组件来处理诸如用户平衡、web服务使用情况跟踪等问题。您还需要向客户提供最佳性能。这可以通过代理解决方案有效地实现

不使用代理的优点:

  • 简朴
使用基于代理的解决方案的优点:

  • 从单个集中入口点重写URL(而不是在每个服务器/app/ws配置上进行异构设置)
  • 跟踪Web服务的使用情况(全球)
  • 增强性能功能(缓存、平衡到专用服务器)
  • 管理API版本(轻松地将gobaly/myAPI从/myAPI-V1切换到/myAPI-V2,然后用手指敲鼻子)
  • 动态修改某些API调用(版本之间的兼容性、进行初步输入数据验证或向调用添加技术信息)
  • 全局管理Web服务安全(控制IP、每个用户的配额等)
希望这能回答你的问题

编辑(回答评论)

代理可以充当缓存。对于常见问题资源(REST服务),它可以为多个用户提供相同的响应。即使此资源上有100个请求,您的服务也只会被调用一次

但这取决于服务的实际使用方式,因此您需要跟踪请求,以了解缓存在您的情况下是否有用

  • 你有多少用户
  • 有多少个web服务
  • 提供什么样的数据/资源
  • 你的服务(个人)有多快
  • 网络性能如何?(局域网?广域网?互联网?移动?)
  • 有多少服务器和应用程序为您的用户服务
  • 您是否遇到任何网络负载问题
代理不能“加速”您现有的服务,但它可以改进您为客户提供资源的方式


如果不知道是否需要代理,请不要使用代理。您必须知道您的实际系统架构是什么,以及弱点和瓶颈是什么

您提到使用代理与rest服务通信,这将为我的用户提供出色的性能,为什么?如果我想隐藏rest服务的原始资源,使用代理是否被认为是一种好方法?因此,任何人都无法轻松访问web服务。或者不知道给定请求的真实URI?当然知道。这是反向代理的常见用法。例如,如果您使用的是ApacheWeb服务器,那么您可以使用mod_代理模块来实现这一点。