HTTP 請求
-
HTTP1.0 定義了三種請求方法: GET, POST 和 HEAD 方法。
-
HTTP1.1 新增了六種請求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
1. GET
get方法請求指定的頁面信息,返回實體主體。該請求是向服務器請求信息,請求參數會跟在url后面,因此,對傳參長度有限制的,而且不同瀏覽器的上限是不同的(2k, 7~8k及其他)。由於get請求直接將參數暴露在url中,因此對於一些帶有重要信息的請求可能並不完全合適。
2.POST
post請求是向指定資源提交數據進行處理請求,例如提交表單或者上傳文件等。數據被包含在請求體中,POST請求可能會導致新的資源的建立和/或已有資源的修改。post方法沒有對傳遞資源的大小進行限制,往往是取決於服務器端的接受能力,而且,該方法傳參安全性稍高些
3.PUT
PUT方法是從客戶端向服務器傳送的數據取代指定的文檔的內容。PUT方法的本質是idempotent的方法,通過服務是否是idempotent來判斷用PUT 還是 POST更合理,通常情況下這兩種方法並沒有刻意區分,根據語義使用即可
4.DELETE
請求服務器刪除指定的頁面,DELETE請求一般會返回3種狀態碼:
200 (OK) - 刪除成功,同時返回已經刪除的資源
202 (Accepted) - 刪除請求已經接受,但沒有被立即執行(資源也許已經被轉移到了待刪除區域)
204 (No Content) - 刪除請求已經被執行,但是沒有返回資源(也許是請求刪除不存在的資源造成的)
5.OPTIONS
允許客戶端查看服務器的性能。(常見的是跨域預檢Preflighted Reqeusts方法會采用該方法)。一般來說,開發中用到該方法是用來獲取服務器支持的請求類型或者查看服務器類型,來確保接下來發送的請求夠安全。該請求方法的響應不能緩存。如果該URI是一個星號(“*”),OPTIONS請求將試圖應用於服務器,而不是某個指定資源;如果該URI不是星號,則只能用來獲取該資源通信中可用的選項。
6.HEAD
類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭
7.CONNECT
HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器
8.TRACE
回顯服務器收到的請求,主要用於測試或診斷。
9.PATCH
是對 PUT 方法的補充,用來對已知資源進行局部更新 。
雖然 HTTP 的請求方式有 9 種,但是我們在實際應用中常用的也就是 get 和 post,其他請求方式也都可以通過這兩種方式間接的來實現。
向服務器傳參途徑
- 1、URL路徑參數,提取URL中的特定部分,服務端在路由中通過正則表達式,如/weather/beijing/2018;
- 2、查詢字符串(GET方法),形如?key=1&name=xw;
- 3、請求體(body)中發送數據,如表單、json、xml,對應的請求方式有(POST、PUT等);
- 4、在http報文的頭(header)中。
總結:請求行(路由,GET)、請求頭(header)、請求體(POST、PUT...)