HTTP協議(二)---請求和響應

HTTP經過請求和響應的交換達成通訊。web

 

HTTP請求瀏覽器

請求報文由請求行(請求方法、請求URI、協議版本)、請求首部字段以及內容實體(可能沒有)構成。安全

下面是一個GET請求,沒有內容實體:服務器

 

 

下面是 一個POST請求網絡

 

請求方法網站

GET:獲取資源加密

GET方法用來請求訪問已被URI識別的資源,指定的資源經服務器端解析後返回響應內容。spa

POST:傳輸實體主體3d

PUT:傳輸文件代理

PUT方法用來傳輸文件,要求在請求報文的主體中包含文件內容,而後保存到請求URI指定的位置。可是,因爲HTTP/1.1的PUT方法自身不帶驗證機制,任何人均可以上傳文件,存在安全性問題,所以通常的web網站不使用該方法。

HEAD:獲取報文首部

HEAD方法和PUT同樣,只是不返回報文主體。用於確認URI的有效性及資源更新的日期時間等。

DELETE:刪除文件

DELETE按請求URI刪除指定資源。可是,HTTP/1.1的DELETE方法不帶驗證機制,所以通常的web網站也不使用DELETE方法。

OPTIONS:詢問支持的方法

用於查詢針對請求URI指定的資源支持的方法。

TRACE:追蹤路徑

TRACE方法是讓web服務器將以前的請求通訊返回給客戶端的方法。客戶端經過TRACE方法能夠查詢發送出去的請求方法是怎麼被加工修改的。

CONNECT:要求用隧道協議鏈接代理

CONNECT要求與代理服務器通信時創建隧道,實現用隧道協議進行TCP通訊。主要使用SSL和TLS協議把通信內容加密後經網絡隧道傳輸。

 

請求URI

URL(Uniform Resource Locator ,統一資源定位符):是使用web瀏覽器等訪問web頁面時須要輸入的網頁地址。

URI(Uniform Resource Identifier,統一資源標識符):用字符串標識某一互聯網資源。而URL表示資源的地點,URL是URI的子集。

 

 

協議版本

如今多用HTTP/1.1

 

響應報文

響應報文由響應行(協議版本、狀態碼、緣由短語)、響應首部字段以及實體主體(可能沒有)構成。

 

 

狀態碼

1XX  信息性

2XX  成功

  • 200 OK:表示客戶端發來的請求在服務器端被正常處理了
  • 204 No Content:表示服務器接收的請求已正常處理,但在返回的響應報文中不包含實體的主體內容。另外,也不容許返回任何實體的主體。通常在只須要客戶端往服務器端發送信息,而客戶端不須要發送新信息內容的狀況下使用。
  • 206 Partial Content:表示客戶端發送了範圍請求,而服務器端成功執行了這部分的GET請求。響應報文中包含由Content-Range指定範圍的實體內容。

3XX  重定向

  • 301 Moved Permanently:永久重定向。像請求的URI的忘記添加"/",就會產生301狀態碼。
  • 302 Found:臨時性重定向。
  • 303 See Other:表示因爲請求對應的資源存在着另外一個URI,應使用GET方法定向獲取請求資源
  • 304 Not Modified:表示客戶端發送帶條件的請求時,服務端容許訪問資源,但條件未知足;返回的響應不包含主體部分。帶條件的請求是指採用GET方法的請求報文中包含If-Match、If-None-Match、If-Modified-Since、If-Unmodified-Since、If-Range中的任一首部。
  • 307 Temporary Redirect:臨時重定向。與302的差別:307不會從POST改爲GET;302雖然也禁止,可是實際使用並不遵照,307會遵照。

4XX 客戶端錯誤

  • 400 Bad Request:表示請求報文中存在語法錯誤。瀏覽器會像 200 OK同樣對待該狀態碼。
  • 402 Unanthorized:發送的請求須要有經過HTTP認證(BASIC認證、DIGEST認證)的認證信息;若以前進行過一次請求,則表示認證失敗。響應必須包含一個適用於請求資源的WWW-Authenticate首部用以exchange用戶信息。瀏覽器初次接收到401的響應,會彈出認證用的對話窗口
  • 403 Forbidden:表示請求訪問資源被服務器拒絕了。由於未得到文件系統的訪問受權等。
  • 404 Not Found:服務器上沒法找到請求的資源。或服務器拒絕請求且不想說明理由也能夠使用。

5XX 服務器端錯誤

  • 501 Internet Server Error:服務器端在執行請求時發生了錯誤。
  • 503 Service Unavailable:服務器暫時處於超負載或停機維護,沒法處理請求 。

其餘狀態碼可查看RFC261六、RFC491八、RFC584二、RFC6585等

相關文章
相關標籤/搜索