HTTP協議基礎


一、HTTP協議定位

  HTTP協議是hypertext transfer protocol(超文本傳輸協議)的簡寫,他是TCP/IP協議的一個應用層協議,用於定義WEB瀏覽器與WEB服務器之間交換數據的過程。

二、HTTP1.0與HTTP1.1的區別

  1.0協議中,客戶端與web服務器建立連接后,只能獲得一個web資源。

  1.1協議中,客戶端與web服務器建立連接后,在一個連接上獲取多個web資源。

三、HTTP請求

  一個完整的HTTP請求包括:一個請求行、若干消息頭、以及實體內容;

  請求行:用於描述客戶端的請求方式,請求的資源名稱。以及使用的HTTP協議版本

  多個消息頭:消息頭用於描述客戶端請求哪台主機,以及客戶端的一些環境信息等。

  一個空行:格式

  實體內容:

四、HTTP常見請求頭 

  Accept:客戶機用於告訴服務器它支持的數據類型;

  Accept-Charset:客戶機采用的編碼;

  Accept-Encoding:客戶機支持的壓縮格式;

  Accept-Language:客戶機的語言環境;

  Host:告訴服務器想訪問的主機名;

  If-Modified-Sinec:資源的緩存時間;

  Referer:告訴服務器,它是從哪個資源來訪問服務器的(防盜鏈)

  User-Agent:客戶機通過這個頭告訴服務器,客戶機的軟件環境。

  Cookie:向服務器帶數據;

  Connection:close/Keep-Alive;保持連接或者關閉連接

  Date:發送請求時間

  Range:指示服務器只傳輸一部分Web資源。可以用來實現斷點下載;

五、HTTP響應

  一個HTTP響應代表服務器向客戶端回送的數據,包括一個狀態行、若干消息頭,以及實體內容。

  狀態行:狀態行用於描述服務器對於請求的處理結果。

    格式—> HTTP版本號 狀態碼 原因敘述(CRLF)

    狀態碼用於表示服務器對請求的處理結果,它是一個三位的十進制數。響應狀態碼分為5類,如下所示:

   100~199:表示成功接受請求,要求客戶端繼續提交下一次請求才能完成整個處理過程;

   200~299:表示成功接收請求並已完成整個處理過程,常用200;

   300~399:為完成請求,客戶需進一步細化請求。例如,請求的資源已經移動一個新地址、常用302、307和304;

   400~499:客戶端的請求有錯誤,常用404;

   500~599:服務器端出現錯誤,常用500;

  響應頭:響應消息頭用於描述服務器的基本信息,以及數據的描述,服務器通過這些數據的描述信息,可以通知客戶端如何處理等一會兒它會送的數據。

  實體內容:代表服務器想客戶端會送的數據。

 

六、常見響應頭

  Location:配合302狀態碼使用,用於告訴客戶找誰;

  Server:告訴瀏覽器服務器的類型;

  Content-Encoding:告訴瀏覽器數據的壓縮格式;

  Content-Length:告訴瀏覽器回送數據的長度;

  Content-Language:告訴瀏覽器回送數據的語言環境;

  Content-Type:告訴瀏覽器回送數據的類型;

  Last-Modified:告訴瀏覽器當前資源的緩存時間;

  Refresh:告訴瀏覽器隔多長時間刷新一次;

  Content-Disposition:告訴瀏覽器以下載方式打開數據;

  Transfer-Encoding:告訴瀏覽器數據的傳送格式

  Set-Cookie:緩存相關;

  Transfer-Encoding:

  Set-Cookie:

  ETag:緩存相關;

  Expires:服務器通過這個頭,告訴瀏覽器把回送的資源緩存多長時間,-1或0,則是不緩存

  Cache-Control:no-cache,控制瀏覽器不要緩存數據;

  Pragma:no-cache,控制瀏覽器不要緩存數據;

  注:以上三種緩存控制頭是由於歷史原因造成的;

  Connection:close/Keep-Alive;

  Date:

  Accept-Ranges:說明服務器是否支持Range,不支持就返回Accept-Ranges:none;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM