《Web網(wǎng)站設(shè)計(jì)與開發(fā)教程》課件第1章_第1頁(yè)
《Web網(wǎng)站設(shè)計(jì)與開發(fā)教程》課件第1章_第2頁(yè)
《Web網(wǎng)站設(shè)計(jì)與開發(fā)教程》課件第1章_第3頁(yè)
《Web網(wǎng)站設(shè)計(jì)與開發(fā)教程》課件第1章_第4頁(yè)
《Web網(wǎng)站設(shè)計(jì)與開發(fā)教程》課件第1章_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章Web技術(shù)概述1.1Web簡(jiǎn)介 1.2計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)1.3C/S與B/S體系結(jié)構(gòu)

【學(xué)習(xí)提示】熱鬧的互聯(lián)網(wǎng)離不開最基本的網(wǎng)絡(luò)協(xié)議、分布式計(jì)算等基礎(chǔ)技術(shù)。建議在學(xué)習(xí)Web的核心技術(shù)之前,首先了解(或復(fù)習(xí))網(wǎng)絡(luò)協(xié)議模型和體系結(jié)構(gòu)等知識(shí),特別要深入理解Web所依賴的HTTP協(xié)議,從本章開始將逐漸搭建穩(wěn)健的Web開發(fā)技術(shù)知識(shí)大廈。

1980年,作為瑞士日內(nèi)瓦的歐洲核子研究中心的軟件工程師,TimBerners-Lee遇到了一個(gè)許多人都經(jīng)常碰到的問(wèn)題:工作過(guò)程中,他需要頻繁地與世界各地的科學(xué)家們溝通聯(lián)系、交換數(shù)據(jù),還要不斷地回答一些問(wèn)題,這些重復(fù)而繁瑣的過(guò)程實(shí)在令他煩惱。他希望能夠有一種工具,讓大家可以通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)快捷地訪問(wèn)其他人的信息和數(shù)據(jù)。于是TimBerners-Lee開始在業(yè)余時(shí)間編寫一個(gè)軟件程序,利用一系列標(biāo)簽描述出信息的內(nèi)容和表現(xiàn)形式,再通過(guò)鏈接把這些文件串起來(lái),讓世界各地的人能夠輕松共享信息。1.1Web簡(jiǎn)介TimBerners-Lee把這種系統(tǒng)命名為“WorldWideWeb”。1990年11月,第一個(gè)Web服務(wù)器nxoc01.cern.ch開始運(yùn)行。

1993年,美國(guó)伊利諾伊州伊利諾大學(xué)的MarcAndreessen及其同事開發(fā)出了第一個(gè)支持圖文并茂展示網(wǎng)頁(yè)的Web瀏覽器——Mosaic,并成立了網(wǎng)景公司(NetscapeCommunicationCorp)。圖1-1為Mosaic瀏覽器的界面。

圖1-1Mosaic瀏覽器的界面

1994年10月,TimBerners-Lee聯(lián)合CERN、DARPA和歐盟成立了Web的核心技術(shù)機(jī)構(gòu)——W3C(WorldWideWebConsortium,萬(wàn)維網(wǎng)聯(lián)盟)。從那之后,Web的每一步發(fā)展、技術(shù)成熟和應(yīng)用領(lǐng)域的拓展都離不開W3C的努力。W3C會(huì)員(大約500名會(huì)員)包括軟、硬件產(chǎn)品及服務(wù)的提供商,內(nèi)容供應(yīng)商,團(tuán)體用戶,研究機(jī)構(gòu),標(biāo)準(zhǔn)制定機(jī)構(gòu)和政府部門,該組織已成為專門致力于創(chuàng)建Web相關(guān)技術(shù)標(biāo)準(zhǔn)并促進(jìn)Web向更深、更廣發(fā)展的國(guó)際組織。從技術(shù)方面看,Web通過(guò)超文本標(biāo)記語(yǔ)言(HyperTextMarkupLanguage,HTML)實(shí)現(xiàn)信息與信息的連接;通過(guò)統(tǒng)一資源標(biāo)識(shí)符(UniformResourceIdentifier,URI)實(shí)現(xiàn)全球信息的精確定位;通過(guò)超文本傳輸協(xié)議(HyperTextTransferProtocol,HTTP)實(shí)現(xiàn)信息在互聯(lián)網(wǎng)中的傳輸。

