1. Web开发简介

互联网发展到现在,最早是由几个单机相互联结在一起通信发展起来的,几十年历史中,互联网通信模式和网站架构 一直在变换,其中大致走过了三个阶段, 互联网按照内容和形式来讲,大致分为Web1.0 和 Web2.0, 下面我们分别 进行阐述。

1.1. 网站架构发展的三个阶段

互联网访问架构大致分为三个阶段:

  • 哑终端登录:
    • 是计算机系统的一种输入、输出设备,一般由键盘、显示器和联接主机 的串行通信接口电缆组成,是计算机系统发展早期在大中小型计 算机上的一个概念
    • 最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件
  • CS架构:
    • 随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端
    • 运行在PC机上的乘坐客户端(Client), 服务器上的软件成为Server
    • 这种Client/Server模式简称CS架构
  • BS架构:
    • CS架构不适合Web
    • 最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App, 即软件分发问题
    • 因此,浏览器(Browser)/服务器(Server)_模式开始流行,简称BS架构
    • 即以浏览器替代运行在PC机上的客户端软件
    • BS架构下客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。
    • Web页面也具有极强的交互性。由于Web页面是用HTML编写的,而HTML具备超强的表现力, 并且服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此BS架构迅速流行起来

1.2. B/S vs C/S结构

B/S结构是我们现在常用的网站架构, 相比较CS等架构,具有如下优点:

  • 不需要通知客户端安装某个软件, 只需要客户端有浏览器
  • 不需要通知客户端进行软件升级, 只需要升级服务器
  • 可以轻松的实现跨平台

具体结构如下图所示: _images/csbs.png

1.3. Web1.0

Web 1.0时代开始于1994年,其主要特征是大量使用静态的 HTML 网页来发布信息, 并开始使用浏览器来获取信息,这个时候主要是单向的信息传递。

通过Web万维网,互联网上的资源,可以在一个网页里比较直观地表示出来,而且资源之间, 在网页上可以任意链接。

Web1.0的本质是聚合、联合、搜索,其聚合的对象是巨量、无序的网络信息。

Web1.0 只解决了人对信息搜索、聚合的需求,而没有解决人与人之间沟通、互动和参与的需求。

就是个静态网站,只能看不能写,没有交互。

_images/web1.0.png

1.4. Web2.0

Web 2.0 始于 2004 年 3 月 O’Reilly Media 公司和 MediaLive 国际公司的一次头脑风暴会议。

Tim O’Reilly 在发表的“What Is Web2.0”一文中概括了Web2.0的概念,并给出了描述 Web2.0 的框图—Web2.0 MemeMap,该文成为 Web2.0 研究的经典文章。

此后关于 Web2.0 的相关研究与应用迅速发展,Web2.0 的理念与相关技术日益成熟和发展, 推动了Internet的变革与应用的创新。

在Web2.0中,软件被当成一种服务,Internet从一系列网站演化成一个成熟的为最终用户提供网络应用的服务平台, 强调用户的参与、在线的网络协作、数据储存的网络化、社会关系网络、RSS应用以及文件的共享等成为了Web2.0 发展的主要支撑和表现。

Web2.0模式大大激发了创造和创新的积极性,使Internet重新变得生机勃勃。

Web 2.0的典型应用包括Blog、Wiki、RSS、Tag、SNS、P2P、IM等就是动态网站,

最常见的Web2.0的产品就是我们现在使用的商城,论坛,微博等。

_images/web2.0.png

1.5. Web应用结构及工作原理

Web网站的应用结构和工作原理大致如下图所示,用户和后台之间的关系是:

用户-浏览器-HTTP服务器程序-Python后台

_images/webstru.png

1.6. Web框架

1.6.1. 什么是框架

  • 软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品
  • 框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系
  • 通常情况下我们依据框架来实现更为复杂的业务程序开发
  • 一个字,框架就是程序的骨架

1.6.2. 框架的优缺点

  • 可重用
  • 成熟,稳健
  • 可扩展性良好
  • 选对框架很重要

1.6.3. Python中常见的框架

  • Django:被官方称之为完美主义者的Web框架, 大而全
  • webpy: 极致精简,基本就一个文件
  • Tornado: 特点就是支持异步
  • Flask和Bottle: 简洁