問:既然GET請求可以做POST請求的事情,為什么還要區分GET和POST而不只使用一個請求?
收集了一下,GET和POST請求的區別大致有以下:
1.GET 被強制服務器支持
GET 通常用于請求服務器發送某個資源。在HTTP/1.1中,要求服務器實現此方法;POST請求方法起初是用來向服務器輸入數據的。在HTTP/1.1中,POST方法是可選被實現的,沒有明確規定要求服務器實現2.瀏覽器對URL的長度有限制,所以GET請求不能代替POST請求發送大量數據
在RFC中并沒有對URL的長度進行限制,但是各大瀏覽器廠家在實現的時候限制了URL的長度,所以讓人誤認為GET請求的參數是有限制的。其實也有對POST請求體的大小限制的情況。3.對參數的數據類型,GET只接受ASCII字符,而POST沒有限制。GET請求只能進行url編碼,而POST支持多種編碼方式
4.GET請求是不可修改的,是冪等的。多次請求的結果是相同的
5.POST請求相對GET請求是「安全」的
POST請求的請求體同樣可以抓包獲取到,并不是安全的。只是相對GET直接將參數拼接在url地址中,POST把參數放在請求體中不至于那么明顯就被人看到。
參考文章:
1.http://blog.csdn.net/gideal_wang/article/details/4316691
2.https://www.oschina.net/news/77354/http-get-post-different
3.http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
4.https://segmentfault.com/a/1190000004014583