作為一種典型的分布式應(yīng)用架構(gòu),Web應(yīng)用中的每一次信息交換都要涉及客戶端和服務(wù)端兩個(gè)層面。因此,Web開發(fā)技術(shù)大體上也可以分為客戶端技術(shù)和服務(wù)端技術(shù)兩大類。Web客戶端的主要任務(wù)是采用HTML語(yǔ)言及其相關(guān)技術(shù)(包括CSS和JavaScript等)獲取用戶的輸入并根據(jù)用戶的訪問(wèn)需求展現(xiàn)信息內(nèi)容;Web服務(wù)器端的主要任務(wù)是按照用戶的輸入和需求搜索相關(guān)數(shù)據(jù)組成完整的HTML文檔傳輸給客戶端。

近年來(lái),隨著Web應(yīng)用需求的不斷增加及Web開發(fā)技術(shù)的飛速發(fā)展,出現(xiàn)了大量的Web開發(fā)工具、程序庫(kù)和框架。面對(duì)這些紛繁復(fù)雜的技術(shù),如何選擇學(xué)習(xí)的入口,如何掌握技術(shù)發(fā)展的趨勢(shì),如何應(yīng)對(duì)大型的Web開發(fā)項(xiàng)目,這些問(wèn)題的解決都需要從理論和技術(shù)的基礎(chǔ)出發(fā),通過(guò)適當(dāng)?shù)陌咐龑?shí)踐,逐步找到知識(shí)的脈絡(luò)和規(guī)律。扎實(shí)的理論和技術(shù)基礎(chǔ)不僅可以幫助我們進(jìn)行Web的開發(fā),而且有利于在實(shí)踐中不斷學(xué)習(xí)、掌握和應(yīng)用新的理論與技術(shù),形成“可持續(xù)發(fā)展”的知識(shí)結(jié)構(gòu)。

1.2.1OSI網(wǎng)絡(luò)協(xié)議模型

開放式通信系統(tǒng)互連(OpenSystemInterconnection,OSI)參考模型是國(guó)際標(biāo)準(zhǔn)化組織(ISO)提出的一個(gè)試圖使各種計(jì)算機(jī)在世界范圍內(nèi)互連為網(wǎng)絡(luò)的標(biāo)準(zhǔn)框架。OSI參考模型通過(guò)劃分層次,簡(jiǎn)化了計(jì)算機(jī)之間相互通信所要完成的任務(wù)。1.2計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)在OSI參考模型中,它的7個(gè)層次分別表示了不同的網(wǎng)絡(luò)功能,每一層可完成特定的功能。

●物理層(第1層):該層提供電氣的、機(jī)械的、軟件的或者實(shí)用的方法來(lái)激活和維護(hù)系統(tǒng)間的物理鏈路。本層使用雙絞線、同軸電纜、光纖等物理介質(zhì)。

●數(shù)據(jù)鏈路層(第2層):該層在物理層的基礎(chǔ)上向網(wǎng)絡(luò)層提供數(shù)據(jù)傳輸服務(wù)。它處理錯(cuò)誤通告、網(wǎng)絡(luò)拓?fù)浜土髁靠刂?。本層使用介質(zhì)訪問(wèn)控制(MAC)地址,這種地址也稱為物理地址或硬件地址?!窬W(wǎng)絡(luò)層(第3層):該層決定把數(shù)據(jù)從一個(gè)地方移到另一個(gè)地方的最佳路徑。路由器在這一層上運(yùn)行。本層使用邏輯地址方案,以便管理者能夠進(jìn)行管理。互聯(lián)網(wǎng)中使用IP協(xié)議的尋址方案,此外還有ApplTalk、DECnet、VINES和IPX等尋址方案。

●傳輸層(第4層):該層把數(shù)據(jù)進(jìn)行分段或重組成數(shù)據(jù)流。傳輸層具有潛在的能力保證一個(gè)連接并提供其可靠的傳輸。

