咱們想要打開一個網站,首先是須要往瀏覽器的地址的URL輸入框架中輸入網地址。當我敲下回車後,經過HTTP協議,將網址傳送到域名解析服務器,域名解析服務器根據網址找到對應的IP主機(系統服務器)。這個過程叫request,即請求;當IP主機拿到請求後,將相應的資源返回給用戶瀏覽器。這個過程叫response,即響應瀏覽器
GET - 從指定的服務器中獲取數據
緩存
POST - 提交數據給指定的服務器處理安全
GET方法:服務器
使用GET方法時,查詢字符串(鍵值對)被附加在URL地址後面一塊兒發送到服務器:/test/demo_form.jsp?name1=value1&name2=value2框架
特色:jsp
GET請求可以被緩存ide
GET請求會保存在瀏覽器的瀏覽記錄中網站
以GET請求的URL可以保存爲瀏覽器書籤編碼
GET請求有長度限制spa
POST方法:
使用POST方法時,查詢字符串在POST信息中單獨存在,和HTTP請求一塊兒發送到服務器:POST /test/demo_form.jsp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
特色:
POST請求不能被緩存下來
POST請求不會保存在瀏覽器瀏覽記錄中
以POST請求的URL沒法保存爲瀏覽器書籤
POST請求沒有長度限制
兩種請求的區別:
一、GET請求,請求的數據會附加在URL以後,以?分割URL和傳輸數據,多個參數用&鏈接。URL的編碼格式採用的是ASCII編碼,而不是uniclde,便是說全部的非ASCII字符都要編碼以後再傳輸。
POST請求:POST請求會把請求的數據放置在HTTP請求包的包體中。上面的item=bandsaw就是實際的傳輸數據。
所以,GET請求的數據會暴露在地址欄中,而POST請求則不會。
二、傳輸數據的大小
在HTTP規範中,沒有對URL的長度和傳輸的數據大小進行限制。可是在實際開發過程當中,對於GET,特定的瀏覽器和服務器對URL的長度有限制。所以,在使用GET請求時,傳輸數據會受到URL長度的限制。
對於POST,因爲不是URL傳值,理論上是不會受限制的,可是實際上各個服務器會規定對POST提交數據大小進行限制,Apache、IIS都有各自的配置。
三、安全性
POST的安全性比GET的高。這裏的安全是指真正的安全,而不一樣於上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務器的數據。好比,在進行登陸操做,經過GET請求,用戶名和密碼都會暴露再URL上,由於登陸頁面有可能被瀏覽器緩存以及其餘人查看瀏覽器的歷史記錄的緣由,此時的用戶名和密碼就很容易被他人拿到了。除此以外,GET請求提交的數據還可能會形成Cross-site request frogery***