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

1.2 繽紛的Web世界

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

1.2.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.2.2 管理Web中文本傳輸的協議——HTTP協議

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

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

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

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

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

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

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

(1)請求行。請求行由三個標記組成,即請求方法、請求URL和HTTP版本,它們用空格分隔。例如,GET /Index.html HTTP 1.0的意思就是檢索當前文件夾下的Index.html文件,使用的HTTP版本是HTTP 1.1。其中,HTTP 1.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個部分組成,這些部分與請求報文的部分基本相同,本節只介紹狀態行部分。

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

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

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

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

        HTTP/1.1 200 OK

HTTP響應代碼的說明如下所示。

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

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

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

4xx:客戶端錯誤。

1.2.3 靜態網頁——HTML語言

靜態網頁由超文本標記語言(HTML)組成,用來在頁面中顯示內容。代碼1.1 是一段靜態頁面,輸出“Hello Word!”。因為本章只是介紹Java Web的發展,不涉及語法知識,所以相關的HTML語句請參見第3章。

本案例參考光盤下的源代碼\01\HelloWorld.htm。

代碼1.1 靜態頁面

        <html>
          <head>
            <title>第一個靜態網頁</title>
          </head>
          <body>
            Hello World!
          </body>
        </html>

靜態網頁的擴展名為.htm,這樣會自動在瀏覽器中打開。本案例的運行效果在瀏覽器中打開,效果如圖1.3所示。

圖1.3 靜態頁面的效果

注意

不同的瀏覽器下效果可能稍有不同。

1.2.4 動態網頁——ASP、JSP和PHP

靜態網頁有很多問題,最明顯的就是無法與服務器進行交互,即用戶無法從服務器獲取信息并自動更新,也無法將用戶的信息提交到服務器。因此就出現了動態網頁。動態網頁一般由兩部分組成:靜態頁面和動態操作。通過HTML來顯示頁面,然后通過動態操作完成信息的更新。

完成這種操作的一般有三種開發語言:ASP、JSP和PHP。在Java Web開發中,通常都用JSP。JSP的具體語法和使用方法將在第6章介紹。代碼1.2是一個簡單的JSP輸出“世界,你好!”的程序。

本案例參考光盤下的源代碼\01\HelloWorld.jsp。

代碼1.2 動態頁面

        <%@ page contentType="text/html;charset=gb2312"%>
        <html>
            <head>
              <title>JSP第一個測試頁面</title>
            </head>
            <body>
              <%= "<h1>Hello World<br/>世界,你好!</h1>" %>
            </body>
        </html>

注意

JSP程序并不是直接運行在IE瀏覽器下的,需要相關配置,具體參考第6章的介紹。

主站蜘蛛池模板: 广水市| 铅山县| 横山县| 资阳市| 西平县| 介休市| 托克逊县| 台前县| 镇雄县| 平谷区| 永胜县| 理塘县| 南投市| 张家口市| 额济纳旗| 宁化县| 达州市| 澄城县| 开远市| 黄石市| 安宁市| 平远县| 牟定县| 昌图县| 北川| 岫岩| 察雅县| 南丹县| 原阳县| 远安县| 徐汇区| 延吉市| 喀喇沁旗| 阜城县| 毕节市| 永顺县| 利辛县| 全南县| 桓仁| 雅安市| 黄大仙区|