●會(huì)話層(第5層):該層建立、維持和管理應(yīng)用進(jìn)程之間的會(huì)話,如SQL、NFS、RPC等?!癖硎緦?第6層):該層提供了數(shù)據(jù)表示和編碼格式,還有數(shù)據(jù)傳輸語(yǔ)法的協(xié)商。它確保從網(wǎng)絡(luò)抵達(dá)的數(shù)據(jù)能被應(yīng)用進(jìn)程使用,應(yīng)用進(jìn)程發(fā)送的信息能在網(wǎng)絡(luò)上傳送,如ASCII、MPEG、JPEG等。

●應(yīng)用層(第7層):該層定義了運(yùn)行在不同客戶端系統(tǒng)上的應(yīng)用程序進(jìn)程如何相互傳遞報(bào)文。1.2.2TCP/IP協(xié)議棧

傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(TransmissionControlProtocol/InternetProtocol,TCP/IP)是Internet最基本的協(xié)議,也是國(guó)際互聯(lián)網(wǎng)的基礎(chǔ)。TCP/IP協(xié)議其實(shí)是一組協(xié)議,但傳輸控制協(xié)議(TCP)和因特網(wǎng)互聯(lián)協(xié)議(IP)是其中最重要的兩個(gè)協(xié)議。

TCP/IP協(xié)議的基本傳輸單位是數(shù)據(jù)包。TCP負(fù)責(zé)把原始文件分成若干數(shù)據(jù)包,這些包通過(guò)網(wǎng)絡(luò)傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件。IP負(fù)責(zé)處理每個(gè)包的地址部分,使這些包正確地到達(dá)目的地。網(wǎng)絡(luò)上的網(wǎng)關(guān)計(jì)算機(jī)根據(jù)信息的地址來(lái)進(jìn)行路由選擇。雖然來(lái)自同一文件的分包路由也有可能不同,但最后會(huì)在目的地匯合。如果傳輸過(guò)程中出現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)失真等情況,TCP/IP協(xié)議會(huì)自動(dòng)要求數(shù)據(jù)重新傳輸,并重新組包。

TCP/IP協(xié)議棧分為四層,它與OSI協(xié)議棧的對(duì)應(yīng)關(guān)系如圖1-2所示。

圖1-2TCP/IP協(xié)議棧與OSI協(xié)議棧的對(duì)應(yīng)關(guān)系

TCP/IP應(yīng)用層協(xié)議包括超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)和簡(jiǎn)單郵件傳輸協(xié)議(SMTP)等,這些協(xié)議在網(wǎng)站開發(fā)和應(yīng)用中被廣泛使用。其中,HTTP更是Web應(yīng)用中的關(guān)鍵環(huán)節(jié)。1.2.3HTTP協(xié)議

超文本傳輸協(xié)議(HTTP)定義了Web客戶端和Web服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)。通常,由Web客戶端(也可稱為HTTP客戶端)發(fā)起一個(gè)請(qǐng)求,建立一個(gè)到Web服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接。Web服務(wù)器端(也可稱為HTTP服務(wù)器端)則在那個(gè)端口監(jiān)聽客戶端發(fā)送過(guò)來(lái)的請(qǐng)求。一旦收到請(qǐng)求,服務(wù)器就向客戶端發(fā)回一個(gè)狀態(tài)行和響應(yīng)的消息,消息的內(nèi)容可以是請(qǐng)求的HTML文件、錯(cuò)誤消息或者其他一些信息?;贖TTP協(xié)議的信息交換過(guò)程包括四個(gè)過(guò)程:建立連接、發(fā)送請(qǐng)求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。HTTP協(xié)議的交互主要由請(qǐng)求和響應(yīng)組成,請(qǐng)求是指客戶端發(fā)起向服務(wù)器請(qǐng)求資源的消息,而響應(yīng)是服務(wù)器根據(jù)客戶端的請(qǐng)求回送給客戶端的資源消息。

1.HTTP請(qǐng)求信息

發(fā)出的請(qǐng)求信息(RequestMessage)包括請(qǐng)求行(一個(gè))、消息報(bào)頭(多個(gè))和請(qǐng)求正文,格式為:

