版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0第章网站建设基础知识2
第章网站建设基础知识2012.1网站概述网站是通过超链接集结为一个整体并发布在因特网上的多种资源的集合。2.1.1网站的定义网站网页图片声音文字动画视频多媒体程序其他2.1网站概述网站是通过超链接集结为一个整体并发布在因特网12是一个功能服务体系,可提供各种功能,包括:单向的信息发布如组织或个人信息的展示等;双向的交流互动。如购物、教育、测试等;数据处理。由一方组织,面向多方发布;运行于因特网上。2.1.2
网站的特点是一个功能服务体系,可提供各种功能,包括:2.1.2网站的232.1.3
网站的功能单向的信息发布;双向的交流互动;数据处理。2.1.3网站的功能单向的信息发布;34网站运行平台,又称网站运行环境,是指网站运行所需要的环境条件。2.1.4
网站的运行平台网络平台(因特网)(第1章)软件平台(第2.2节)硬件平台(第2.3节)网站运行平台,又称网站运行环境,是指网站运行所需要的环境条件45操作系统Web平台TCP/IP协议2.2网站运行软件平台常见的操作系统有:Windows、Linux、FreeBSD、UnixWindows:常见、简单、易用;性能不好,不安全FreeBSD:小而精,安全,性能好;Unix:安全、性能好,庞大操作系统Web平台TCP/IP协议2.2网站运行软件平台56Web平台是一种分布式软件,其组成部分包括Web服务器软件和浏览器软件,分散在网络上的不同位置,对网站文件进行处理(如信息发布)。Web平台Web服务器软件浏览器软件2.2.1
Web平台Web平台是一种分布式软件,其组成部分包括Web服务器软件和67IIS:最常见的Web服务器软件,学习Web服务器的入门之选Apache:开源界的首选,世界使用排名第一。强大,可靠,功能丰富;但是繁杂,笨重,内存占用高,高并发时效率下降。Nginx:后起之秀,目前已由多个网站采用,包括新浪,网易,迅雷等。占用内存少,并发能力强。Lighttpd:开源,轻量、灵活、性能好。低内存开销、低cpu占用率、静态文件响应速度快(据说是apache的两倍以上)。但是功能不如apache多,比如不支持缓存。Squid:用作Web服务器的前置缓存服务器,可以代理用户向web服务器请求数据并进行缓存,Memcache:分布式高速缓存系统,开源,被用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。Memcache在内存中缓存图像、视频、文件以及数据库检索的结果等各种数据,从而大大提高读取速度。
常见的Web服务器软件IIS:最常见的Web服务器软件,学习Web服务器的入门之选78所有计算机软件(包括Web平台),其所完成的任务均可分为输入、处理、输出三部分。早期的计算机软件,这三部分代码存在于同一个文件中。随着网络发展,出现了分布式软件,其特点是:其计算任务(包括输入、处理和输出)在网络上不同主机中完成;把这些不同主机分成两种:服务器端(一般完成处理功能)和客户端(一般完成输入输出功能);服务器端与客户端之间是一对多的关系;这种软件的好处是:1)计算任务分散完成;2)多个用户可以同时使用同一处的同一个软件。2.2.2
Web平台的软件体系结构所有计算机软件(包括Web平台),其所完成的任务均可分为输入89这种输入输出部分与处理部分相互分离、呈一对多特点的软件体系结构,具体有两种,它们的区别在于计算任务在服务器端和客户端之间的分配:Client/Server(客户端/服务器)。服务器端仅完成数据处理,客户端完成输入输出和客户事务处理,被称为“胖客户端”。计算任务在服务器端和客户端间的分配较为均衡,Browser/Server(浏览器/服务器)。服务器端完成数据处理和客户事务处理,浏览器端只完成输入输出,被称为“瘦客户端”。服务器端任务较重。Web平台属于B/S软件体系。这种输入输出部分与处理部分相互分离、呈一对多特点的软件体系结910C/S软件体系结构中的服务器端主要完成数据处理功能。C/S软件体系结构(二层C/S)输入输出和客户事务处理数据处理数据库Client请求响应ServerC/S软件体系结构中的服务器端主要完成数据处理功能。C/S软1011把C/S中的Client端功能进一步分解为输入输出和客户事务处理,把客户事务处理划归Web服务器完成。B/S软件体系结构(三层C/S)把C/S中的Client端功能进一步分解为输入输出和客户事务1112优点:采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户端的要求较高,但服务器的工作负荷会比较小;服务器端的负担小,能够负荷更多用户接入,用户使用体验好。由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。C/S软件体系结构的特点缺点:由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。优点:C/S软件体系结构的特点缺点:1213优点:服务器端集中了所有的事务处理功能,则相应的开发维护工作也集中在服务器端。当系统升级时,只需更新服务器端的软件,不必变更客户端软件,减除了异地用户系统维护与升级的成本,从而大大降低了用户的总体拥有成本。浏览器端技术统一化、标准化,用户加入门槛极低。B/S体系结构的软件具有强大的信息发布能力和用户拥有能力。B/S软件体系结构的特点缺点:服务器的负担很重。随着用户数量增加,浏览器端工作负担不变,服务器端的工作负担则不断增加。发布信息必须是以HTML格式为主,而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来不便。优点:B/S软件体系结构的特点缺点:1314B/S体系结构适用于:使用者活动范围变化大;安全性要求相对较低;功能变动频繁。两种体系结构的适用情况:C/S体系结构适用于:使用者活动范围相对固定;安全性要求高;要求处理大量的实时数据。具有较强的交互性。B/S体系结构适用于:两种体系结构的适用情况:C/S体系结构1415更有利于信息发布和用户数量的增加。为什么Web平台要采用B/S软件体系结构?更有利于信息发布和用户数量的增加。为什么Web平台要采用1516用户在浏览器发出访问服务器请求,服务器响应这一请求,处理这一请求,并把服务结果输出到浏览器端,向用户显示。此时:Web平台(包括服务器端软件和浏览器端软件)是处理者;网站(即网页资源集合)是被处理对象;网站存储在服务器端,先后被服务器端软件和浏览器端软件处理。B/S软件体系的工作机制:“请求/响应”的应答式工作机制用户在浏览器发出访问服务器请求,服务器响应这一请求,处理这一1617浏览器端负责:向服务器端发送URL请求;接收从服务器端返回的文件资源,并解释执行。服务器端负责:根据URL找出相应文件资源;解释执行文件资源中的动态数据;把得到的结果发送给浏览器端。B/S软件体系的工作原理:服务器与浏览器的分工合作浏览器端负责:B/S软件体系的工作原理:1718当用户通过URL请求某台服务器中的文件资源,服务器首先对文件资源进行处理,具体来说就是扫描全文,识别出动态数据并对其进行解释执行,得到的执行结果与原文件中其它内容(静态数据)一起,被输出到浏览器端,这是第一次输出;浏览器收到第一次输出后,对其进行解释执行,得到执行结果并输出显示在浏览器端的输出设备(如显示器上),这是第二次输出。浏览器端接收到的内容是第一次输出,用户看到的浏览器显示是第二次输出B/S软件体系的工作过程:第一次输出和第二次输出当用户通过URL请求某台服务器中的文件资源,服务器首先对文件1819由前可见,Web平台就是网页处理器,包含两次处理。Web平台处理网页过程中,从第一次输出和第二次输出的角度,网页内容可以分为两种:静态数据和静态网页:无论是在服务器存放还是被浏览器接收到的都是完全相同的数据。只包含静态数据的网页称为静态网页,其扩展名为html或htm;动态数据和动态网页:是浏览器端无法识别的数据,每次传送前必须先由服务器进行识别、解释执行,得出浏览器端能够识别的数据并发送。包含动态数据的网页称为动态网页,其扩展名是asp,jsp及其它。2.2.3
静态网页和动态网页由前可见,Web平台就是网页处理器,包含两次处理。2.2.31920优点:页面下载速度快,用户等待时间短。静态网页的内容固定,无需临时生成,服务器处理简单,根本不需要打开网页,服务器处理时间短,则网页内容可以迅速到达浏览器端。静态网页这一永恒的优点,使得静态网页成为永不过时的网页技术。静态网页的特点缺点:1.网页内容千篇一律;2.不能和用户进行实时的交互,无法处理用户数据;3.网页内容无法隐藏;4.网页维护更新不易。只要内容有一点改动,都要要对整个网页文件进行重新编缉,这给网页维护工作带来了一定的不便。优点:静态网页的特点缺点:2021优点:1.能与用户进行交互;2.能进一步管理用户数据;3.基于数据管理实现网站自动更新,简化了网站内容维护工作。无须手动地更新HTML文档,即可自动生成新的页面。动态网页的特点缺点:速度慢,用户等待时间长。服务器对动态网页的处理过程包括打开、解释、执行、生成静态数据,甚至读写数据库,等等。所需时间大大多于静态网页。优点:动态网页的特点缺点:2122静态网页适用于:1.比较简单,和用户没有交互的网页,比如个人介绍、简历等;2.内容固定,显示信息量很少改变的网页,比如论文,报告等。静态网页和动态网页的适用情况动态网页适用于:1.用户数据需要管理的应用;2.信息内容变换很快的网页。例如产品列表,头条新闻等;3.需要和客户进行交互的应用。比如聊天室、论坛、电子商务、信息查询、全文检索等。静态网页适用于:静态网页和动态网页的适用情况动态网页适用于:2223B/S体系结构下,网页内容须经两次处理,则:把服务器端处理称为后台处理,所用技术称为后台技术,处理结果被发送到浏览器;把浏览器端处理称为前台处理,所用技术称为前台技术,处理结果向用户直接显示。2.2.4
前台技术和后台技术B/S体系结构下,网页内容须经两次处理,则:2.2.4前台2324在B/S体系结构下,作为“瘦”的客户端,前台技术相对是比较简单的,即接收服务器端传来的数据并解释执行,包括:显示控制:识别显示元素—文字、图形、图像、声音、动画等;识别并实现不同的显示格式显示:字体、字号、颜色、长、宽、高等;识别并显示为不同的效果—静止不动的、动态变化的,等等。程序执行。前台技术以HTML为领军代表,从二十世纪八十年代末至今天不断发展,相应地浏览器也随之不断升级。前台技术(浏览器端技术)在B/S体系结构下,作为“瘦”的客户端,前台技术相对是比较简2425在B/S体系结构下,网站服务器端需完成客户事务处理和数据处理工作,因此后台技术呈现多样化、复杂化,包括:面向静态网页的静态技术,实现单向的信息发布,即根据URL找到本机文件并直接发送到浏览器端;面向动态网页的动态Web技术,实现双向交互和数据管理,满足商业网站所需的资源存储、信息查询、客户交互等需求。包括:程序逻辑技术:实现服务器端与客户端间的实时交互和即时处理。允许客户端随URL一起发来其它用户数据,由服务器对此进行判断处理,并动态生成不同的结果数据,写入网页中,发送到客户端;数据库技术:进一步地存储和管理用户数据。后台技术(服务器端技术)在B/S体系结构下,网站服务器端需完成客户事务处理和数据处理2526目前各种Web数据库管理系统软件已经相当成熟,相关产品也很多,例如ORACLE、SYBASE、Informix、DB2、SQLServer、MySQL,以及Access等在Windows操作平台上,通常采用SQLServer和Access,在Linux和Unix平台上则大多采用MySQL或Oracle数据库软件目前各种Web数据库管理系统软件已经相当成熟,相关产品也很多2627LAMP:Linux+Apache+MySQL+PHP开源软件,成熟架构资源丰富,快速开发通用,跨平台衡量性能、质量、价格后,性价比高电商网站软件平台典型解决方案LAMP:Linux+Apache+MySQL+PHP电商网2728Windows2000+IIS+SQLServer+ASPSolarisforIntel+iPlanetWebServer+JSP+Oraacle其它电商网站软件平台解决方案Windows2000+IIS+SQLServer+ASP2829网站开发,即制作产生图片、文字、程序、网页、数据等各种网站资源,并把其整合为网页等各种文件。从开发对象是属于动态数据还是静态数据的角度,可把网站开发分为前台开发和后台开发两部分。因此,大型专业网站的开发过程中,网站前后台开发工作由各有所长的不同专业人员分别完成,必须进行统筹管理,以保证顺利衔接。而服务器解释型语言就是服务器先把代码执行好,然后发给浏览器来查看,一般通过浏览器查看不到它的源代码,用服务器解释型语言编写的网页一般都是动态网页。2.2.5网站开发网站开发,即制作产生图片、文字、程序、网页、数据等各种网站资2930网站前台开发是指对静态数据、静态网页的开发。静态数据,如html,xhtml,xml,css,javascript等,又称浏览器解释型语言,由浏览器解释执行,它的执行不涉及服务器,通过浏览器可以查看到它的源代码。静态数据,意味着面向用户的最终呈现,是整个网站的脸面,最好有美工参与开发。网站前台开发网站前台开发是指对静态数据、静态网页的开发。网站前台开发3031网站后台开发是指对动态数据、动态网页的开发。动态数据,如asp、php和jps等,又称服务器解释型语言,由Web服务器解释执行。动态数据,意味着各种网站功能的实现,由程序逻辑组成,一般由专业程序员参与开发。网站后台开发网站后台开发是指对动态数据、动态网页的开发。网站后台开发3132网站开发可以不含后台开发。例如个人介绍网站,只包含个人简历及相关图片,则不需要后台技术;电子商务网站功能复杂,一般都要进行带数据库的后台开发,如:网站前台是面向网站访问用户的,展示各种需要公开发布的信息,如产品信息、新闻信息、企业介绍、企业联系方式、提交留言等;网站后台主要完成数据库管理,例如产品、企业信息的增加、更新、删除等。通常需要用帐号及密码等信息进行登陆验证。
网站开发可以不含后台开发。例如个人介绍网站,只包含个人简历及3233网站前台开发工具网站前台的开发,主要是对直接面向用户呈现的各种元素的开发,如制作视频、声频、图像、文字等等,并整合为网页中的静态数据。常见工具有:网站前台开发工具网站前台的开发,主要是对直接面向用户呈现的各3334网站后台开发工具网站后台的开发,主要包括对程序功能的开发(编程)和对数据库的开发(实现数据管理),常见有:网站后台开发工具网站后台的开发,主要包括对程序功能的开发(编3435网站后台开发可以再分为程序开发和数据开发一般的有一定复杂度的网站可分为以下四层:(1)数据层:由各数据表组成的数据库;(2)数据接入层(DAL):负责与数据库的交互,供业务逻辑层调用;(3)业务逻辑层(BLL):调用数据接入层以获取数据,并为具体的业务需求提供支持;(4)用户界面层(UIL):负责呈现最终的用户界面。按这种分层进行开发,可以在网站布署时按不同层进行布署。网站后台开发可以再分为程序开发和数据开发一般的有一定复杂度的35362.3网站运行的硬件平台网站运行的硬件平台网络设备服务器主机和浏览器主机交换机防火墙路由器在B/S体系结构下,浏览器端和服务器端都需建设硬件平台。由于浏览器端技术要求较低(硬件建设难度低),因此一般提到网站硬件平台建设,都默认为服务器端硬件平台。完整的硬件平台,包括如图以上各个部分。由此可见,网站硬件平台的建设需要相当高的网络专业水平。根据建站用户需求的不同,可以通过不同的建设方案获取其需要的网站运行硬件平台。网线2.3网站运行的硬件平台网站运行的硬件平台网络设备服务器主36372.3.1虚拟主机—小型网站的硬件平台向ISP申请网站空间,支付空间租用费。拥有空间相当于是拥有一台可以运行在因特网上的主机,因此又称“虚拟主机”。虚拟主机,意味着网站运行硬件平台完全由ISP提供。优点:建设成本和维护成本低。缺点:网站性能没有保障。在企业发展电子商务的初级阶段,网站用户不多、流量不大、资金缺乏的情况下,可以考虑采用这种方案。2.3.1虚拟主机—小型网站的硬件平台向ISP申请网站空间3738小型网站小型网站是网站的最小型态,其特点是:内容少。例如只由静态网页组成,没有动态数据和数据库软件;流量和带宽要求低。例如只要求能接入网站。网站架构技术:租借空间,或者直接用自己的上网电脑;硬件上不区分Web服务器和数据库服务器,即Web服务器软件、数据库软件和数据库管理软件都在同一硬件主机;服务器软件和数据库软件都简单地采用常见技术,如IIS和ACCESS。小型网站小型网站是网站的最小型态,其特点是:38392.3.2主机托管—中型网站硬件平台自行购置高性能的独立主机,托管在ISP的机房,并向ISP支付网络端口费用。优点:主机性能有保障;网络带宽性能有保障。当网站业务量规模变大,经济实力较雄厚时,可以考虑采用这种方案。2.3.2主机托管—中型网站硬件平台自行购置高性能的独立主3940中型网站当网站具备了一定特色,就能吸引更多用户,致使网站流量增加,同时网站响应速度变慢,此时需要建设中型网站。中型网站的特点:具备流量要求,需要一定带宽;网站内容丰富、类型复杂,如包括动态数据和数据库;采用技术主机托管硬件上会实现一定程度的物理分层(多台主机托管)中型网站当网站具备了一定特色,就能吸引更多用户,致使网站流量4041中型网站典型硬件架构(一)用户把三台主机构成的小型计算机网络托管到ISP的机房。其中两台安装Web服务器软件-Apache,第三台用作数据服务器。来自用户的请求可以分流到两台Web服务器上,若是一般的客户事务,则两台Web服务器可以自行处理;若包含数据请求,则再行接入数据服务器。通过三台主机实现负载平衡。中型网站典型硬件架构(一)用户把三台主机构成的小型计算机网络4142中型网站典型硬件架构(二)用户把四台主机构成的小型计算机网络托管到ISP的机房。其中两台安装Web服务器软件Apache,第三台用作日志(Blog)数据服务器,第四台用作用户数据服务器。与方案一不同的是,数据请求根据数据种类进一步分流到两台数据服务器。中型网站典型硬件架构(二)用户把四台主机构成的小型计算机网络4243采用“Lighttpd+Squid+Apache”形成处理链。Lighttpd在最前面专门处理静态内容的请求,而把动态内容的转给Squid;Squid中如果有该请示的内容且没有过期,则直接返回给Lighttpd,新请示或者过期的页面请求则转给ApacheWeb程序来处理。经过两级过滤,Apache需要处理的请示将大大减少。同时这种架构便于进行以下优化:由Lighttpd在前面统一把关,把不同的处理分散到多台计算机上进行每一级都是可以进行单独优化的,比如Lighttpd可以采用异步IO方式;每一级都可以使用多台机器来均衡负载,伸缩性很好。中型网站Web服务器端典型软件架构采用“Lighttpd+Squid+Apache”形成处理链43442.3.3自建机群网络—大型网站硬件平台用户在本地自建计算机网络,通过ISP提供的专线接入因特网,向ISP支付专线租用费用。意味着网站运行硬件平台全部自行建设,包括路由器、交换机、主机服务器等等。优点:主机性能有保障;网络带宽性能有保障;发布信息量不受限制。缺点:建设成本和维护成本较高,需要专业技术人员的维护。成本从几万元到上百万元不等。大型企业可以考虑采用这种方案。2.3.3自建机群网络—大型网站硬件平台用户在本地自建计算4445企业由小到大不断发展的过程,有可能随着访问量的不断增加,经历从小型网站发展到大型网站,这同时也意味着网站架构的不断发展演变。
扩建网站硬件平台架构企业由小到大不断发展的过程,有可能随着访问量的不断增加,经历4546一、分离应用和数据
扩建网站硬件平台架构一、分离应用和数据扩建网站硬件平台架构4647二、前端页面缓存机制缓存,是内存和硬盘上的一段空间。把用户经常访问的静态资源,如一些logo、banner等,直接放在服务器内存或浏览器本地的硬盘空间上,当用户访问时先去这些位置寻找,即可缩短资源获取时间。缓存是对静态页面访问速度的改善方法,常用前端页面缓存技术是Squid。二、前端页面缓存机制缓存,是内存和硬盘上的一段空间。把用户经4748三、页面片断缓存机制把缓存技术进一步用在网页中的静态数据上可采用页面片段缓存技术(如ESI),对页面中相对静态的片段进行缓存三、页面片断缓存机制把缓存技术进一步用在网页中的静态数据上4849四、引入数据缓存机制对经常重复获取的数据信息,也可以进行缓存数据缓存机制:第一次查询请求时由DAL访问数据库以获取数据,并放入缓冲存储器,将来再有同样的查询,可从缓存系统中返回数据,不再运行机制DAL和访问数据库。四、引入数据缓存机制对经常重复获取的数据信息,也可以进行缓存4950五、增加Web服务器数量增加web服务器的数量可以分流用户访问,但有以下问题:如何让访问分配到两台机器上,考虑采用服务器技术自带的负载均衡方案,或LVS等软件负载均衡方案等。如何保持状态信息的同步;如何保持数据缓存信息的同步;如何采用共享文件系统进行存储。五、增加Web服务器数量增加web服务器的数量可以分流用户访5051六、增加数据服务器数量采用数据库集群及数据库分库可以分流数据访问,但同样会带来与Web服务器增加相类似的问题。分库:对同一个数据库进行拆分,存储在不同主机上;分表:对同一个数据表进行拆分,存储在不同主机上;六、增加数据服务器数量采用数据库集群及数据库分库可以分流数据5152七、建立分布式数据缓存数据分布式缓存:把缓存数据分布到集群中的各个节点上七、建立分布式数据缓存5253八、建立分布式文件系统当需要处理的数据量极大,如Google、Baidu等搜索引擎,可通过分布式文件存储系统,把巨量数据存储在多台主机上,并可通过一定的备份存储来提高存储的容错性。在分布式文件系统下,可以采用大量的廉价机器来支撑巨大的访问量和数据量。但要解决如下问题:如何拆分?各部分间的依赖如何?如何为拆分后的各部分提供稳定的通信框架?八、建立分布式文件系统当需要处理的数据量极大,如Google53542.4网站开发一般流程:三个阶段第一阶段—规划阶段:对整个网站进行战略上的整体规划确定网站建立目标、实施策略、准备资源第二阶段—技术实现阶段:从技术上实现一个网站注册域名—选择服务器—建立网站的软硬件平台—确定网站的信息和结构—页面设计(前台开发)—编写程序实现网站功能(后台开发)--网站发布第三阶段—运营阶段:把网站正式向目标市场推出使用,实现各预期目标网站运行、管理、维护、经营、宣传、推广、评价、分析、改进,继续丰富和完善网站的功能三个阶段2.4网站开发一般流程:三个阶段第一阶段—规划阶段:对整个5455商业公司网站制作标准流程第一步:第二步:商业公司网站制作标准流程第一步:第二步:5556商业公司网站制作标准流程第三步:第四步:商业公司网站制作标准流程第三步:第四步:5657商业公司网站制作标准流程第五步:第六步:第七步:商业公司网站制作标准流程第五步:第六步:第七步:57582.5网站的安全网站安全,主要包括平台安全、内容安全和使用过程安全平台安全:软件平台(操作系统、网络)不允许被非法入侵,致使系统瘫痪。内容安全:存储在服务器端的数据不允许被非法访问。使用过程安全:服务器端与客户端交互过程中,交互内容不允许被非法拦截。2.5网站的安全网站安全,主要包括平台安全、内容安全和使用58592.5网站的安全网站安全的实施:操作系统的选择和使用服务器的选择和使用网站内容编写2.5网站的安全网站安全的实施:5960操作系统的选择和配置操作系统的选择和配置6061去除无用的Web组件,防止被非法利用。如SHELL之类的解释器分离异类服务器,如FTP、MAIL定期查看Web服务器的日志log文件,分析识别可疑事件;安装杀毒软件和防火墙,并定期升级服务器的选择和配置去除无用的Web组件,防止被非法利用。如SHELL之类的解释6162防止代码漏洞,如:部分页面忽视了身份验证信息;如果这是个管理员密码修改页面,则网站后台将完全暴露;注意SQL注入问题(在表单提交中夹杂SQL语句,用于查询敏感信息如管理员密码)。在网站程序编写中,要对用户输入的合法性进行判断或者对程序中的变量进行正确处理,消除应用程序的安全隐患。网站内容的编写和配置防止代码漏洞,如:网站内容的编写和配置6263防止代码漏洞,如:数据库连接字串(即出现在程序中的用于连接数据库的程序代码)中不要直接出现明文密码,而应采用对称加密密码;数据库接文件(专门由数据库程序代码组成的文件)不要用常见的Conn、DbConn作文件名,避免.inc、.asa、.txt作为扩展名,不要把文件放在类似Inc、Data、Conn等目录下;防止数据库连接文件被非法下载;数据库连接字串的某些错误导致的错误提示中,可能含有数据库或表的重要信息。网站内容的编写和配置防止代码漏洞,如:网站内容的编写和配置6364数据库安全,如:注意位置安全和名称安全,防止数据库路径被猜测,从而被非法下载、非法窃取。如:不应把数据库放在以“Data”、“Database”为名的目录下;不要给数据库起名“Data”、“MyData”或“DataBase”;不要用“admin”、“user”、“Product”、“Pwd”、“UserPwd”等作数据表名和数据字段名。合理使用十位以上密码作为数据库密码。网站内容的编写和配置数据库安全,如:网站内容的编写和配置6465第章网站建设基础知识2
第章网站建设基础知识265662.1网站概述网站是通过超链接集结为一个整体并发布在因特网上的多种资源的集合。2.1.1网站的定义网站网页图片声音文字动画视频多媒体程序其他2.1网站概述网站是通过超链接集结为一个整体并发布在因特网6667是一个功能服务体系,可提供各种功能,包括:单向的信息发布如组织或个人信息的展示等;双向的交流互动。如购物、教育、测试等;数据处理。由一方组织,面向多方发布;运行于因特网上。2.1.2
网站的特点是一个功能服务体系,可提供各种功能,包括:2.1.2网站的67682.1.3
网站的功能单向的信息发布;双向的交流互动;数据处理。2.1.3网站的功能单向的信息发布;6869网站运行平台,又称网站运行环境,是指网站运行所需要的环境条件。2.1.4
网站的运行平台网络平台(因特网)(第1章)软件平台(第2.2节)硬件平台(第2.3节)网站运行平台,又称网站运行环境,是指网站运行所需要的环境条件6970操作系统Web平台TCP/IP协议2.2网站运行软件平台常见的操作系统有:Windows、Linux、FreeBSD、UnixWindows:常见、简单、易用;性能不好,不安全FreeBSD:小而精,安全,性能好;Unix:安全、性能好,庞大操作系统Web平台TCP/IP协议2.2网站运行软件平台7071Web平台是一种分布式软件,其组成部分包括Web服务器软件和浏览器软件,分散在网络上的不同位置,对网站文件进行处理(如信息发布)。Web平台Web服务器软件浏览器软件2.2.1
Web平台Web平台是一种分布式软件,其组成部分包括Web服务器软件和7172IIS:最常见的Web服务器软件,学习Web服务器的入门之选Apache:开源界的首选,世界使用排名第一。强大,可靠,功能丰富;但是繁杂,笨重,内存占用高,高并发时效率下降。Nginx:后起之秀,目前已由多个网站采用,包括新浪,网易,迅雷等。占用内存少,并发能力强。Lighttpd:开源,轻量、灵活、性能好。低内存开销、低cpu占用率、静态文件响应速度快(据说是apache的两倍以上)。但是功能不如apache多,比如不支持缓存。Squid:用作Web服务器的前置缓存服务器,可以代理用户向web服务器请求数据并进行缓存,Memcache:分布式高速缓存系统,开源,被用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。Memcache在内存中缓存图像、视频、文件以及数据库检索的结果等各种数据,从而大大提高读取速度。
常见的Web服务器软件IIS:最常见的Web服务器软件,学习Web服务器的入门之选7273所有计算机软件(包括Web平台),其所完成的任务均可分为输入、处理、输出三部分。早期的计算机软件,这三部分代码存在于同一个文件中。随着网络发展,出现了分布式软件,其特点是:其计算任务(包括输入、处理和输出)在网络上不同主机中完成;把这些不同主机分成两种:服务器端(一般完成处理功能)和客户端(一般完成输入输出功能);服务器端与客户端之间是一对多的关系;这种软件的好处是:1)计算任务分散完成;2)多个用户可以同时使用同一处的同一个软件。2.2.2
Web平台的软件体系结构所有计算机软件(包括Web平台),其所完成的任务均可分为输入7374这种输入输出部分与处理部分相互分离、呈一对多特点的软件体系结构,具体有两种,它们的区别在于计算任务在服务器端和客户端之间的分配:Client/Server(客户端/服务器)。服务器端仅完成数据处理,客户端完成输入输出和客户事务处理,被称为“胖客户端”。计算任务在服务器端和客户端间的分配较为均衡,Browser/Server(浏览器/服务器)。服务器端完成数据处理和客户事务处理,浏览器端只完成输入输出,被称为“瘦客户端”。服务器端任务较重。Web平台属于B/S软件体系。这种输入输出部分与处理部分相互分离、呈一对多特点的软件体系结7475C/S软件体系结构中的服务器端主要完成数据处理功能。C/S软件体系结构(二层C/S)输入输出和客户事务处理数据处理数据库Client请求响应ServerC/S软件体系结构中的服务器端主要完成数据处理功能。C/S软7576把C/S中的Client端功能进一步分解为输入输出和客户事务处理,把客户事务处理划归Web服务器完成。B/S软件体系结构(三层C/S)把C/S中的Client端功能进一步分解为输入输出和客户事务7677优点:采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户端的要求较高,但服务器的工作负荷会比较小;服务器端的负担小,能够负荷更多用户接入,用户使用体验好。由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。C/S软件体系结构的特点缺点:由于有一部分处理功能存在于客户端,当需要修改处理部分(例如系统升级)时,可能需要对每个客户机端进行修改,软件维护工作量大。优点:C/S软件体系结构的特点缺点:7778优点:服务器端集中了所有的事务处理功能,则相应的开发维护工作也集中在服务器端。当系统升级时,只需更新服务器端的软件,不必变更客户端软件,减除了异地用户系统维护与升级的成本,从而大大降低了用户的总体拥有成本。浏览器端技术统一化、标准化,用户加入门槛极低。B/S体系结构的软件具有强大的信息发布能力和用户拥有能力。B/S软件体系结构的特点缺点:服务器的负担很重。随着用户数量增加,浏览器端工作负担不变,服务器端的工作负担则不断增加。发布信息必须是以HTML格式为主,而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来不便。优点:B/S软件体系结构的特点缺点:7879B/S体系结构适用于:使用者活动范围变化大;安全性要求相对较低;功能变动频繁。两种体系结构的适用情况:C/S体系结构适用于:使用者活动范围相对固定;安全性要求高;要求处理大量的实时数据。具有较强的交互性。B/S体系结构适用于:两种体系结构的适用情况:C/S体系结构7980更有利于信息发布和用户数量的增加。为什么Web平台要采用B/S软件体系结构?更有利于信息发布和用户数量的增加。为什么Web平台要采用8081用户在浏览器发出访问服务器请求,服务器响应这一请求,处理这一请求,并把服务结果输出到浏览器端,向用户显示。此时:Web平台(包括服务器端软件和浏览器端软件)是处理者;网站(即网页资源集合)是被处理对象;网站存储在服务器端,先后被服务器端软件和浏览器端软件处理。B/S软件体系的工作机制:“请求/响应”的应答式工作机制用户在浏览器发出访问服务器请求,服务器响应这一请求,处理这一8182浏览器端负责:向服务器端发送URL请求;接收从服务器端返回的文件资源,并解释执行。服务器端负责:根据URL找出相应文件资源;解释执行文件资源中的动态数据;把得到的结果发送给浏览器端。B/S软件体系的工作原理:服务器与浏览器的分工合作浏览器端负责:B/S软件体系的工作原理:8283当用户通过URL请求某台服务器中的文件资源,服务器首先对文件资源进行处理,具体来说就是扫描全文,识别出动态数据并对其进行解释执行,得到的执行结果与原文件中其它内容(静态数据)一起,被输出到浏览器端,这是第一次输出;浏览器收到第一次输出后,对其进行解释执行,得到执行结果并输出显示在浏览器端的输出设备(如显示器上),这是第二次输出。浏览器端接收到的内容是第一次输出,用户看到的浏览器显示是第二次输出B/S软件体系的工作过程:第一次输出和第二次输出当用户通过URL请求某台服务器中的文件资源,服务器首先对文件8384由前可见,Web平台就是网页处理器,包含两次处理。Web平台处理网页过程中,从第一次输出和第二次输出的角度,网页内容可以分为两种:静态数据和静态网页:无论是在服务器存放还是被浏览器接收到的都是完全相同的数据。只包含静态数据的网页称为静态网页,其扩展名为html或htm;动态数据和动态网页:是浏览器端无法识别的数据,每次传送前必须先由服务器进行识别、解释执行,得出浏览器端能够识别的数据并发送。包含动态数据的网页称为动态网页,其扩展名是asp,jsp及其它。2.2.3
静态网页和动态网页由前可见,Web平台就是网页处理器,包含两次处理。2.2.38485优点:页面下载速度快,用户等待时间短。静态网页的内容固定,无需临时生成,服务器处理简单,根本不需要打开网页,服务器处理时间短,则网页内容可以迅速到达浏览器端。静态网页这一永恒的优点,使得静态网页成为永不过时的网页技术。静态网页的特点缺点:1.网页内容千篇一律;2.不能和用户进行实时的交互,无法处理用户数据;3.网页内容无法隐藏;4.网页维护更新不易。只要内容有一点改动,都要要对整个网页文件进行重新编缉,这给网页维护工作带来了一定的不便。优点:静态网页的特点缺点:8586优点:1.能与用户进行交互;2.能进一步管理用户数据;3.基于数据管理实现网站自动更新,简化了网站内容维护工作。无须手动地更新HTML文档,即可自动生成新的页面。动态网页的特点缺点:速度慢,用户等待时间长。服务器对动态网页的处理过程包括打开、解释、执行、生成静态数据,甚至读写数据库,等等。所需时间大大多于静态网页。优点:动态网页的特点缺点:8687静态网页适用于:1.比较简单,和用户没有交互的网页,比如个人介绍、简历等;2.内容固定,显示信息量很少改变的网页,比如论文,报告等。静态网页和动态网页的适用情况动态网页适用于:1.用户数据需要管理的应用;2.信息内容变换很快的网页。例如产品列表,头条新闻等;3.需要和客户进行交互的应用。比如聊天室、论坛、电子商务、信息查询、全文检索等。静态网页适用于:静态网页和动态网页的适用情况动态网页适用于:8788B/S体系结构下,网页内容须经两次处理,则:把服务器端处理称为后台处理,所用技术称为后台技术,处理结果被发送到浏览器;把浏览器端处理称为前台处理,所用技术称为前台技术,处理结果向用户直接显示。2.2.4
前台技术和后台技术B/S体系结构下,网页内容须经两次处理,则:2.2.4前台8889在B/S体系结构下,作为“瘦”的客户端,前台技术相对是比较简单的,即接收服务器端传来的数据并解释执行,包括:显示控制:识别显示元素—文字、图形、图像、声音、动画等;识别并实现不同的显示格式显示:字体、字号、颜色、长、宽、高等;识别并显示为不同的效果—静止不动的、动态变化的,等等。程序执行。前台技术以HTML为领军代表,从二十世纪八十年代末至今天不断发展,相应地浏览器也随之不断升级。前台技术(浏览器端技术)在B/S体系结构下,作为“瘦”的客户端,前台技术相对是比较简8990在B/S体系结构下,网站服务器端需完成客户事务处理和数据处理工作,因此后台技术呈现多样化、复杂化,包括:面向静态网页的静态技术,实现单向的信息发布,即根据URL找到本机文件并直接发送到浏览器端;面向动态网页的动态Web技术,实现双向交互和数据管理,满足商业网站所需的资源存储、信息查询、客户交互等需求。包括:程序逻辑技术:实现服务器端与客户端间的实时交互和即时处理。允许客户端随URL一起发来其它用户数据,由服务器对此进行判断处理,并动态生成不同的结果数据,写入网页中,发送到客户端;数据库技术:进一步地存储和管理用户数据。后台技术(服务器端技术)在B/S体系结构下,网站服务器端需完成客户事务处理和数据处理9091目前各种Web数据库管理系统软件已经相当成熟,相关产品也很多,例如ORACLE、SYBASE、Informix、DB2、SQLServer、MySQL,以及Access等在Windows操作平台上,通常采用SQLServer和Access,在Linux和Unix平台上则大多采用MySQL或Oracle数据库软件目前各种Web数据库管理系统软件已经相当成熟,相关产品也很多9192LAMP:Linux+Apache+MySQL+PHP开源软件,成熟架构资源丰富,快速开发通用,跨平台衡量性能、质量、价格后,性价比高电商网站软件平台典型解决方案LAMP:Linux+Apache+MySQL+PHP电商网9293Windows2000+IIS+SQLServer+ASPSolarisforIntel+iPlanetWebServer+JSP+Oraacle其它电商网站软件平台解决方案Windows2000+IIS+SQLServer+ASP9394网站开发,即制作产生图片、文字、程序、网页、数据等各种网站资源,并把其整合为网页等各种文件。从开发对象是属于动态数据还是静态数据的角度,可把网站开发分为前台开发和后台开发两部分。因此,大型专业网站的开发过程中,网站前后台开发工作由各有所长的不同专业人员分别完成,必须进行统筹管理,以保证顺利衔接。而服务器解释型语言就是服务器先把代码执行好,然后发给浏览器来查看,一般通过浏览器查看不到它的源代码,用服务器解释型语言编写的网页一般都是动态网页。2.2.5网站开发网站开发,即制作产生图片、文字、程序、网页、数据等各种网站资9495网站前台开发是指对静态数据、静态网页的开发。静态数据,如html,xhtml,xml,css,javascript等,又称浏览器解释型语言,由浏览器解释执行,它的执行不涉及服务器,通过浏览器可以查看到它的源代码。静态数据,意味着面向用户的最终呈现,是整个网站的脸面,最好有美工参与开发。网站前台开发网站前台开发是指对静态数据、静态网页的开发。网站前台开发9596网站后台开发是指对动态数据、动态网页的开发。动态数据,如asp、php和jps等,又称服务器解释型语言,由Web服务器解释执行。动态数据,意味着各种网站功能的实现,由程序逻辑组成,一般由专业程序员参与开发。网站后台开发网站后台开发是指对动态数据、动态网页的开发。网站后台开发9697网站开发可以不含后台开发。例如个人介绍网站,只包含个人简历及相关图片,则不需要后台技术;电子商务网站功能复杂,一般都要进行带数据库的后台开发,如:网站前台是面向网站访问用户的,展示各种需要公开发布的信息,如产品信息、新闻信息、企业介绍、企业联系方式、提交留言等;网站后台主要完成数据库管理,例如产品、企业信息的增加、更新、删除等。通常需要用帐号及密码等信息进行登陆验证。
网站开发可以不含后台开发。例如个人介绍网站,只包含个人简历及9798网站前台开发工具网站前台的开发,主要是对直接面向用户呈现的各种元素的开发,如制作视频、声频、图像、文字等等,并整合为网页中的静态数据。常见工具有:网站前台开发工具网站前台的开发,主要是对直接面向用户呈现的各9899网站后台开发工具网站后台的开发,主要包括对程序功能的开发(编程)和对数据库的开发(实现数据管理),常见有:网站后台开发工具网站后台的开发,主要包括对程序功能的开发(编99100网站后台开发可以再分为程序开发和数据开发一般的有一定复杂度的网站可分为以下四层:(1)数据层:由各数据表组成的数据库;(2)数据接入层(DAL):负责与数据库的交互,供业务逻辑层调用;(3)业务逻辑层(BLL):调用数据接入层以获取数据,并为具体的业务需求提供支持;(4)用户界面层(UIL):负责呈现最终的用户界面。按这种分层进行开发,可以在网站布署时按不同层进行布署。网站后台开发可以再分为程序开发和数据开发一般的有一定复杂度的1001012.3网站运行的硬件平台网站运行的硬件平台网络设备服务器主机和浏览器主机交换机防火墙路由器在B/S体系结构下,浏览器端和服务器端都需建设硬件平台。由于浏览器端技术要求较低(硬件建设难度低),因此一般提到网站硬件平台建设,都默认为服务器端硬件平台。完整的硬件平台,包括如图以上各个部分。由此可见,网站硬件平台的建设需要相当高的网络专业水平。根据建站用户需求的不同,可以通过不同的建设方案获取其需要的网站运行硬件平台。网线2.3网站运行的硬件平台网站运行的硬件平台网络设备服务器主1011022.3.1虚拟主机—小型网站的硬件平台向ISP申请网站空间,支付空间租用费。拥有空间相当于是拥有一台可以运行在因特网上的主机,因此又称“虚拟主机”。虚拟主机,意味着网站运行硬件平台完全由ISP提供。优点:建设成本和维护成本低。缺点:网站性能没有保障。在企业发展电子商务的初级阶段,网站用户不多、流量不大、资金缺乏的情况下,可以考虑采用这种方案。2.3.1虚拟主机—小型网站的硬件平台向ISP申请网站空间102103小型网站小型网站是网站的最小型态,其特点是:内容少。例如只由静态网页组成,没有动态数据和数据库软件;流量和带宽要求低。例如只要求能接入网站。网站架构技术:租借空间,或者直接用自己的上网电脑;硬件上不区分Web服务器和数据库服务器,即Web服务器软件、数据库软件和数据库管理软件都在同一硬件主机;服务器软件和数据库软件都简单地采用常见技术,如IIS和ACCESS。小型网站小型网站是网站的最小型态,其特点是:1031042.3.2主机托管—中型网站硬件平台自行购置高性能的独立主机,托管在ISP的机房,并向ISP支付网络端口费用。优点:主机性能有保障;网络带宽性能有保障。当网站业务量规模变大,经济实力较雄厚时,可以考虑采用这种方案。2.3.2主机托管—中型网站硬件平台自行购置高性能的独立主104105中型网站当网站具备了一定特色,就能吸引更多用户,致使网站流量增加,同时网站响应速度变慢,此时需要建设中型网站。中型网站的特点:具备流量要求,需要一定带宽;网站内容丰富、类型复杂,如包括动态数据和数据库;采用技术主机托管硬件上会实现一定程度的物理分层(多台主机托管)中型网站当网站具备了一定特色,就能吸引更多用户,致使网站流量105106中型网站典型硬件架构(一)用户把三台主机构成的小型计算机网络托管到ISP的机房。其中两台安装Web服务器软件-Apache,第三台用作数据服务器。来自用户的请求可以分流到两台Web服务器上,若是一般的客户事务,则两台Web服务器可以自行处理;若包含数据请求,则再行接入数据服务器。通过三台主机实现负载平衡。中型网站典型硬件架构(一)用户把三台主机构成的小型计算机网络106107中型网站典型硬件架构(二)用户把四台主机构成的小型计算机网络托管到ISP的机房。其中两台安装Web服务器软件Apache,第三台用作日志(Blog)数据服务器,第四台用作用户数据服务器。与方案一不同的是,数据请求根据数据种类进一步分流到两台数据服务器。中型网站典型硬件架构(二)用户把四台主机构成的小型计算机网络107108采用“Lighttpd+Squid+Apache”形成处理链。Lighttpd在最前面专门处理静态内容的请求,而把动态内容的转给Squid;Squid中如果有该请示的内容且没有过期,则直接返回给Lighttpd,新请示或者过期的页面请求则转给ApacheWeb程序来处理。经过两级过滤,Apache需要处理的请示将大大减少。同时这种架构便于进行以下优化:由Lighttpd在前面统一把关,把不同的处理分散到多台计算机上进行每一级都是可以进行单独优化的,比如Lighttpd可以采用异步IO方式;每一级都可以使用多台机器来均衡负载,伸缩性很好。中型网站Web服务器端典型软件架构采用“Lighttpd+Squid+Apache”形成处理链1081092.3.3自建机群网络—大型网站硬件平台用户在本地自建计算机网络,通过ISP提供的专线接入因特网,向ISP支付专线租用费用。意味着网站运行硬件平台全部自行建设,包括路由器、交换机、主机服务器等等。优点:主机性能有保障;网络带宽性能有保障;发布信息量不受限制。缺点:建设成本和维护成本较高,需要专业技术人员的维护。成本从几万元到上百万元不等。大型企业可以考虑采用这种方案。2.3.3自建机群网络—大型网站硬件平台用户在本地自建计算109110企业由小到大不断发展的过程,有可能随着访问量的不断增加,经历从小型网站发展到大型网站,这同时也意味着网站架构的不断发展演变。
扩建网站硬件平台架构企业由小到大不断发展的过程,有可能随着访问量的不断增加,经历110111一、分离应用和数据
扩建网站硬件平台架构一、分离应用和数据扩建网站硬件平台架构111112二、前端页面缓存机制缓存,是内存和硬盘上的一段空间。把用户经常访问的静态资源,如一些logo、banner等,直接放在服务器内存或浏览器本地的硬盘空间上,当用户访问时先去这些位置寻找,即可缩短资源获取时间。缓存是对静态页面访问速度的改善方法,常用前端页面缓存技术是Squid。二、前端页面缓存机制缓存,是内存和硬盘上的一段空间。把用户经112113三、页面片断缓存机制把缓存技术进一步用在网页中的静态数据上可采用页面片段缓存技术(如ESI),对页面中相对静态的片段进行缓存三、页面片断缓存机制把
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论