Web服务器 --> 基于HTTP的网站开发

  经过几十年的发展,已经出现几个成熟的处理HTTP的知名的Web服务器。这些服务器可以解析(handleHTTP,当Web服务器接收到一个HTTP请求时,会根据配置的内容返回一个静态HTML页面或者调用某些代码动态生成返回结果。Web服务器把动态响应dynamic response)产生的委托(delegate)给其他一些程序,例如 Python代码、JSPJavaServer Pages)脚本、ServletsASPActive Server Pages脚本等。无论它们的目的如何,这些服务器端(server-side)的程序通常会产生一个HTTP响应让浏览器浏览。

  由于目标操作系统、应用场景及商业目的的不同,当今主流的Web服务器各具特色,将它们的特性简单的概括如下:

// Apache : 是世界上用的最多的Web服务器,市场占有率达60%左右。由于其卓越的性能,Tomcat 或 JBoss 等很多其他Web服务器使用Apache为自己提供HTTP接口服务。
// Nignx : 是一款轻量级、高性能的 HTTP 和 反向代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
// IIS : 微软的 Web 服务器产品。由于 Windows的影响,IIS 是目前最流行的Web服务器产品之一,它的最大优势当然是对微软 ASP.net 及其周边产品的支持。
// Tomcat :  是一个开源服务器,是 Java Servlet 2.2 和 JavaServer Pages 1.1 技术的标准实现。
// JBoss : 是一个管理 EJB 的容器和服务器,支持 EJB 1.1、EJB 2.0 和 EJB 3 的规范。但JBoss 的核心服务不包括支持 Servlet、JSP 的Web容器,一般与 Tomcat 或 Jetty 绑定使用。

  当前的主流 Web 服务器都实现了主流语言的可调用接口规范,这些标准如下:

# CGI :Common Gateway Interface,CGI 规范允许 Web 服务器执行外部程序,并将它们的输出发送给 Web 浏览器,CGI 将Web的一组简单的静态超媒体文档变成一个完整的交互式媒体。
# ISAPI :Internet Server Application Program Interface, 是微软提供的一套面向Web服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,例如提供了过滤器应用程序的接口。
# WSGI : Web Server Gateway Interface, 是一套专门为 Python 语言制定的网络服务器标准接口。

  从客户端浏览器的角度看,他的每次访问是通过 HTTP 访问 Web 服务器从而获得某种服务(下载文件、查看页面、订购商品等)的,但实际上Web服务器仅起到桥梁的作用,即将浏览器的HTTP请求解码,转换成服务器端程序能够识别的接口调用方式,然后将服务器端程序生成的返回封装HTTP Response,并返回给浏览器。服务器端程序、Web服务器、客户端之间的关系如下图所示:

  

  最简单的服务器端程序可以是直接读取某文件或返回固定的网页内容;稍复杂一些的服务器端程序需要处理客户端通过 HTTPURLHTML 中传入的参数、动态执行逻辑代码、在数据库或缓存中读写数据等一系列操作,才能最终生成调用结果。

原文地址:https://www.cnblogs.com/51try-again/p/11055479.html