1.HTTP簡介
- HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。
- HTTP是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)。
2.HTTP工作原理
HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。
Web服務(wù)器有:Apache服務(wù)器,IIS服務(wù)器(Internet Information Services)等。
Web服務(wù)器根據(jù)接收到的請求后,向客戶端發(fā)送響應(yīng)信息。
HTTP默認(rèn)端口號為80,但是你也可以改為8080或者其他端口。
2.1HTTP三點(diǎn)注意事項(xiàng):
- HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務(wù)器處理完客戶的請求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。
- HTTP是媒體獨(dú)立的:這意味著,只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容,任何類型的數(shù)據(jù)都可以通過HTTP發(fā)送。客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型。
- HTTP是無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。
以下圖表展示了HTTP協(xié)議通信流程:

3.HTTP 消息結(jié)構(gòu)
- HTTP是基于客戶端/服務(wù)端(C/S)的架構(gòu)模型,通過一個可靠的鏈接來交換信息,是一個無狀態(tài)的請求/響應(yīng)協(xié)議。
- 一個HTTP"客戶端"是一個應(yīng)用程序(Web瀏覽器或其他任何客戶端),通過連接到服務(wù)器達(dá)到向服務(wù)器發(fā)送一個或多個HTTP的請求的目的。
- 一個HTTP"服務(wù)器"同樣也是一個應(yīng)用程序(通常是一個Web服務(wù),如Apache Web服務(wù)器或IIS服務(wù)器等),通過接收客戶端的請求并向客戶端發(fā)送HTTP響應(yīng)數(shù)據(jù)。
- HTTP使用統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers, URI)來傳輸數(shù)據(jù)和建立連接。
- 一旦建立連接后,數(shù)據(jù)消息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴(kuò)展(MIME)[RFC2045]來傳送。
4.客戶端請求消息
客戶端發(fā)送一個HTTP請求到服務(wù)器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)四個部分組成。

5.服務(wù)器響應(yīng)消息
HTTP響應(yīng)也由四個部分組成,分別是:狀態(tài)行、消息報(bào)頭、空行和響應(yīng)正文。

6.HTTP請求方法
根據(jù)HTTP標(biāo)準(zhǔn),HTTP請求可以使用多種請求方法。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

7.HTTP 響應(yīng)頭信息
HTTP請求頭提供了關(guān)于請求,響應(yīng)或者其他的發(fā)送實(shí)體的信息。

For example:

8.HTTP狀態(tài)碼
當(dāng)瀏覽者訪問一個網(wǎng)頁時(shí),瀏覽者的瀏覽器會向網(wǎng)頁所在服務(wù)器發(fā)出請求。當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會返回一個包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求。
HTTP狀態(tài)碼的英文為HTTP Status Code。
下面是常見的HTTP狀態(tài)碼:
- 200 - 請求成功
- 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
- 404 - 請求的資源(網(wǎng)頁等)不存在
- 500 - 內(nèi)部服務(wù)器錯誤
9.HTTP狀態(tài)碼分類
HTTP狀態(tài)碼由三個十進(jìn)制數(shù)字組成,第一個十進(jìn)制數(shù)字定義了狀態(tài)碼的類型,后兩個數(shù)字沒有分類的作用。HTTP狀態(tài)碼共分為5種類型:




10.HTTP content-type
Content-Type,內(nèi)容類型,一般是指網(wǎng)頁中存在的Content-Type,用于定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件,這就是經(jīng)常看到一些Asp網(wǎng)頁點(diǎn)擊的結(jié)果卻是下載到的一個文件或一張圖片的原因。