第1章
动态网站的原理和运行机制
随着“互联网+”时代的到来,各行各业制作网站的热情高涨。目前的网站一般都是动态网站,简单地说,动态网站是一种使用HTTP(HypertextTransfer Protocol,超文本传输协议)作为通信协议,通过网络让浏览器与服务器进行通信的计算机程序。开发动态网站可分为两个方面:一是网站的界面设计,主要是用浏览器能理解的代码及图片设计网页的界面;二是网站的程序设计,用来实现网站的新闻管理、与用户进行交互等各种功能。
1.1 动态网站的原理
1.1.1 动态网站的起源
动态网站是一种基于B/S结构的网络程序。那么什么是B/S结构呢?这就先要从网络软件的应用模式说起。
早期的应用程序都是运行在单机上的,称为桌面应用程序。后来由于网络的普及,出现了运行在网络上的网络应用程序(网络软件)。网络应用程序有C/S和B/S两种体系结构。
1. C/S体系结构
C/S是Client/Server的缩写,即客户机/服务器结构,这种结构的软件包括客户端程序和服务器端程序两部分。就像大家常用的QQ等网络软件,需要下载并安装专用的客户端软件(见图1-1),并且服务器端也需要特定的软件支持才能运行。
图1-1 C/S结构的QQ客户端界面
C/S结构最大的缺点是不易于部署,因为每台客户端计算机都要安装客户端软件。而且,如果客户端软件需要升级,则必须为每台客户端单独升级。另外,客户端软件通常对客户机的操作系统也有要求,如有些客户端软件只能运行在Windows平台下。
2. B/S体系结构
B/S是Browser/Server的缩写,即浏览器/服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,客户端软件由浏览器来代替(见图1-2),一部分事务逻辑在浏览器端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。目前流行的是三层B/S结构,即表现层、事务逻辑层和数据处理层。
图1-2 B/S结构的浏览器端界面
B/S结构很好地解决了C/S结构的上述缺点。因为每台客户端计算机都自带浏览器,就不需要额外安装客户端软件了,也就不存在客户端软件升级的问题了。另外,由于任何操作系统一般都带有浏览器,因此B/S结构对客户端的操作系统也没有要求了。
但是B/S结构与C/S结构相比,也有其自身的缺点,首先因为B/S结构的客户端软件界面就是网页,因此操作界面不可能做得很复杂、漂亮。例如,很难实现树形菜单、选项卡式面板或鼠标右键快捷菜单等(或者虽然能够模拟实现,但是响应速度比C/S中的客户端软件要慢很多)。其次,B/S结构下的每次操作一般都要刷新网页,响应速度明显不如C/S结构。再次,在网页操作界面中,操作大多以鼠标方式为主,无法定义快捷键,也就无法满足快速操作的需求。
提示:C/S结构和B/S结构的网络软件,其程序都是分布在客户机和服务器上,因此它们统称为分布式系统(Distributed System)。
1.1.2 动态网站的组成与运行
1. 动态网站的组成
动态网站通常由HTML文件、服务器端脚本文件和一些资源文件组成。
(1)HTML文件提供静态的网页内容。
(2)脚本文件提供程序,实现客户端与服务器之间的交互,以及访问数据库或文件等。
(3)资源文件提供网站中的图片、视频等资源,包括图片文件、多媒体文件和配置文件等。
2. 运行动态网站程序的要素
要运行动态网站程序,需要Web服务器、浏览器和HTTP通信协议等要素。
(1)Web服务器
运行动态网站需要一个载体,称为Web服务器。一个Web服务器可以部署多个动态网站(或Web应用程序)。
通常Web服务器有两层含义,一方面它代表运行Web应用程序的计算机硬件设备,一台计算机只要安装了操作系统和Web服务器软件,就可算作一台Web服务器。另一方面Web服务器专指一种软件——Web服务器软件,该软件的功能是响应用户通过浏览器提交的HTTP请求,如果用户请求的是PHP脚本,则Web服务器软件将解析并执行PHP脚本,生成HTML格式的文本,并发送到客户端,显示在浏览器中。