1. Get のデータ サイズは制限されています。多くの古いブラウザでは URL 文字列の数が 255 に制限されているのは周知の事実ですが、新しいブラウザにはこのような面倒な制限はありませんが、サイトにアクセスするすべてのユーザーが URL 文字列を使用していることを保証するわけにはいきません。ブラウザの新しいバージョン。そのため、ユーザーに Web ページ上で何らかの情報を入力してもらう必要がある場合、Get メソッドを使用すると間違いなく問題が発生します。それに対してPostメソッドではそのような制限がなく、どんなサイズのデータでも送信することができます。
2. Get のデータ型は柔軟性がありません。Get は URL を使用してデータを送信するため、スペース文字や & などの文字は送信に不便です。この問題は、送信前にエンコードし、受信後にデコードすることで解決できます。
3. セキュリティ: Get では、名前と値のペアのクエリ文字列を URL サフィックスに添付することによってパラメータが送信されるため、これはブラウザ履歴で非常に簡単にクエリされます。すべてのデータはテキスト モードで送信されるため、ログイン操作のパスワードは Get メソッドを使用して送信してはいけないことがわかります。
逆に、Post メソッドははるかに安全です。すべての名前と値のペアは、メッセージ本文の形式で Http リクエストで送信されます。
4. 速度: 明らかに、Get は Post よりも高速です。
5. ブックマーク: 実際、Get を使用したほうがよい状況がいくつかあります。たとえば、名前と値のペアのパラメーターをブックマークの形式で保存し、フォーム内で直接使用できます。しかし、これはポストでは不可能です。
6. フォームへのファイルのアップロードは Post メソッドを使用することでのみ実現でき、Get はほぼ不可能です。
7. サーバーが Get メソッドで送信されたデータをエンコードすると、データが失われる可能性があります。しかしポストはそうではない。
8. Get はスタック メソッドを使用してフォーム変数を転送しますが、Post は HEAP メソッドを使用してフォーム変数を転送します。
9. Get では一度に最大 18 個のパラメータしか送信できませんが、Post にはこの制限がありません。