0第章网站建设基础知识212.1网站概述网站是通过超链接集结为一个整体并发布在因特网上的多种资源的集合。2.1.1网站的定义网站网页图片声音文字动画视频多媒体程序其他2是一个功能服务体系,可提供各种功能,包括:单向的信息发布如组织或个人信息的展示等;双向的交流互动。如购物、教育、测试等;数据处理。由一方组织,面向多方发布;运行于因特网上。2.1.2网站的特点32.1.3网站的功能单向的信息发布;双向的交流互动;数据处理。4网站运行平台,又称网站运行环境,是指网站运行所需要的环境条件。2.1.4网站的运行平台网络平台(因特网)(第1章)软件平台(第2.2节)硬件平台(第2.3节)5操作系统Web平台TCP/IP协议2.2网站运行软件平台常见的操作系统有:Windows、Linux、FreeBSD、UnixWindows:常见、简单、易用;性能不好,不安全FreeBSD:小而精,安全,性能好;Unix:安全、性能好,庞大6Web平台是一种分布式软件,其组成部分包括Web服务器软件和浏览器软件,分散在网络上的不同位置,对网站文件进行处理(如信息发布)。Web平台Web服务器软件浏览器软件2.2.1Web平台7IIS:最常见的Web服务器软件,学习Web服务器的入门之选Apache:开源界的首选,世界使用排名第一。强大,可靠,功能丰富;但是繁杂,笨重,内存占用高,高并发时效率下降。Nginx:后起之秀,目前已由多个网站采用,包括新浪,网易,迅雷等。占用内存少,并发能力强。Lighttpd:开源,轻量、灵活、性能好。低内存开销、低cpu占用率、静态文件响应速度快(据说是apache的两倍以上)。但是功能不如apache多,比如不支持缓存。Squid:用作Web服务器的前置缓存服务器,可以代理用户向web服务器请求数据并进行缓存,Memcache:分布式高速缓存系统,开源,被用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。Memcache在内存中缓存图像、视频、文件以及数据库检索的结果等各种数据,从而大大提高读取速度。常见的Web服务器软件8所有计算机软件(包括Web平台),其所完成的任务均可分为输入、处理、输出三部分。早期的计算机软件,这三部分代码存在于同一个文件中。随着网络发展,出现了分布式软件,其特点是:其计算任务(包括输入、处理和输出)在网络上不同主机中完成;把这些不同主机分成两种:服务器端(一般完成处理功能)和客户端(一般完成输入输出功能);服务器端与客户端之间是一对多的关系;这种软件的好处是:1)计算任务分散完成;2)多个用户可以同时使用同一处的同一个软件。2.2.2Web平台的软件体系结构9这种输入输出部分与处理部分相互分离、呈一对多特点的软件体系结构,具体有两种,它们的区别在于计算任务在服务器端和客户端之间的分配:Client/Server(客户端/服务器)。服务器端仅完成数据处理,客户端完成输入输出和客户事务处理,被称为“胖客户端”。计算任务在服务器端和客户端间的分配较为均衡,Browser/Server(浏览器/服务器)。服务器端完成数据处理和客户事务处理,浏览器端只完成输入输出,被称为“瘦客户端”。服务器端任务较重。Web平台属于B/S软件体系。10C/S软件体系结构中的服务器端主要完成数据处理功能。C/S软件体系结构(二层C/S)输入输出和客户事务处理数据处理数据库Client请求响应Server11把C/S中的Client端功能进一步分解为输入输出和客户事务处理,把客户事务处理划归Web服务器完成。B/S软件体系结构(三层C/S)12优点:采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户端的要求较高,但服务器的工作负荷会比较小;服务器端的负担小,能够负荷更多用户接入,用户使用体验好。由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。C/S软件体系结构的特点缺点:由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。13优点:服务器端集中了所有的事务处理功能,则相应的开发维护工作也集中在服务器端。当系统升级时,只需更新服务器端的软件,不必变更客户端软件,减除了异地用户系统维护与升级的成本,从而大大降低了用户的总体拥有成本。浏览器端技术统一化、标准化,用户加入门槛极低。B/S体系结构的软件具有强大的信息发布能力和用户拥有能力。B/S软件体系结构的特点缺点:服务器的负担很重。随着用户数量增加,浏览器端工作负担不变,服务器端的工作负担则不断增加。发布信息必须是以HTML格式为主,而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来不便。14B/S体系结构适用于:使用者活动范围变化大;安全性要求相对较低;功能变动频繁。两种体系结构的适用情况:C/S体系结构适用于:使用者活动范围相对固定;安全性要求高;要求处理大量的实时数据。具有较强的交互性。15更有利于信息发布和用户数量的增加。为什么Web平台要采用B/S软件体系结构?16•用户在浏览器发出访问服务器请求,服务器响应这一请求,处理这一请求,并把服务结果输出到浏览器端,向用户显示。此时:Web平台(包括服务器端软件和浏览器端软件)是处理者;网站(即网页资源集合)是被处理对象;网站存储在服务器端,先后被服务器端软件和浏览器端软件处理。B/S软件体系的工作机制:“请求/响应”的应答式工作机制17浏览器端负责:向服务器端发送URL请求;接收从服务器端返回的文件资源,并解释执行。服务器端负责:根据URL找出相应文件资源;解释执行文件资源中的动态数据;把得到的结果发送给浏览器端。B/S软件体系的工作原理:服务器与浏览器的分工合作18当用户通过URL请求某台服务器中的文件资源,服务器首先对文件资源进行处理,具体来说就是扫描全文,识别出动态数据并对其进行解释执行,得到的执行结果与原文件中其它内容(静态数据)一起,被输出到浏览器端,这是第一次输出;浏览器收到第一次输出后,对其进行解释执行,得到执行结果并输出显示在浏览器端的输出设备(如显示器上),这是第二次输出。浏览器端接收到的内容是第一次输出,用户看到的浏览器显示是第二次输出B/S软件体系的工作过程:第一次输出和第二次输出19由前可见,Web平台就是网页处理器,包含两次处理。Web平台处理网页过程中,从第一次输出和第二次输出的角度,网页内容可以分为两种:静态数据和静态网页:无论是在服务器存放还是被浏览器接收到的都是完全相同的数据。只包含静态数据的网页称为静态网页,其扩展名为html或htm;动态数据和动态网页:是浏览器端无法识别的数据,每次传送前必须先由服务器进行识别、解释执行,得出浏览器端能够识别的数据并发送。包含动态数据的网页称为动态网页,其扩展名是asp,jsp及其它。2.2.3静态网页和动态网页20优点:页面下载速度快,用户等待时间短。静态网页的内容固定,无需临时生成,服务器处理简单,根本不需要打开网页,服务器处理时间短,则网页内容可以迅速到达浏览器端。静态网页这一永恒的优点,使得静态网页成为永不过时的网页技术。静态网页的特点缺点:1.网页内容千篇一律;2.不能和用户进行实时的交互,无法处理用户数据;3.网页内容无法隐藏;4.网页维护更新不易。只要内容有一点改动,都要要对整个网页文件进行重新编缉,这给网页维护工作带来了一定的不便。21优点:1.能与用户进行交互;2.能进一步管理用户数据;3.基于数据管理实现网站自动更新,简化了网站内容维护工作。无须手动地更新HTML文档,即可自动生成新的页面。动态网页的特点缺点:速度慢,用户等待时间长。服务器对动态网页的处理过程包括打开、解释、执行、生成静态数据,甚至读写数据库,等等。所需时间大大多于静态网页。22静态网页适用于:1.比较简单,和用户没有交互的网页,比如个人介绍、简历等;2.内容固定,显示信息量很少改变的网页,比如论文,报告等。静态网页和动态网页的适用情况动态网页适用于:1.用户数据需要管理的应用;2.信息内容变换很快的网页。例如产品列表,头条新闻等;3.需要和客户进行交互的应用。比如聊天室、论坛、电子商务、信息查询、全文检索等。23B/S体系结构下,网页内容须经两次处理,则:把服务器端处理称为后台处理,所用技术称为后台技术,处理结果被发送到浏览器;把浏览器端处理称为前台处理,所用技术称为前台技术,处理结果向用户直接显示。2.2.4前台技术和后台技术24在B/S体系结构下,作为“瘦”的客户端,前台技术相对是比较简单的,即接收服务器端传来的数据并解释执行,包括:显示控制:识别显示元素—文字、图形、图像、声音、动画等;识别并实现不同的显示格式显示:字体、字号、颜色、长、宽、高等;识别并显示为不同的效果—静止不动的、动态变化的,等等。程序执行。前台技术以HTML为领军代表,从二十世纪八十年代末至今天不断发展,相应地浏览器也随之不断升级。前台技术(浏览器端技术)25在B/S体系结构下,网站服务器端需完成客户事务处理和数据处理工作,因此后台技术呈现多样化、复杂化,包括:面向静态网页的静态技术,实现单向的信息发布,即根据URL找到本机文件并直接发送到浏览器端;面向动态网页的动态Web技术,实现双向交互和数据管理,满足商业网站所需的资源存储、信息查询、客户交互等需求。包括:程序逻辑技术:实现服务器端与客户端间的实时交互和即时处理。允许客户端随URL一起发来其它用户数据,由服务器对此进行判断处理,并动态生成不同的结果数据,写入网页中,发送到客户端;数据库技术:进一步地存储和管理用户数据。后台技术(服务器端技术)26目前各种Web数据库管理系统软件已经相当成熟,相关产品也很多,例如ORACLE、SYBASE、Informix、DB2、SQLServer、MySQL,以及Access等在Windows操作平台上,通常采用SQLServer和Access,在Linux和Unix平台上则大多采用MySQL或Oracle数据库软件27LAMP:Linux+Apache+MySQL+PHP开源软件,成熟架构资源丰富,快速开发通用,跨平台衡量性能、质量、价格后,性价比高电商网站软件平台典型解决方案28Windows2000+IIS+SQLServer+ASPSolarisforIntel+iPlanetWebServer+JSP+Oraacle其它电商网站软件平台解决方案29网站开发,即制作产生图片、文字、程序、网页、数据等各种网站资源,并把其整合为网页等各种文件。从开发对象是属于动态数据还是静态数据的角度,可把网站开发分为前台开发和后台开发两部分。因此,大型专业网站的开发过程中,网站前后台开发工作由各有所长的不同专业人员分别完成,必须进行统筹管理,以保证顺利衔接。而服务器解释型语言就是服务器先把代码执行好,然后发给浏览器来查看,一般通过浏览器查看不到它的源代码,用服务器解释型语言编写的网页一般都是动态网页。2.2.5网站开发30网站前台开发是指对静态数据、静态网页的开发。静态数据,如html,xhtml,xml,css,javascript等,又称浏览器解释型语言,由浏览器解释执行,它的执行不涉及服务器,通过浏览器可以查看到它的源代码。静态数据,意味着面向用户的最终呈现,是整个网站的脸面,最好有美工参与开发。网站前台开发31网站后台开发是指对动态数据、动态网页的开发。动态数据,如asp、php和jps等,又称服务器解释型语言,由Web服务器解释执行。动态数据,意味着各种网站功能的实现,由程序逻辑组成,一般由专业程序员参与开发。网站后台开发32网站开发可以不含后台开