[Forms] 什麼時候應該使用GET或POST方法? 他們之間有什麼區別?


Answers

當用戶在表單中輸入信息並單擊提交時,可以通過兩種方式將信息從瀏覽器發送到服務器:在URL中或在HTTP請求的主體內。

前面的示例中使用的GET方法將名稱/值對添加到URL。 不幸的是,URL的長度是有限的,所以這種方法只適用於只有少數參數的情況。 如果表單使用大量參數,或者參數包含大量數據,則URL可能會被截斷。 此外,通過URL傳遞的參數在瀏覽器的地址字段中可見,而不是顯示密碼的最佳位置。

GET方法的替代方法是POST方法。 此方法將名稱/值對包裝在HTTP請求的正文中,這使得URL更清晰,並且不會在表單輸出上施加大小限制。 它也更安全。

Question

使用GETPOST方法時有什麼區別? 哪一個更安全? 他們每個人的(不)優點是什麼?

類似的問題




  1. GET方法用於發送不太敏感的數據,而POST方法用於發送敏感數據。
  2. 與GET方法相比,使用POST方法可以發送大量數據。
  3. 通過GET方法發送的數據在瀏覽器標題欄中可見,而通過POST方法發送的數據不可見。



應該提到一些重要的注意事項

根據w3cschools.com的解釋

獲取方法:

  • GET請求可以被緩存

  • GET請求保留在瀏覽器歷史記錄中

  • GET請求可以加書籤

  • 在處理敏感數據時絕不能使用GET請求

  • GET請求有長度限制

  • GET請求只能用於檢索數據

對於Post方法

  • POST請求永遠不會被緩存

  • POST請求不會保留在瀏覽器歷史記錄中

  • POST請求不能加書籤

  • POST請求對數據長度沒有限制

獲取更多詳細信息

https://www.w3schools.com/tags/ref_httpmethods.asp




當我向URL發送信息時,我 URL和POST檢索信息時使用GET。




在更改數據時使用POST的原因:

  • 像Google Web Accelerator這樣的網絡加速器將點擊頁面上的所有(GET)鏈接並緩存它們。 如果鏈接對事物進行更改,這是非常糟糕的。
  • 瀏覽器緩存GET請求,因此即使用戶單擊鏈接,它也不會向服務器發送請求以執行更改。
  • 為了保護您的站點/應用程序免受CSRF攻擊,您必須使用POST。 為了完全保護您的應用程序,您還必須在服務器上生成唯一標識符,並在請求中發送該標識符。

此外,請勿將敏感信息放入查詢字符串中(僅GET選項),因為它顯示在地址欄,書籤和服務器日誌中。

希望這解釋了為什麼人們說POST是'安全的'。 如果您要傳輸敏感數據,則必須使用SSL。




Get和Post方法與您使用的服務器技術無關,它在php,asp.net或ruby中的工作方式相同。 GET和POST是HTTP協議的一部分。 如商標所述,POST更安全。 POST表單也不會被瀏覽器緩存。 POST還用於傳輸大量數據。




這是GET請求的關鍵點

  • GET請求可以被緩存
  • GET請求保留在瀏覽器歷史記錄中
  • GET請求可以加書籤
  • 在處理敏感數據時絕不能使用GET請求
  • GET請求有長度限制
  • GET請求只能用於檢索數據

這是POST請求的關鍵點

  • POST請求永遠不會被緩存
  • POST請求不會保留在瀏覽器歷史記錄中
  • POST請求不能加書籤
  • POST請求對數據長度沒有限制