在HTTP的協議中常見的方法:瀏覽器
請求方法(全部方法全爲大寫)有多種,各個方法的解釋以下:
GET 請求獲取Request-URI所標識的資源
POST 在Request-URI所標識的資源後附加新的數據
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭
PUT 請求服務器存儲一個資源,並用Request-URI做爲其標識
DELETE 請求服務器刪除Request-URI所標識的資源
TRACE 請求服務器回送收到的請求信息,主要用於測試或診斷
CONNECT 保留未來使用
OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求緩存
能夠這樣理解GET ,POST,PUT和DELETE分別表示查,改,增,刪。從這個理解上能夠很好理解GET和POST的區別,GET就是用於獲取/查詢資源信息,而POST則是用來更新資源信息。安全
根據HTTP規範,GET用於信息獲取,因此是安全的和冪等的。服務器
安全是指,因爲是獲取信息不會更改資源信息,因此是安全的。性能
冪等的意味着對同一URL的多個請求應該返回一樣的結果。測試
2.跟據HTTP規範,POST表示可能修改改變服務器上的資源的請求。加密
從表面上來區分GET和POST的區別:spa
GET請求的數據會附在URL以後(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以&相連, 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5 %A5%BD。若是數據是英文字母/數字,原樣發送,若是是空格,轉換爲+,若是是中文/其餘字符,則直接把字符串用BASE64加密,得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX爲該符號以16進製表示的ASCII。而POST把提交的數據則放置在是HTTP包的包體中。操作系統
URL和HTTP都沒有對參數的長度進行限制,可是特定的瀏覽器及服務器對它的限制,IE對URL長度(限制是整個URL長度,而不單單是你的參數值數據長度)的限制是2083字節(2K+35)。對於其餘瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決於操做系統的支持。因此在使用GET請求的時候可能會形成參數沒有辦法所有提交。資源
就安全性而言,經過GET提交數據,用戶名和密碼將明文出如今URL上,由於登陸頁面有可能被瀏覽器緩存,其餘人查看瀏覽器的歷史紀錄,那麼別人就能夠拿到 你的帳號和密碼了,除此以外,使用GET提交數據還可能會形成Cross-site request forgery攻擊。
GET請求會出現亂碼狀況,並且很難解決。
總之,GET是向服務器發索取數據的一種請求,而POST是向服務器提交數據的一種請求,在表單中,默認的請求方法是GET.實質上,GET和POST只是發送機制不一樣,並非一個取一個發!
以上是我的在前輩的博客和我的的經驗總結而來,若有錯誤敬請提出!