ホームページ  >  記事  >  post リクエストと get リクエストの違いは何ですか?

post リクエストと get リクエストの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2023-02-03 11:23:1078466ブラウズ

違い: 1. Post リクエストの方が安全です; post リクエストは URL の一部として使用されず、キャッシュされず、サーバー ログやブラウザの閲覧記録に保存されません。リソースの場合はキャッシュされますが、データの場合はキャッシュされません。 2. post リクエストによって送信されるデータは大きくなり、get リクエストには URL の長さ制限があります。 3. post リクエストはより多くのデータ型を送信できますが、get リクエストは ASCII 文字のみを送信できます。 4. パラメータの送信方法が異なります。 5. Get では 1 つの TCP パケットが生成され、post では 2 つの TCP パケットが生成されます。

post リクエストと get リクエストの違いは何ですか?

このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。

Get リクエスト: 指定されたリソースからデータをリクエストします。データを取得するために使用され、通常は検索の並べ替えやフィルター処理などの操作に使用されます。

Post リクエスト: 処理対象のデータを指定されたリソースに送信します。データをサーバーに送信するために使用され、通常はデータの変更と書き込みに使用されます。

Get リクエストと POST リクエストは本質的に TCP リンクであり、違いはありません。ただし、HTTP 規制とブラウザ/サーバーの制限により、アプリケーション プロセスにはいくつかの違いがあります。

post リクエストと get リクエストの違い

(1) post リクエストの方が安全です (URL の一部ではないため、キャッシュされません)、サーバー ログとブラウザの閲覧記録に保存されます。取得リクエストが静的リソースの場合はキャッシュされます。データの場合はキャッシュされません。)

(2) post リクエストによって送信されるデータの方が大きくなります (get リクエストには URL の長さ制限がありますが、http プロトコル自体には制限がありません。リクエストの長さの制限はブラウザと Web サーバーによって決定および設定されます)

(3) post リクエストはより多くのデータ型を送信できます (get リクエストは ASCII 文字のみを送信できます)

(4) パラメータの受け渡し方法が異なります (get リクエストのパラメータは URL 経由で渡され、post リクエストはリクエストボディで渡されます) )

(5) get リクエストは TCP パケットを生成し、Post リクエストは 2 つの TCP データ パケットを生成します (get リクエスト、ブラウザは http ヘッダーとデータを一緒に送信し、サーバーは 200 で応答してデータを返します。 post リクエストでは、ブラウザが最初にヘッダーを送信し、サーバーが 100 continue で応答し、その後ブラウザがデータを送信し、サーバーが 200 で応答してデータを返します)

注: POST の送信時には Expect ヘッダーはありません。そしてサーバーは当然 100 の continue を送信しません。

ポストリクエストプロセス:

(1) ブラウザは TCP 接続をリクエストします (最初のハンドシェイク)

( 2)サーバーは TCP 接続を行うことに同意します (2 回目のハンドシェイク)

(3) ブラウザはポスト リクエスト ヘッダーを確認して送信します (3 回目のハンドシェイク。このメッセージは比較的小さいため、この時点では http が処理されます)最初のデータ送信)

(4) サーバーは 100 Continue 応答を返します

(5) ブラウザはデータを送信します

(6) サーバーは 200 OK 応答を返します

Get request process:

(1) ブラウザが TCP 接続を要求 (最初のハンドシェイク)

(2) サーバーが同意するTCP 接続 (2 回目のハンドシェイク)

(3) ブラウザは get リクエスト ヘッダーとデータを確認して送信します (3 回目のハンドシェイク、このメッセージは比較的小さいため、http はこの時点で 3 回目のハンドシェイクを実行します) 1 回のデータ送信)

(4) サーバーが 200 OK レスポンスを返す

ネットワーク環境が良好であれば、1 パケットと 2 パケットの送信時間の差は基本的に無視できます。ネットワーク環境が劣悪な場合、2 つのパケットを使用する TCP はデータ パケットの整合性を検証する上で大きな利点があります。

関連知識の詳細については、FAQ 列をご覧ください。

以上がpost リクエストと get リクエストの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。