![有人能解释一下应用服务器/网络服务器/网络服务之间的区别吗?](https://linux22.com/image/515365/%E6%9C%89%E4%BA%BA%E8%83%BD%E8%A7%A3%E9%87%8A%E4%B8%80%E4%B8%8B%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%2F%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E5%99%A8%2F%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%E5%90%97%EF%BC%9F.png)
我知道,使用 Web 服务器,html 页面会从服务器传输到客户端;使用 Web 服务,会发送 xml 文件,但是...我还是不明白它们之间的区别。
有人能尽可能简单地解释一下这些术语吗?
平台:java、python、php
谢谢
答案1
Web 服务器是使用 HTTP(S) 协议为您提供内容的服务器;它接收“给我http://some.site.com/some/page?some=parameter“并返回一个答案,该答案可以是 HTML 页面或任何其他可以通过 HTTP(S) 传输的内容;也就是说,任何事物(有关详细信息,请参阅 MIME)。
网页通常不仅仅是静态文本文件,而是由服务器使用程序员开发的一些服务器端代码即时生成的;当一个网站(或网站的一部分)变得足够复杂时,通常将其定义为“Web 应用程序”;这个术语非常模糊,实际上是指“具有动态生成内容的网站”。有时,Web 服务器和应用程序服务器实际上是同一个程序(参见 IIS 或带有模块的 Apache);其他时候,应用程序服务器是一个完全不同的程序(甚至可能在不同的机器上运行),它与 Web 服务器通信以向其提供动态内容,而 Web 服务器则管理 HTTP 请求和静态内容;这是 Java 网站的标准做法。
Web 服务是一种 Web 应用程序,它遵循一些使用 XML 交换请求和响应而定义的标准;这里的想法是,Web 服务不会被人类使用,而是由其他程序(可能是 Web 应用程序本身)调用,因此它不需要做花哨的图形或其他任何东西,而只是以标准化的方式提供所请求的信息。
答案2
这些术语没有真正精确的定义,但粗略地说:
- A网络服务器是一个向浏览器提供内容(HTML、图像等)的程序,即供人类阅读
- A网络服务是一种可以通过 HTTP(与 Web 服务器使用的协议相同)访问的服务,通常是程序使用的 API
因此,区别在于“受众”:Web 服务器提供页面供人们在浏览器中阅读;Web 服务向某些程序提供数据(该程序本身可能就是一个 Web 服务器 ;-))。
更令人困惑的是,大多数 Web 服务器(程序)都可用于实现 Web 服务(因为技术基础相同)。因此,这实际上不是一个技术区别,而是一个服务器用途的区别。
答案3
一个简单的方法是运行以下几个场景:
网络服务器拥有您想要提供给客户端的文件。(客户端可以是浏览器,应用程序或另一个网络服务器或另一个服务器)
Web 服务是一种机制,通过该机制,Web 服务器可以理解来自客户端的请求并做出响应。响应可以是提供查询结果、执行内部命令和其他类似操作。
一般来说,当您听到 Web 2.0 中的“Web 服务”时,就像 API 一样,您谈论的是一种在 Web 服务器上监听并等待命令或查询的编程语言。
以 Twitter 为例。Twitter 本身由网络服务器提供服务,但当客户端点击“关注者”时,浏览器会向网络服务器发送网络服务命令,询问关注者是谁。
根据定义,Web 服务器提供文件服务,但它必须运行某种类型的 Web 服务才能与客户端交互。此外,在系统管理员圈子中,Web 服务可以是任何与 Web 服务器相关的可公开的服务。例如,如果您的网站有 4 个面向客户的应用程序(mysql、tomcat、apache、netbeans),您可以随意地将它们称为“Web 服务”,即使它们在技术上是 Web 服务器和数据库服务,但我认为这不是您想要的。坚持使用与 API 相关的 Web 服务。
这也应该会扩展得很好 -http://en.wikipedia.org/wiki/Web_server和http://en.wikipedia.org/wiki/Web_service
高血压