HTTP協議學習(一)

一。HTTP報文的組成瀏覽器

  請求報文由 請求行、請求頭、請求空行、請求實體四部分組成。其中,請求行和請求頭共同組成 請求報文頭部緩存

    請求行:一行,依次由 請求方法、URI(或者應該說是域名?)、HTTP協議版本 三部分組成安全

    請求頭:由 通用首部字段、請求首部字段、實體首部字段 三部分組成服務器

    空行加密

    請求實體(請求報文實體)spa

 

  響應報文由 響應行、響應頭、響應空行、響應實體四部分組成。其中,響應行和響應頭共同組成響應報文頭部代理

    響應行:一行,依次由 HTTP協議版本、狀態碼、狀態碼簡介 三部分組成orm

    響應頭:由 通用首部字段、響應首部字段、實體首部字段 三部分組成資源

    空行域名

    響應實體(響應報文實體)

 

二。請求方法

  HTTP1.1總共有8種請求方法

  都是針對請求URI作出的動做

  1.GET  請求資源

  2.POST  提交數據,傳輸實體主體

  3.PUT  傳輸文件

  4.HEAD  獲取報文首部

  5.DELETE  刪除文件

  6.OPTION  詢問支持的方法

  7.TRACE  追蹤路徑,Max-Forwards首部字段中填入數值,每通過一個服務器則減1,數值變爲0時中止傳輸,最後收到請求的服務器返回200 OK

  8.CONNECT  與代理服務器間創建隧道(使用SSL(Secure Socket Layer,安全套接層)和TLS(Transport Layer Secure,傳輸層安全)加密的通訊通道)

 

  GET 和 POST的比較:

  (1)是否可保存爲書籤:GET能被保存爲書籤;POST不能

  (2)是否能夠緩存:GET能被緩存;POST不能

  (3)參數是否能保存爲瀏覽器歷史:GET中的參數能保存在瀏覽器歷史裏;POST的參數不能

  (4)數據類型限制:GET只容許ASCII碼字符;POST無數據類型限制,能夠爲二進制數據,由於POST的數據做爲一個總體放在請求報文實體裏

  (5)數據是否可見:GET的數據可見,由於用 ? 和 & 拼接在URL中;POST的數據不可見

  (6)數據是否安全:GET中的數據不安全;POST比GET更安全

  (7)數據的長度限制:GET有長度限制,URL最長2048個字符;POST數據內容無長度限制

  (8)後退/刷新是否有害:GET無害;POST會重複提交數據

 

三。狀態碼

  總共有5種不一樣類別的狀態碼。總結以下

狀態碼 類別 含義
1XX Informational(信息性狀態碼) 接收的請求正在處理
2XX Success(成功狀態碼) 請求正常處理完畢
3XX Redirection(重定向狀態碼) 須要進行附加操做以完成請求
4XX Client Error(客戶端錯誤狀態碼) 服務器沒法處理請求
5XX Server Error(服務器錯誤狀態碼) 服務器處理請求出錯

 

  常見的狀態碼有:

  100:Continue  一切正常 ,客戶端能夠繼續發送請求

  200:OK

  204:Not Content  請求正常處理,但返回的響應報文中不含實體的主體部分(無資源返回)

  206:Partial Content  表示客戶端進行了範圍請求,服務器成功執行。響應報文中包含由 Content-Range 指定範圍的實體內容

 

  301:Moved Permanently  永久重定向

  302:Found  臨時性重定向。表示請求的資源已分配新的URI,但願用戶本次使用新URI訪問

  303:See Other  和 302 有着相同的功能,可是 303 明確要求客戶端應該採用 GET 方法獲取資源

  304:Not Modified  請求報文首部包含條件(如:If-Match),不知足條件是返回 304

  307:Temporary Redirect  臨時性重定向。POST方法不會變爲GET方法

  注:雖然 HTTP 協議規定 30一、302 狀態下重定向時不容許把 POST 方法改爲 GET 方法,可是大多數瀏覽器都會在 30一、302 和 303 狀態下的重定向把 POST 方法改爲 GET 方法。

 

  400:Bad Request  錯誤請求(請求報文中存在語法錯誤)

  401:Unauthorized  請求須要HTTP認證信息

  403:Forbidden  該資源拒絕訪問

  404:Not Found  沒法找到請求的資源

  500:Internal Server Error  服務器發生錯誤

  503:Service Unavailable  服務器繁忙(超負載或正在停機維護)

相關文章
相關標籤/搜索