語義上的區(qū)別
get用于獲取資源,post用于傳輸資源和數(shù)據(jù)更新
表面上的區(qū)別
get參數(shù)暴露,通過url傳輸參數(shù);長度有限制
post參數(shù)不暴露,通過內(nèi)容實(shí)體傳輸數(shù)據(jù);長度無限制
這里的長度限制是指瀏覽器對URL有長度限制,不是來自HTTP協(xié)議的規(guī)定
傳輸上的區(qū)別
get產(chǎn)生一個(gè)TCP傳輸包,post產(chǎn)生兩個(gè)數(shù)據(jù)傳輸包,瀏覽器先發(fā)送header,服務(wù)器響應(yīng)100,然后瀏覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok
其他區(qū)別
1.get可以被收藏為書簽,post不可以
2.get回退時(shí)無影響,post會重新提交數(shù)據(jù)
3.get可以被緩存,post不能被緩存
4.get可以保存在瀏覽器歷史中,post不可以
5.get只能使用ASCII字符,post沒有這個(gè)限制