JavaWeb總結(一)

在學習Web應用程序客戶端界面設計時,咱們已經知道組成一個基本的Web應用程序須要Web服務器、Web客戶端瀏覽器、HTTP協議以及靜態HTML文件。瀏覽器

Web服務器:接收客戶端請求,而後向客戶端返回一些結果;服務器

瀏覽器:容許用戶請求服務器上的某個資源,而且向用戶顯示請求的結果;網絡

HTML:告訴用戶瀏覽器怎麼向用戶顯示內容;學習

HTTP:Web上客戶端和服務器之間通訊所用的協議;編碼

HTTP

HTTP是一種超文本傳送協議(HyperText Transfer Protocol),是一套計算機在網絡中通訊的一種規則。在TCP/IP體系結構中,HTTP屬於應用層協議,位於TCP/IP協議的頂層。HTTP是一種無狀態的協議(在Web瀏覽器[客戶端]和Web服務器之間不須要創建持久的連接)。整個過程就是當一個客戶端向服務器發送一個請求(Request),而後WEB服務器返回一個響應(Response)。以後連接就關閉了。HTTP遵循請求/響應(Request/Response)模型的,全部的通訊交互都被構造在一套請求和響應模型中。
HTTP定義的事務處理由如下四個步驟組成spa

客戶端和Web服務器創建連接;設計

客戶端發送HTTP請求;3d

服務器端接收客戶端的HTTP請求,生成HTTP響應回發;代理

客戶端和Web服務器創建連接;blog

發送請求信息

一旦創建了TCP連接,Web瀏覽器就會向Web服務器發送請求命令。HTTP協議未來自於客戶端的請求信息封裝成HTTP請求,它包括請求行、請求頭、消息體以及分隔請求頭和消息體的空行;
請求行:請求行是一個ASCII文本行,由三個標記組成:請求的HTTP方法、請求的URL、HTTP版本。中間用空格分開

在HTTP版本1.1中,定義了有八種可能的HTTP請求方法

  Ⅰ GET:因爲向服務器檢索資源;

  Ⅱ POST:因爲向服務器發送數據,並要求指定的URL處理;

  Ⅲ HEAD:與GET方法相同,服務器只返回狀態行和頭標,並不返回請求文檔;

  Ⅳ PUT:請求服務器保存請求數據做爲指定URL新內容;

  Ⅴ DELETE:請求服務器刪除URL中命名的資源;

  Ⅵ OPTIONS:請求關於服務器支持的請求方法信息;

  Ⅶ CONNECT:已文檔化但當前未實現的一個方法,預留作隧道處理;
在這些方法中,咱們最經常使用的是GET和POST方法,其它幾種方法對於Web開發者來講不是很經常使用。

方法

爲該方法爲該方法的請求

POST

在瀏覽器地址欄輸入URL;
在當前網頁點擊HTML連接;
在HTML表單中設置表單的method='GET'或者不設置(默認爲GET方法提交),並提交表單;

GETGET

一般被用於發送私密信息或者大量信息,或者上傳文件。若是一個應用程序須要修改數據或者添加數據,而且經過HTTP發送請求,那麼就應該使用POST方法。

請求頭:

HTTP協議使用HTTP頭來傳遞請求的元信息,HTTP頭是一個用冒號分隔的名稱/值對,冒號前面是HTTP頭的名稱,後面是HTTP的值。常見的請求頭由用戶代理資料、能夠接受的格式、語言以及內容編碼,這些信息用於告訴服務器客戶端是什麼,客戶端想要獲得什麼格式的回饋信息等。

空行:

發送回車符和退行,通知服務器一下再也不有請求頭。

消息體:

HTTP請求中帶有查詢字符串時,若是是GET方法,查詢字符串或表單數據附加在請求行中,那麼消息體中就沒有內容;若是是POST方法,查詢字符串或表單數據就添加在消息體中。

回送響應消息

Web服務器解析請求,定位並讀取指定的資源。將文件以及其它信息組成HTTP響應返回到客戶端。HTTP響應包括:狀態行、響應頭、消息體以及分隔消息頭和響應頭的一個空行。

狀態行:

每一個HTTP響應以一個狀態行開頭。狀態行由HTTP協議版本、響應狀態碼和響應描述組成,三者之間用空格分開。

響應狀態碼是一個三位的數字,它分爲如下幾個組:

  Ⅰ 100~199:信息,請求收到,繼續處理;

  Ⅱ 200~299:成功,行爲被成功地接受、理解和採納;

  Ⅲ 300~399:重定向,爲了完成請求,必須進一步執行的動做;

  Ⅳ 400~499:客戶端錯誤,請求包含語法錯誤或者請求沒法實現;

  Ⅴ 500~599:服務器錯誤,服務器不能實現一種明顯的無效請求;

每個響應狀態碼都有相關聯的字符串響應描述。

響應頭:

響應頭與請求頭同樣,也是一個用冒號分隔的名稱/值對,冒號前面是HTTP頭的名稱,後面是HTTP頭的值。典型的響應頭包括內容描述、內容長度、時間郵戳、服務器信息、內容最後更改的時間。這些信息幫助客戶端獲得發送過來的內容是什麼、內容的大小、數據是否比之前一次響應更新。

在響應頭中,最重要的HTTP頭是Content-Type,它指定MIME類型。MIME類型告訴瀏覽器要接受的數據是什麼類型,這樣瀏覽器才知道如何顯示這些數據。這個值一般與HTTP請求頭中的Accept相關

空白行:

最後一個響應頭以後是一個空行,發送回車符和退行,代表如下再也不有響應頭。

消息體:

要發送給客戶端的HTML文檔或其餘要顯示的內容等。Web服務器把發送給客戶端的文檔信息放在消息體中。

關閉鏈接

HTTP響應到達客戶端後,瀏覽器先解析HTTP響應中的狀態行,查看請求是否成功的狀態代碼。而後解析每個響應頭,讀取響應消息體,將消息體渲染在瀏覽器頁面上。

一個HTML文檔可能包含其它的須要被載入的資源,瀏覽器會識別,並對這些資源再進行額外的請求,這個過程能夠一直循環到全部的數據都按照響應頭標中規定的格式恢復到頁面中。數據傳送完畢,服務器關閉鏈接,即無狀態協議。

相關文章
相關標籤/搜索