HTTP學(xué)習(xí)筆記

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é)議通信流程:

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ù)四個部分組成。

請求報(bào)文的一般格式

5.服務(wù)器響應(yīng)消息

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

HTTP響應(yīng)

6.HTTP請求方法

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

HTTP請求方法

7.HTTP 響應(yīng)頭信息

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

HTTP響應(yīng)頭信息具體說明

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種類型:

HTTP狀態(tài)碼分類
HTTP狀態(tài)碼列表
HTTP狀態(tài)碼列表
HTTP狀態(tài)碼列表

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é)果卻是下載到的一個文件或一張圖片的原因。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容