請(qǐng)求消息=請(qǐng)求行|消息報(bào)頭CRLF[實(shí)體內(nèi)容]

請(qǐng)求行的格式為:

MethodSPRequest-URISPHTTP-VersionCRLF

其中:SP表示空格;Request-URI遵循URI格式,在此字段為星號(hào)(*)時(shí),說(shuō)明請(qǐng)求并不用于某個(gè)特定的資源地址,而是用于服務(wù)器本身;HTTP-Version表示支持的HTTP版本,例如為HTTP/1.1;CRLF表示換行回車符。下面的語(yǔ)句表示從/images目錄下請(qǐng)求logo.gif這個(gè)文件:

GET/images/logo.gifHTTP/1.1

HTTP/1.1協(xié)議中共定義了八種方法來(lái)聲明對(duì)指定的資源的不同操作方式,GET和HEAD方法應(yīng)該被所有的通用Web服務(wù)器支持,其他所有方法的實(shí)現(xiàn)是可選的。這些方法如表1-1所示。HTTP/1.1協(xié)議中定義的請(qǐng)求頭字段如表1-2所示。表1-1HTTP/1.1協(xié)議中的方法及其含義表1-2HTTP/1.1協(xié)議中定義的請(qǐng)求頭字段一個(gè)GET請(qǐng)求的示例如下:

GET/hello.htmHTTP/1.1(CRLF)

