1. HTTP的請求方法以及響應狀態碼 1.1. 請求方法 http請求方法有GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT。當然上述方法是基於HTTP/1.1的,HTTP/1.0中獨有的方法就不說了。 GET 獲取資源 GET方法一般用來從伺服器上獲取 ...
1. HTTP的請求方法以及響應狀態碼
1.1. 請求方法
http請求方法有GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE、CONNECT。當然上述方法是基於HTTP/1.1的,HTTP/1.0中獨有的方法就不說了。
- GET----獲取資源
- GET方法一般用來從伺服器上獲取資源的方法。伺服器端接到GET請求後,就會明白客戶端是要從伺服器端獲取相應的資源,然後就會根據請求報文中相應的參數,將需要的資源返回給客戶端。使用GET方式的請求,傳輸的參數是拼接在URI上的。
- POST----數據提交
- POST方法一般用於表單提交,將客戶端的數據塞到請求體中發送給伺服器端。
- PUT----上傳文件
- PUT方法主要用來上傳文件,將文件內容塞到請求報文體中,傳輸給伺服器。因為HTTP/1.1的PUT方法自身不帶驗證機制,所以任何人都可以上傳文件,存在安全性,所以上傳文件時不推薦使用。但是在設計介面使用REST標準時,可以使用PUT來做相應內容的更新。
- HEAD----獲取響應報文頭
- 響應端收到HEAD請求後,只會返回相應的響應頭,不會返迴響應體。
- DELETE----刪除文件
- DELETE用於刪除URI指定的資源,與PUT一樣,自身也是不帶驗證機制的,不過在REST標準中可以用來做相應API的刪除功能。
- OPTIONS----查詢支持的方法
- OPTIONS方法是用來查詢伺服器可對那些請求方法做出響應,返回內容就是響應端所支持的方法。
- TRACE----追蹤路徑
- TRACE方法可追蹤請求經過的代理路徑,在發送請求時會為Max-Forwards頭部欄位填入數字,每經過一個代理中轉Max-Forwards的值就會減一,直至Max-Forwards為零後,才會返回200。因為該方法易引起XST(Cross-Site Tracing,跨站追蹤)攻擊,所以不常用呢。
- CONNECT----要求用隧道協議連接代理
- CONNECT方法要求在與代理伺服器通信時建立隧道,實現用隧道協議進行TCP通信。主要使用SSL(Secure Sockets Layer, 安全套接層)和TLS(Transport Layer Security, 傳輸安全層)協議將通信內容進行加密後經網路隧道傳輸。
1.2. 響應狀態碼
HTTP協議的響應狀態碼。顧名思義,響應狀態碼是用來標誌HTTP響應狀態的,響應狀態由響應狀態碼和響應原因短語構成,當然狀態碼有很多中,本部分就挑出來常用的狀態碼進行討論。下方是響應狀態碼可以分為的幾大類:
- 1xx ---- Informational(信息性狀態碼),表示接受的請求正在處理。
- 2xx ---- Success (成功),表示請求正常處理完畢。
- 3xx ---- Redirection (重定向),表示要對請求進行重定向操作,當然其中的304除外。
- 4xx ---- Client Error (客戶端錯誤),伺服器無法處理請求。
- 5xx ---- Server Error (伺服器錯誤),伺服器處理請求時出錯。
上面是響應狀態碼的整體分類,接下來介紹一些常用的響應狀態碼。
(01)、200 OK : 表示服務端正確處理了客戶端發送過來的請求。
(02)、204 No Content ['kɒntent]內容: 表示服務端正確處理請求,但沒有報文實體要返回。
(03)、206 Partial [ˈpɑ:ʃl]部分 Content :表示服務端正確處理了客戶端的範圍請求,並按照請求範圍返回該指定範圍內的實體內容。
(04)、301 Moved Permanently['pɜ:mənəntlɪ]永久的:永久性重定向,若之前的URI保存到了書簽,則更新書簽中的URI。
(05)、302 Found:臨時重定向,該重定向不會變更書簽中的內容。
(06)、303 See Other:臨時重定向,與302功能相同,但是303狀態嗎明確表示客戶端應當採用GET方法獲取資源。
(07)、304 Not Modified: 資源未變更,該狀態碼與重定向並沒有什麼關係,當返回該狀態碼時,告訴客戶端請求的資源並沒有更新,響應報文體中並不會返回所請求的內容。
(08)、400 Bad Request: 錯誤請求,表示請求報文中包含語法錯誤。
(09)、401 Unauthorized[ʌnˈɔ:θəraɪzd]未經許可的:請求未認證,表示此發送的請求需要客戶端進行HTTP認證(稍後會提到)。
(10)、404 Not Found:找不到相應的資源,表示伺服器找不到客戶端請求的資源。
(11)、500 Internal [ɪnˈtɜ:nl]Server Error:伺服器內部錯誤,表示伺服器在處理請求時出現了錯誤,發生了異常。
(12)、503 Service Unavailable[ˌʌnəˈveɪləbl]難以獲得的:服務不可用,表示伺服器處於停機狀態,無法處理客戶端發來的請求。