post和get请求的区别
1.傳送方式:get通過地址欄傳輸,post通過報(bào)文傳輸。
2.post請求無長度限制(至少是理論上的) ;get有長度限制,最長不超過2048字節(jié)(1024個(gè)漢字)
3.Get/post?請求報(bào)文上的區(qū)別
get?和post只是 HTTP 協(xié)議中兩種請求方式(異曲同工),而 HTTP 協(xié)議是基于 TCP/IP 的應(yīng)用層協(xié)議,無論 get還是post,用的都是同一個(gè)傳輸層協(xié)議,所以在傳輸上,沒有區(qū)別。
不帶參數(shù)時(shí):基本沒有區(qū)別
帶參數(shù)時(shí):get?方法的參數(shù)應(yīng)該放在 url 中,post方法參數(shù)應(yīng)該放在 body 中
4.提交URL方式帶參時(shí)
<form?action="s1?method=post"?method="post">
Action中帶參數(shù)時(shí),如果用get方法提交,后臺無法接收到這個(gè)參數(shù);如果用post方法提交,后臺就可以接收到這個(gè)參數(shù)。
若get需要傳遞method參數(shù)時(shí),可以使用hidden隱藏域。
<form?action="s1"?method="get">
<input?name='method'?type='hidden'?value='get'>
5.Get方式的提交需要用Request.QueryString來取得變量的值,而Post方式提交時(shí),你必須通過Request.Form來訪問提交的內(nèi)容。
6.安全性問題
通過get方法提交數(shù)據(jù),可能會帶來安全性的問題。比如一個(gè)登陸頁面。當(dāng)通過get方法提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在URL上。如果:
?①登陸頁面可以被瀏覽器緩存;?
?②其他人可以訪問客戶的這臺機(jī)器。
那么,別人即可以從瀏覽器的歷史記錄中,讀取到此客戶的賬號和密碼。所以,在某些情況下,get方法會帶來嚴(yán)重的安全性問題。?
建議 :在Form中,建議使用post方法。
并且,從傳輸?shù)慕嵌葋碚f,他們都是不安全的,因?yàn)?HTTP 在網(wǎng)絡(luò)上是明文傳輸?shù)?#xff0c;只要在網(wǎng)絡(luò)節(jié)點(diǎn)上捉包,就能完整地獲取數(shù)據(jù)報(bào)文。要想安全傳輸,就只有加密,也就是 HTTPS(超文本傳輸安全協(xié)議,http的安全傳輸)。
7.get參數(shù)保存在瀏覽器,而post參數(shù)不會保存在瀏覽器
8.部分瀏覽器中,post 會將 header 和 body 分開發(fā)送,先發(fā)送 header,服務(wù)端返回 100 狀態(tài)碼再發(fā)送 body。
總結(jié)
以上是生活随笔為你收集整理的post和get请求的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设计一个bank类实现银行_AO
- 下一篇: java项目内存使用率过高排查_项目内存