官术网_书友最值得收藏!

1.3 網頁的瀏覽原理

前面介紹了B/S模型的優越性,這種模式就是在Web開發中,通過瀏覽器和服務器的交互來實現系統的業務邏輯。這種模式組成的應用程序一般稱為Web應用程序。本節就對Web的一些基礎知識進行描述。

1.3.1 Web是什么

Web出現于1989年3月,由歐洲粒子物理研究所(CERN)的科學家Tim Berners-Lee發明。1990年11月,第一個Web服務器正式運行,這時通過Web瀏覽器看到了最早的Web頁面。1991年Web技術標準正式發布。1993年,第一個圖形界面的瀏覽器Mosaic開發成功,1995年著名的Netscape Navigator瀏覽器問世。隨后,微軟公司推出了著名的IE瀏覽器(Windows操作系統默認安裝IE瀏覽器)。目前,與Web相關的各種技術標注都由著名的W3C組織(World Wide Web Consortium)管理和維護。

Web是一個分布式的超媒體信息系統,它將大量的信息分布在網上。目的就是為人們提供更多的多媒體網絡信息服務。從技術層面上看,Web技術的核心有3點:


●超文本傳輸協議(HTTP)協議,實現網絡的信息傳輸。

●統一資源定位符(URL),實現互聯網信息的定位的統一標識(如http://www.sohu.com中的“www.sohu.com”)。

●超文本標記語言(HTML),實現信息的表示與存儲。


1.3.2 HTTP超文本傳輸協議是什么

超文本傳輸協議HTTP(HyperText Transfer Protocol)是專門為Web設計的一種應用層協議。常用的Web服務器軟件有Apache、IIS等,Web瀏覽器軟件包括IE、Netscape、Mozilla Firefox等。

當用戶在瀏覽器地址欄中輸入網址或通過超鏈接訪問目的網站時,都向目標主機(Web服務器)發送一個HTTP請求。HTTP定義的信息交互處理由以下4步組成:


●瀏覽器與Web服務器建立連接。

●瀏覽器向服務器提出請求。

●如果請求被接受,則服務器送回響應,在響應中包括狀態碼和所需要的文件。

●瀏覽器和Web服務器斷開連接。


HTTP向服務器發出一段請求也就是一段報文,是由以下4個部分組成的文本。

(1)請求行。請求行有3個標記組成,即請求方法、請求URL和HTTP版本,它們用空格分隔。例如,GET /Index.html HTTP 1.0的意思就是檢索當前文件夾下的Index.html文件,使用的HTTP版本是HTTP1.1。其中HTTP1.1規范定義了8種請求的方法。


●Get:檢索URL中標識資源的一個簡單請求。

●Head:與Get方法相同,服務器只返回狀態行和頭標,并不返回請求文檔。

●Post:服務器接收被寫入客戶端輸出流中的數據請求。

●Put:服務器保存請求數據作為指定URL新內容的請求。

●Delete:服務器刪除URL中命名的資源的請求。

●Options:關于服務器支持的請求方法信息的請求。

●Trace:Web服務器反饋HTTP請求和頭標的請求。

●Connect:已文檔化但當前未實現的一個方法,預留做隧道處理。


在Web應用中,通常只使用Get和Post方法。

(2)請求頭標。由關鍵字和值對組成,每行一對,關鍵字和值用冒號(:)分隔。請求頭標通知服務器關于客戶端的功能和識別,典型的請求頭標有:


●User-Agent:客戶端廠家和版本。

●Accept:客戶端可識別的內容類型列表。

●Content-Length:附加到請求的數據字節。


(3)空行。最后一個請求頭標之后是一個空行,發送回車符和退行,通知服務器不再有頭標。

(4)請求數據。使用Post發送數據。

服務器接到請求后,解析請求,如果請求的是靜態資源,如文檔、圖片等,則將請求的資源返回給瀏覽器;如果請求的動態的服務器程序,如:Servlet、JSP、ASP、CGI等,則在服務器端運行程序后返回運行的結果,通常的運行結果是生成的一個HTML文檔。一個響應由4個部分組成,這些部分與請求報文的部分基本相同,本節只介紹狀態行部分。

狀態行由3個部分組成:HTTP版本、響應代碼和響應描述。


●HTTP版本:向客戶端指明其可以理解的最高版本。

●響應代碼:三位的數字代碼,指出請求的成功或失敗,如果失敗則指明原因。

●響應描述:為相應代碼的可讀性解釋。例如:


      HTTP/1.1 200 OK

HTTP響應代碼的說明如下:


●1xx:信息請求收到,繼續處理。

●2xx:成功,行為被成功的接收、理解和采納。

●3xx:重定向,為了完成請求,必須進一步執行動作。

●4xx:客戶端錯誤。


主站蜘蛛池模板: 渑池县| 安庆市| 布拖县| 永定县| 甘南县| 澄江县| 红河县| 孟津县| 清流县| 大余县| 崇礼县| 高要市| 寿宁县| 于田县| 东源县| 吉林市| 札达县| 寻乌县| 中超| 额济纳旗| 漯河市| 桃源县| 乡城县| 阿合奇县| 通州市| 台前县| 英山县| 贺州市| 蒙城县| 民乐县| 宜都市| 沈丘县| 武义县| 同心县| 长汀县| 马山县| 中西区| 汉源县| 曲阳县| 禹城市| 嘉禾县|