经过几十年的发展,已经出现几个成熟的处理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 中传入的参数、动态执行逻辑代码、在数据库或缓存中读写数据等一系列操作,才能最终生成调用结果。

Web服务器 --> 基于HTTP的网站开发的更多相关文章

  1. linux web服务器及LAMP动态网站平台搭建

    (vim补:)vim另存为:x,x w 目标文件路径vim批量删除x:x,x d Web服务:基于B/S架构的web通信服务端:支持HTTP协议的网页提供程序客户端:按标记规范显示网页的浏览器程序客户 ...

  2. 手机版WEB开发经验分享,手机版网站开发注意事项,网站自适应,手机版网站自适应,移动安卓APP自适应

    转自 http://my.oschina.net/cart/blog/282477 做前端开发不短了,用过jQuery Mobile jqMobi 也纯手工写过.. 最后总结如下: jQuery Mo ...

  3. Linux下嵌入式Web服务器BOA和CGI编程开发

    **目录**一.环境搭建二.相关配置(部分)三.调试运行四.测试源码参考五.常见错误六.扩展(CCGI,SQLite) # 一.环境搭建操作系统:Ubuntu12.04 LTSboa下载地址(但是我找 ...

  4. 基于django的网站开发一基础项目配置

    首先确认电脑上已经安装好了python和django,我的python版本是2.7.13,django版本是1.10.2.数据库我使用的是mysql,版本是5.7.17,我是windows7系统,用的 ...

  5. 使用Python开发轻量级的Web框架以及基于WSGI的服务器来实现一个网站页面

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目说明 二丶数据准备 三丶使用网络TCP开发一个基于WSGI协议的Web服务器 四丶使用python3开发一个轻量级的 ...

  6. Visual Studio中用于ASP.NET Web项目的Web服务器

    当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们. 利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Expr ...

  7. Web服务器与Web系统发布

    在讨论Web系统发布之前,我们先来辨析两个概念:服务器.Web服务器. 通常,我们说的服务器,是一台提供服务的计算机,是硬件概念.这台主机有其IP地址,有服务端口,我们要访问时,就是通过IP地址唯一地 ...

  8. java web服务器tomcat介绍【转载】

    机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...

  9. WEB服务器如何选择 Apache or Nginx?

    Web服务器是直接影响网站性能的关键因素,也是每个站长选择网站运营环境时必然考虑的问题.目前Web服务器市场产品众多,最为主流和代表性的当属Apache.Nginx以及微软的IIS.本文目的是通过Ap ...

随机推荐

  1. Vue.js中,如何自己维护路由跳转记录?

    在Vue的项目中,如果我们想要做返回.回退操作时,一般会调用router.go(n)这个api,但是实际操作中,使用这个api有风险,就是会让用户跳出当前应用,因为它记录的是浏览器的访问记录,而不是你 ...

  2. ue4 官网IK流程记录

    基本流程 角色蓝图构造 角色蓝图 角色蓝图中新建的函数IK Foot Trace AnimGraph事件 这里注意下Make Vector时把z方向的偏移量设置到了X上 猜测原因是效应器的x方向跟世界 ...

  3. mysql 快速导入大SQL文件

    进入mysql mysql -u root -p 创建数据库 CREATE DATABASE 数据库名; 设置参数 set sql_log_bin=OFF;//关闭日志 ;//关闭autocommit ...

  4. 「BZOJ2127」happiness(最小割)

    题目描述 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文 ...

  5. IOS UILabel的一些使用小技巧

    1. 你在iOS6的需要NSLineBreakByWordWrapping 为了您的代码试试这个: NSString *string = @"bla"; CGSize s = [s ...

  6. 深入V8引擎-Time模块介绍

    积跬步,行千里,先从最简单的开始写. 这一篇介绍V8中的时间模块,与libuv粗糙的update_loop_time方法不同,V8有一套独立完整的类负责管理时间. 该类位于src/base/platf ...

  7. Java进程占用内存过高,排查解决方法

    最近收到邮件报警,说内存使作率达到84%.如下图: 解决方法: A:可能是代码原因导致的问题: 1.使用命令:top 查看当前进程的状态 2.从上图可以看到PID:916的java进程占用内存较大.定 ...

  8. OSU!

    题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline ll read(){ ,f= ...

  9. python进阶03 继承

    python进阶03 继承 一.继承 课堂练习:假设你正在参与一个魔幻类角色游戏的开发,公司需要腻味这个游戏设计两个角色的类: a.剑士 属性:1.角色名:2.角色等级:3.生命值:4.攻击力 行为: ...

  10. Codeforces 161A(贪心)

    要点 我在想贪心是对的那要二分图何用,自己的想法是:二分图最开始并不知道怎么匹配最好所以就按输入顺序连了,之后慢慢修改:而这道匹配也成对匹配但从一开始你就可以知道选哪个最划算,就是贪心地选最小的.不必 ...