有人可以解释应用服务器/ Web服务器/ Web服务之间的区别吗?

我知道,使用Web服务器,HTML页面从服务器传输到客户端,与Web服务,XML文件发送,但仍…我不明白他们; 甚至没有他们之间的差异。

有人能解释这个条款尽可能简单吗?

平台:java,python,php

谢谢

Web服务器是使用HTTP(S)协议为您提供内容的东西; 它以“给我http://some.site.com/some/page?some=parameter ”的forms接收请求,并发回一个可以是HTML页面或其他任何可以通过HTTP(S)传输的答案, ; 也就是说,几乎任何东西 (详情请参阅MIME)。

多数情况下,网页不会只是静态的文本文件,而是由服务器使用程序员开发的一些服务器端代码即时生成的; 当一个网站(或其一部分)变得足够复杂时,通常将其定义为“Web应用程序”; 这个词非常含糊,实际上是指“一个具有dynamic生成内容的网站”。 有时,Web服务器和应用程序服务器实际上是相同的程序(请参阅IIS或带有模块的Apache); 其他时候,应用程序服务器是一个完整的不同的程序(甚至可能运行在不同的机器上),它与Web服务器通信,为Web服务器提供dynamic内容,而Web服务器pipe理HTTP请求和静态内容; 这是Java网站的标准做法。

Web服务是一种Web应用程序,它遵循为使用XML交换请求和响应而定义的一些标准; 这里的想法是,Web服务不会被人使用,但会被其他程序(可能是Web应用程序本身)调用,所以它不需要做花哨的graphics或其他任何东西,而只是提供要求的信息以标准化的方式。

这些术语没有确切的定义,但粗略地说:

  • Web服务器是一种向浏览器提供内容(HTML,图像等)的程序,即供人阅读
  • Web服务是可以通过HTTP(与Web服务器使用相同的协议)访问的服务,通常是由程序使用的API

所以区别在于“观众”:一个networking服务器提供人们在浏览器中阅读的页面; 一个Web服务提供数据给一些程序(它本身可能是一个Web服务器;-))。

为了使混淆完成,大多数Web服务器(程序)可以用来实现Web服务(因为技术基础是相同的)。 所以这不是真正的技术区别,而是服务器的目的之一。

一个简单的方法是运行几个scheme:

Web服务器具有要提供给客户端的文件。 (客户端可以是浏览器,应用程序或其他Web服务器或其他服务器)

Web服务是Web服务器通过它理解来自客户端的请求并反过来对其作出反应的机制。 反应可以提供一个查询的结果,做一个内部命令和其他类似的项目。

一般来说,当你在web 2.0中听到“webservices”的时候,就像是一个API,你正在谈论的是一种在Web服务器上等待命令或查询的编程语言。

以Twitter为例。 Twitter本身由一个networking服务器提供服务,但是当客户点击“追随者”时,浏览器向networking服务器发送一个networking服务命令,询问追随者是谁。

Web服务器按照定义提供文件,但它必须运行某种types的Web服务才能与客户端交互。 另外,在系统pipe理员圈子中,webservice可以是任何可以暴露的服务,因为它涉及到web服务器。 例如,如果您有一个拥有4个面向客户的应用程序(mysql,tomcat,apache,netbeans)的网站,那么即使它们在技术上是Web服务器和数据库服务,也可以宽泛地将其称为“webservices”,但这不是您正在寻找的因为我不认为。 坚持与服务有关的API。

此外,这应该扩大 – http://en.wikipedia.org/wiki/Web_server和http://en.wikipedia.org/wiki/Web_service

HTH