獲取vs Post
如果表單數據使用從服務器請求的URL編碼,則稱為Get,而如果表單數據是在消息體中發送的,則稱為Post。當您沒有URL的任何附加信息時,將使用此表單。
我們在web瀏覽器中閱讀的HTML頁面本質上是靜態的。這些是靜態文檔,當我們與網頁進行交互時,無論如何,您都必須將數據發送回服務器。這是通過使用表單來實現的,有兩種方法可以使用表單:Get和Post。通過使用表單,對數據進行編碼以將其發送回服務器。現在,Get和Post之間的確切區別是什麼?
如果使用從服務器請求的URL對數據進行編碼,則根據HTML規範將其稱為Get。表單數據由接收數據的應用程序從URL中分離出來。解析出URL和表單數據後,將其用作查詢的輸入。如果你能理解的話,你能理解一個長尾的變量。對於所有的查詢信息,如果您正在處理Get請求,您可以為整個URL加上書籤。因此,當您再次打開書籤時,您肯定可以看到查詢的結果。
如果表單數據在消息體中發送,則稱為Post。當您沒有任何附加信息時,請不要使用此表單。與Get比較時,無法在用戶的瀏覽器歷史記錄中緩存帖子。這種情況會導致頁面必須重新向web服務器提交信息。你晚上經常遇到這種情況。
通常建議您在開發表單時必須使用Get,並且只有在某些情況下才必須使用Post。如果任何一個變量使瀏覽器崩潰或使URL太長,您可以使用Post form。使用Post有幾個優點,因為如果需要使應用程序的功能隱藏或對其他用戶不太可見,那麼使用Post是更好的形式。但這並不是安全性的保證,因為任何人都可以從應用程序的源代碼中理解您使用的變量。
Get和Post之間的主要區別可以概括為:
- 能見度
這就是Get和Post方法之間的根本區別。Get請求被附加到URL中,用問號分隔。無法看到Post請求,因為它封裝在HTTP主體中。
- 性能
創建Get請求相對容易,而且比Post請求快得多。但是Post請求在封裝過程中需要時間。
- 數據類型
由於Get請求是通過URL發送的,因此它只能是文本格式。但是在Post中沒有這樣的限制,它可以同時攜帶二進制和文本數據。
- 數據集
帶值的“Enctype”屬性可用於Post請求,而Get請求只能使用ASCII字符。