問:既然GET請求可以做POST請求的事情,為什么還要區(qū)分GET和POST而不只使用一個請求?
收集了一下,GET和POST請求的區(qū)別大致有以下:
1.GET 被強制服務(wù)器支持
GET 通常用于請求服務(wù)器發(fā)送某個資源。在HTTP/1.1中,要求服務(wù)器實現(xiàn)此方法;POST請求方法起初是用來向服務(wù)器輸入數(shù)據(jù)的。在HTTP/1.1中,POST方法是可選被實現(xiàn)的,沒有明確規(guī)定要求服務(wù)器實現(xiàn)2.瀏覽器對URL的長度有限制,所以GET請求不能代替POST請求發(fā)送大量數(shù)據(jù)
在RFC中并沒有對URL的長度進行限制,但是各大瀏覽器廠家在實現(xiàn)的時候限制了URL的長度,所以讓人誤認為GET請求的參數(shù)是有限制的。其實也有對POST請求體的大小限制的情況。3.對參數(shù)的數(shù)據(jù)類型,GET只接受ASCII字符,而POST沒有限制。GET請求只能進行url編碼,而POST支持多種編碼方式
4.GET請求是不可修改的,是冪等的。多次請求的結(jié)果是相同的
5.POST請求相對GET請求是「安全」的
POST請求的請求體同樣可以抓包獲取到,并不是安全的。只是相對GET直接將參數(shù)拼接在url地址中,POST把參數(shù)放在請求體中不至于那么明顯就被人看到。
參考文章:
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