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

下載本文檔

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

文檔簡介

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

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

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

1993年,美國伊利諾伊州伊利諾大學(xué)的MarcAndreessen及其同事開發(fā)出了第一個支持圖文并茂展示網(wǎng)頁的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ǎng)聯(lián)盟)。從那之后,Web的每一步發(fā)展、技術(shù)成熟和應(yīng)用領(lǐng)域的拓展都離不開W3C的努力。W3C會員(大約500名會員)包括軟、硬件產(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ā)展的國際組織。從技術(shù)方面看,Web通過超文本標(biāo)記語言(HyperTextMarkupLanguage,HTML)實現(xiàn)信息與信息的連接;通過統(tǒng)一資源標(biāo)識符(UniformResourceIdentifier,URI)實現(xiàn)全球信息的精確定位;通過超文本傳輸協(xié)議(HyperTextTransferProtocol,HTTP)實現(xiàn)信息在互聯(lián)網(wǎng)中的傳輸。

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

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

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

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

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

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

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

●會話層(第5層):該層建立、維持和管理應(yīng)用進(jìn)程之間的會話,如SQL、NFS、RPC等?!癖硎緦?第6層):該層提供了數(shù)據(jù)表示和編碼格式,還有數(shù)據(jù)傳輸語法的協(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)程如何相互傳遞報文。1.2.2TCP/IP協(xié)議棧

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

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

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

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

TCP/IP應(yīng)用層協(xié)議包括超文本傳輸協(xié)議(HTTP)、文件傳輸協(xié)議(FTP)和簡單郵件傳輸協(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ù)器端請求和應(yīng)答的標(biāo)準(zhǔn)。通常,由Web客戶端(也可稱為HTTP客戶端)發(fā)起一個請求,建立一個到Web服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接。Web服務(wù)器端(也可稱為HTTP服務(wù)器端)則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服務(wù)器就向客戶端發(fā)回一個狀態(tài)行和響應(yīng)的消息,消息的內(nèi)容可以是請求的HTML文件、錯誤消息或者其他一些信息。基于HTTP協(xié)議的信息交換過程包括四個過程:建立連接、發(fā)送請求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。HTTP協(xié)議的交互主要由請求和響應(yīng)組成,請求是指客戶端發(fā)起向服務(wù)器請求資源的消息,而響應(yīng)是服務(wù)器根據(jù)客戶端的請求回送給客戶端的資源消息。

1.HTTP請求信息

發(fā)出的請求信息(RequestMessage)包括請求行(一個)、消息報頭(多個)和請求正文,格式為:

請求消息=請求行|消息報頭CRLF[實體內(nèi)容]

請求行的格式為:

MethodSPRequest-URISPHTTP-VersionCRLF

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

GET/images/logo.gifHTTP/1.1

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

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ù)器收到一個請求,就會立刻解釋請求中所用到的方法,并開始處理應(yīng)答。響應(yīng)消息的格式如下:

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

響應(yīng)消息的第一行是狀態(tài)行(Stauts-Line),由協(xié)議版本以及狀態(tài)碼和相關(guān)的文本短語組成。狀態(tài)碼的第一位數(shù)字定義響應(yīng)類型,有五種值,如表1-3所示。表1-3HTTP響應(yīng)狀態(tài)碼其中,很常見的狀態(tài)碼有:“200”表示成功,“404”表示資源未找到。下面的代碼為一個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ù)器兩層。客戶機(jī)不是毫無運(yùn)算能力的輸入、輸出設(shè)備,而是具有一定的數(shù)據(jù)存儲和數(shù)據(jù)處理能力的設(shè)備。通過把應(yīng)用軟件的計算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運(yùn)算量。1.3C/S與B/S體系結(jié)構(gòu)采用C/S結(jié)構(gòu)通常是為了把大量資源通過網(wǎng)絡(luò)連接起來構(gòu)成高效的計算環(huán)境,這些資源可以包括文件服務(wù)器、打印機(jī)服務(wù)器、數(shù)據(jù)庫服務(wù)器、郵件服務(wù)器等。通過這種方式,各種服務(wù)器提供的資源就可以被多個客戶機(jī)所訪問。通常,客戶機(jī)不僅可以為用戶提供適當(dāng)?shù)慕缑嬉岳眠@些服務(wù)器,還可以提供一定的本地處理能力來運(yùn)行本地應(yīng)用。在C/S體系結(jié)構(gòu)中,如果由客戶機(jī)負(fù)責(zé)完成大量的業(yè)務(wù)邏輯并且直接訪問數(shù)據(jù)庫服務(wù)器,那么這種結(jié)構(gòu)就被稱為兩層架構(gòu)(2-tierarchitecture),這也是早期C/S系統(tǒng)最常見的結(jié)構(gòu)。在兩層架構(gòu)中,由于大量的業(yè)務(wù)邏輯由客戶機(jī)完成,這對客戶機(jī)軟件的開發(fā)、維護(hù)都提出了很高的要求。為了便于開發(fā)和維護(hù)信息系統(tǒng),在傳統(tǒng)的兩層架構(gòu)的基礎(chǔ)上發(fā)展成三層架構(gòu)(3-tierapplication,也稱為多層架構(gòu))。

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

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

B/S結(jié)構(gòu)利用不斷成熟的WWW瀏覽器技術(shù),結(jié)合在瀏覽器運(yùn)行JavaScript程序的能力,在通用瀏覽器上實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強(qiáng)大功能。B/S結(jié)構(gòu)應(yīng)用程序相對于傳統(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)用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是個巨大的進(jìn)步。在搭建信息系統(tǒng)時,兩者也體現(xiàn)出明顯的不同之處:

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論