Accept:*/*(CRLF)

Accept-Language:zh-cn(CRLF)

Accept-Encoding:gzip,deflate(CRLF)

If-Modified-Since:Wed,17Oct200702:15:55GMT(CRLF)

If-None-Match:W/"158-1192587355000"(CRLF)

User-Agent:Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)(CRLF)

Host:62:8080(CRLF)

Connection:Keep-Alive(CRLF)

(CRLF)

2.HTTP響應(yīng)信息

HTTP響應(yīng)消息由HTTP協(xié)議頭和Web內(nèi)容構(gòu)成。Web服務(wù)器收到一個(gè)請(qǐng)求,就會(huì)立刻解釋請(qǐng)求中所用到的方法,并開始處理應(yīng)答。響應(yīng)消息的格式如下:

響應(yīng)消息=狀態(tài)行(通用信息頭|響應(yīng)頭|實(shí)體頭)CRLF[實(shí)體內(nèi)容]

響應(yīng)消息的第一行是狀態(tài)行(Stauts-Line),由協(xié)議版本以及狀態(tài)碼和相關(guān)的文本短語(yǔ)組成。狀態(tài)碼的第一位數(shù)字定義響應(yīng)類型,有五種值,如表1-3所示。表1-3HTTP響應(yīng)狀態(tài)碼其中,很常見的狀態(tài)碼有:“200”表示成功,“404”表示資源未找到。下面的代碼為一個(gè)HTTP響應(yīng)消息:

HTTP/1.1200OK

Date:Wed,17Oct201003:01:59GMT

Server:Apache-Coyote/1.1

Content-Length:1580

Content-Type:text/html

Cache-Control:private

Expires:Wed,17Oct201003:01:59GMT

Content-Encoding:gzip

<html>

</html>

1.3.1客戶機(jī)/服務(wù)器體系結(jié)構(gòu)

客戶機(jī)/服務(wù)器(client/server,C/S)體系結(jié)構(gòu)分為客戶機(jī)和服務(wù)器兩層??蛻魴C(jī)不是毫無(wú)運(yùn)算能力的輸入、輸出設(shè)備,而是具有一定的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)處理能力的設(shè)備。通過(guò)把應(yīng)用軟件的計(jì)算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運(yùn)算量。1.3C/S與B/S體系結(jié)構(gòu)采用C/S結(jié)構(gòu)通常是為了把大量資源通過(guò)網(wǎng)絡(luò)連接起來(lái)構(gòu)成高效的計(jì)算環(huán)境,這些資源可以包括文件服務(wù)器、打印機(jī)服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、郵件服務(wù)器等。通過(guò)這種方式,各種服務(wù)器提供的資源就可以被多個(gè)客戶機(jī)所訪問(wèn)。通常,客戶機(jī)不僅可以為用戶提供適當(dāng)?shù)慕缑嬉岳眠@些服務(wù)器,還可以提供一定的本地處理能力來(lái)運(yùn)行本地應(yīng)用。在C/S體系結(jié)構(gòu)中,如果由客戶機(jī)負(fù)責(zé)完成大量的業(yè)務(wù)邏輯并且直接訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,那么這種結(jié)構(gòu)就被稱為兩層架構(gòu)(2-tierarchitecture),這也是早期C/S系統(tǒng)最常見的結(jié)構(gòu)。在兩層架構(gòu)中,由于大量的業(yè)務(wù)邏輯由客戶機(jī)完成,這對(duì)客戶機(jī)軟件的開發(fā)、維護(hù)都提出了很高的要求。為了便于開發(fā)和維護(hù)信息系統(tǒng),在傳統(tǒng)的兩層架構(gòu)的基礎(chǔ)上發(fā)展成三層架構(gòu)(3-tierapplication,也稱為多層架構(gòu))。

通常三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問(wèn)層(DAL)。其中,表示層負(fù)責(zé)展現(xiàn)用戶界面,是用戶提交數(shù)據(jù)或請(qǐng)求、獲取數(shù)據(jù)結(jié)果,以多種方式觀看數(shù)據(jù)的用戶接口;業(yè)務(wù)邏輯層封裝了系統(tǒng)主要的業(yè)務(wù)邏輯,負(fù)責(zé)完成系統(tǒng)的數(shù)據(jù)處理和工作流程;數(shù)據(jù)訪問(wèn)層負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和數(shù)據(jù)的增添、刪除、修改、查找等。1.3.2瀏覽器/服務(wù)器體系結(jié)構(gòu)

瀏覽器/服務(wù)器(Browser/Server,B/S)體系結(jié)構(gòu)是隨著Internet技術(shù)的興起,對(duì)傳統(tǒng)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)Web瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。

B/S結(jié)構(gòu)利用不斷成熟的WWW瀏覽器技術(shù),結(jié)合在瀏覽器運(yùn)行JavaScript程序的能力,在通用瀏覽器上實(shí)現(xiàn)了原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能。B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序更加適合開發(fā)多層架構(gòu)的系統(tǒng),如圖1-3所示。

圖1-3B/S三層架構(gòu)的系統(tǒng)結(jié)構(gòu)圖

B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是個(gè)巨大的進(jìn)步。在搭建信息系統(tǒng)時(shí),兩者也體現(xiàn)出明顯的不同之處:

(1)硬件環(huán)境不同:傳統(tǒng)的C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境和局域網(wǎng)之間再通過(guò)專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù);B/S適合建立在廣域網(wǎng)之上,不必是專門的網(wǎng)絡(luò)硬件環(huán)境。

(2)對(duì)安全要求不同:傳統(tǒng)的C/S一般面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng),一般高度機(jī)密的信息系統(tǒng)適宜采用C/S結(jié)構(gòu);B/S通常建立在廣域網(wǎng)之上,對(duì)安全的控制能力相對(duì)較弱,面向的是不可知的用戶群,因此更適合發(fā)布各種公開信息。

(3)對(duì)程序架構(gòu)不同:傳統(tǒng)的C/S結(jié)構(gòu)可以更加注重流程,可以對(duì)權(quán)限多層次校驗(yàn);B/S系統(tǒng)所依托的HTTP協(xié)議缺少對(duì)流程、狀態(tài)等方面的管理,因此在實(shí)際的B/S系統(tǒng)開發(fā)中需要采用更加優(yōu)化的開發(fā)和運(yùn)行平臺(tái),包括微軟的DOTNET平臺(tái)或JavaEE平臺(tái)等。

(4)系統(tǒng)維護(hù)不同:傳統(tǒng)的C/S結(jié)構(gòu)意味著在用戶的計(jì)算機(jī)中必須安裝特定的客戶端軟件,如果系統(tǒng)出現(xiàn)了問(wèn)題或者需要對(duì)系統(tǒng)進(jìn)行升級(jí),就必須在每一個(gè)客

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論