Post 和Get請求的區(qū)別

  • GET 請求,請求的數(shù)據(jù)會附加在URL之后,以?分割URL和傳輸數(shù)據(jù),多個參數(shù)用&連接。URL的編碼格式采用的是ASCII編碼,而不是uniclde,即是說所有的非ASCII字符都要編碼之后再傳輸。
  • POST請求:POST請求會把請求的數(shù)據(jù)放置在HTTP請求包的包體中。上面的item=bandsaw就是實際的傳輸數(shù)據(jù)。
    因此,GET請求的數(shù)據(jù)會暴露在地址欄中,而POST請求則不會。
    傳輸數(shù)據(jù)的大小
  • 在HTTP規(guī)范中,沒有對URL的長度和傳輸?shù)臄?shù)據(jù)大小進行限制。但是在實際開發(fā)過程中,對于GET,特定的瀏覽器和服務器對URL的長度有限制。因此,在使用GET請求時,傳輸數(shù)據(jù)會受到URL長度的限制。
  • 對于POST,由于不是URL傳值,理論上是不會受限制的,但是實際上各個服務器會規(guī)定對POST提交數(shù)據(jù)大小進行限制,Apache、IIS都有各自的配置。
    安全性
  • POST的安全性比GET的高。這里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全,上面提到的安全僅僅是不修改服務器的數(shù)據(jù)。比如,在進行登錄操作,通過GET請求,用戶名和密碼都會暴露再URL上,因為登錄頁面有可能被瀏覽器緩存以及其他人查看瀏覽器的歷史記錄的原因,此時的用戶名和密碼就很容易被他人拿到了。除此之外,GET請求提交的數(shù)據(jù)還可能會造成Cross-site request frogery 攻擊。
    效率
    GET比POST效率高。
  • POST請求的過程:
    1.瀏覽器請求tcp連接(第一次握手)
    2.服務器答應進行tcp連接(第二次握手)
    3.瀏覽器確認,并發(fā)送post請求頭(第三次握手,這個報文比較小,所以http會在此時進行第一次數(shù)據(jù)發(fā)送)
    4.服務器返回100continue響應
    5.瀏覽器開始發(fā)送數(shù)據(jù)
    6.服務器返回200ok響應
  • GET 請求的過程:
    1.瀏覽器請求tcp連接(第一次握手)
    2.服務器答應進行tcp連接(第二次握手)
    3.瀏覽器確認,并發(fā)送get請求頭和數(shù)據(jù)(第三次握手,這個報文比較小,所以http會在此時進行第一次數(shù)據(jù)發(fā)送)
    4.服務器返回200OK響應
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容