我有一个webservice端点,我很清楚如何正确实现它。 它似乎是一个参数化的exe文件,它返回一个XML Reply。 没有文档。
我习惯了肥皂,wcf和休息,但这对我来说完全不为人知,是否有人提供指导或最佳案例如何实施此类服务? 我可以通过HTTP GET使用它,但还有一些问题留给我:
我知道这些问题非常广泛......但我在interwebz中找不到任何关于它的内容。
示例网址: http://very.exhausting.company/Version/SuperStrange.exe?parameter=String
答案 0 :(得分:4)
网络服务器
您所谓的Web服务端点只不过是在某个主机上侦听的Web服务器(通常为0.0.0.0)以及物理机或虚拟机上的某个端口,并对发送到该主机的端口的HTTP请求进行响应和Web服务器关心处理的URI。
任何Web服务器本身都是应用程序或应用程序的静态或动态组件,如以下示例所示:
java -jar
开头的胖罐,它部署了一个vert.x
顶点,其中vert.x
HttpServer
监听某个端口只不过是一个Web服务器; < / LI>
node.js
解析并执行基于express
模块的JavaScript代码很可能会在某个端口上部署Web服务器; 以上所有情况都有不同的部署机制,但它们部署的内容基本相同:一个软件在某个端口上侦听HTTP请求,根据请求执行某些逻辑并将HTTP响应返回给调用者。 / p>
您的Windows exe文件很可能是提供Web服务器的静态链接应用程序。
<强>协议强>
因此,我们知道您有一个Web服务器,因为它对HTTP GET作出反应。它与REST,SOAP等有何关系?实际上,REST,SOAP等是更高级别的协议。 TCP是低级别的,HTTP基于此,您的服务器支持它。 REST,SOAP以及您提到的所有其他内容都是基于HTTP的更高级协议。所有你知道的是你的应用程序(Web服务器)支持HTTP,但你不知道它实现了哪种更高级别的数据交换协议。它肯定实现了一些,至少是一个自定义的,它的作者在客户端和这个应用程序之间交换数据。
您可以尝试对其进行反向工程,但目前尚不清楚如何找到所有可能的端点,参数,有效负载结构,已接受的标头等。基本上,您有一个Web服务器发布某种API,但是没有通用的方法来告诉API是什么。
安全强>
您周围的世界无需了解API的发布方式。您可以将上述4个Web服务器实现中的任何一个置于完全相同的防火墙或具有SSL终止的反向代理,仅通过SSL暴露一个主机和端口。因此,对于世界而言,无论是将其作为exe还是作为战争部署到JBoss中,安全性都没有区别。这并不是说你的exe文件是安全的:取决于它的实现方式,它可能允许各种攻击,但同样,对于任何机制都是如此。