ホームページ  >  記事  >  バックエンド開発  >  phpのgetとpostの違いは何ですか?

phpのgetとpostの違いは何ですか?

青灯夜游
青灯夜游オリジナル
2019-10-17 14:04:285312ブラウズ

phpのgetとpostの違いは何ですか?

Get と Post の主な違いは、Get は URL を通じてデータを送信するのに対し、Post では送信された特定の情報をユーザーが参照できないことです。この違いにより、2 つの用途が決まります。 Get メソッドは主に検索に使用され、Post メソッドは主にユーザーの操作情報をサーバーに送信するために使用されます。 Get と Post の詳細な違いは次のとおりです:

GET と POST

セキュリティの GET と POST

1. GET は URL を通じてリクエストされ、URL は直接表示され、送信されます。クリアテキスト。

2. POST はリクエスト ヘッダーを通じてリクエストされ、これは開発者ツールまたはパケット キャプチャで確認でき、クリア テキストでもあります。

3. GET リクエストはブラウザの履歴に保存され、Web ログにも保存される場合があります。

送信を取得、要求されたデータは URL に従います (リソースの配置が均一)、セキュリティが低くなります

送信後、送信されたデータを http パッケージの本体に配置します、セキュリティが高

GET および POST

GET のデータ サイズ: 特定のブラウザとサーバーには URL の長さに制限があります。たとえば、IE の URL 長の制限は 2083 バイト ( 2K 35) です。 Netscape、FireFox などの他のブラウザの場合、理論上長さの制限はなく、制限はオペレーティング システムのサポートによって異なります。 Get によって送信されるデータの量は URL の長さによって制限されるため小さいですが、より効率的です;

POST: 値は URL を介して送信されないため、理論的にはデータは制限されません。 Post は大量のデータを送信できるため、ファイルをアップロードする場合のみ Post メソッドを使用できます。

送信データの文字形式が異なります

get は値を制限しますrequest.setCharacterEncoding("utf-8"); では Form フォームのデータセットを ASCII 文字に設定できません。サーバーで取得した漢字が文字化けする可能性があります。

post は文字セット ISO10646 全体をサポートしており、request.setCharacterEncoding("utf-8"); を通じて中国語の文字を正しく表示できます。

サーバー側はさまざまな方法でデータを取得します

Get はサーバー側です$_GET;

Post はサーバー側です$_POST

GET は冪等ですが、POST は冪等ではありません

冪等とは、同じリクエスト メソッドが複数回実行された場合でも 1 回だけ実行された場合でも同じ効果があることを意味します。

1. RFC 仕様によれば、PUT、DELETE、およびセキュリティ メソッドは冪等です。仕様ではありますが、サーバー実装が冪等であるかどうかは保証されません。

2. 冪等性の導入は主に、リクエストが応答する前に接続が切断されるなど、同じリクエストが繰り返し送信される状況に対処するためのものであり、メソッドが冪等性であれば、リクエストを安全に再送信できます。これは、バック/リフレッシュ時に POST に遭遇したときにブラウザがユーザーにプロンプ​​トを表示する理由でもあります。POST セマンティクスは冪等ではないため、リクエストを繰り返すと予期しない結果が生じる可能性があります。

3. たとえば、Weibo のシナリオでは、GET のセマンティクスは「タイムライン上の最新の Weibo 投稿 20 件を見てください」というシナリオで使用され、POST のセマンティクスは「Weiboに投稿して、コメントして、いいね!」のようなシナリオです。

PHP 関連の知識について詳しくは、###php中文网### をご覧ください。 ###

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

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