この記事では、サーバーと対話するためのさまざまな方法を紹介します。 URLのフルネームは、ネットワーク上のリソースを記述するために使用されるURLアドレスであると考えることができます。増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、増加、追加、増加、4操作の削除。この時点で、誰もが一般的にリソース情報を取得/クエリするために一般的に理解する必要があり、投稿はリソース情報を更新するために使用されます。
1。HTTP仕様によると、GETは情報の取得に使用され、安全で電力が必要です。
(1)。言い換えれば、GETリクエストは一般に副作用を引き起こすべきではありません。つまり、データベースのクエリと同様に、リソース情報を取得するだけで、データを変更したり、データを増やしたり、リソースのステータスに影響しません。
*注:ここでのセキュリティの意味は、非変更情報のみを指します。
(2)。ここで私はMIウェイの概念を説明します:
iDempotentとidempotnceは、一般的に抽象代数では数学的またはコンピューターコンセプトです。
いくつかの定義を待ちます:
単眼操作の場合、操作の計算の結果と操作の計算の結果の場合、操作が同じ場合、操作の結果は操作の結果と同じです。たとえば、絶対値の操作は、実数の濃度で、abs(a)= abs(abs(a))があります。
双眼操作の場合、参加操作の2つの値が等しい場合、計算結果が参加操作の2つの値に等しい場合、操作の力は関数と呼ばれます。実数、つまり、max(x、x)= x。
上記の説明を読んだ後、Get Powerの意味を理解する必要があります。
しかし、実際のアプリケーションでは、上記の2つの規定はそれほど厳しくありません。他の人の記事を引用する例:たとえば、ニュースサイトのフロントページは絶えず更新されています。 2番目のリクエストは異なるニュースのバッチを返しますが、現在のニュースを常に返すため、操作は依然として安全でパワーであると考えられています。基本的に、目標がユーザーがリンクを開いたとき、彼は自分の観点からリソースを変更できないことを確信できるということです。
2。HTTP仕様によると、投稿はサーバー上のリソースを変更するリクエストがサーバー上のリソースを変更できることを示しています。引き続き上記の例を引用してください。コメントが異なる場合、またはリソースが変更された後のサイトのリソースが変更されているため、ニュースに関するニュースを例として実装する必要があります。
上記の上記では、HTTP仕様のGETと投稿の原則について説明します。ただし、実際には、多くの人がHTTP仕様に従ってそれを行っていません。たとえば、この問題には多くの理由があります。
1.多くの人は、貪欲で便利です。
2。増加、削除、変更、操作の確認のために、実際にPut/削除を使用せずにGet/Postを使用して完了することができます。
3.もう1つは、初期のWeb MVCフレームワークデザイナーがURLを抽象的なリソースとして意識的に扱わなかったため、より深刻な問題は、従来のWeb MVCフレームワークが基本的にGETのみをサポートし、2つのHTTPメソッドをPut and Deleteによってサポートしていないことです。
* MVCを説明するだけで、MVCはデスクトッププログラムに存在していました。Vはユーザーインターフェイスを参照し、Cはコントローラーです。 MVCを使用する目的は、MとVの実装コードを分離して、同じプログラムが異なる式フォームを使用できるようにすることです。
上記の3つのポイントは、古いスタイルのセットを説明しています(HTTP仕様の厳格なコンプライアンスなし)。
元の理由について話した後、表面画像からのGETと投稿の違いを見ていきます。
1.GETリクエストによって要求されたデータは、URLに添付され(つまり、データをHTTPプロトコルヘッダーに配置して)、URLを分割してデータを送信しますhyddd&password = idontknow&verify =%e4%bd%a0%e5%a5%bd。データが英語の文字/数字の場合、元の送信はスペースの場合、+に変換します。中国語/他の文字の場合、base64で文字列を直接暗号化してBDを取得します。 asciiは16進数で表されます。
投稿は、送信されたデータをHTTPパッケージに入れます。
2。交差点交差点
上記の文は他の記事から転送されました。これは間違っています。
(1)GETメソッドによって送信されたデータは、URLによって送信されるため、1024バイトのみであるということです。実際、URLにはパラメーターの上限の問題がなく、HTTPプロトコル仕様はURLの長さを制限しません。この制限は、特定のブラウザとサーバーの制限です。 IEのURLの制限は2083バイト(2K+35)です。 Netscape、Firefoxなどの他のブラウザの場合、長期的な制限はなく、その制限はオペレーティングシステムのサポートに依存します。
これは、パラメーター値データの長さだけでなく、URL全体の長さに制限されていることに注意してください。 [参照データ5を参照]
(2)理論では、サイズの制限はありません。
ASPプログラムの場合、リクエストオブジェクトには、各ドメインを処理するときにデータ長い制限が100kです。ただし、request.binaryreadを使用する場合、制限はありません。
この拡張から、Microsoftはセキュリティ上の理由でIIS 6.0の制限を増やしました。私たちはまだ注意を払う必要があります:
1)。
2)IIS 6.0ファイルアップロードファイルの最大サイズは4MBです。
3)。
IIS 6.0には以前にこれらの制限がありませんでした。 [参照データ5を参照]
したがって、上記の80K、100Kはデフォルト値にすぎない場合があります(注:IIS4とIIS5のパラメーターを確認していません)が、自分で設定する必要があります。 IISの各バージョンのこれらのパラメーターのデフォルト値は異なるため、関連するIIS構成ドキュメントを参照してください。
3。ASPでは、サーバーはrequest.querystringでget requestパラメーターを取得し、request.formを使用してpost requestパラメーターを取得します。 jspでは、request.getparameter(/xxxx/)を使用して、jspにgetterystring()メソッドがあります&password = hyddd、getquerystring()gets:name = hydddd&password = hydddを使用します。 PHPでは、$ _getと$ _POSTを使用してGETおよび投稿でデータを取得できますが、$ _REQUESTはGETとPOSTの2つの要求でデータを取得できます。 JSPとPHPでJSPで$ _Requestを使用するために隠された危険があることは注目に値します。
4. Postのセキュリティは、GETのセキュリティよりも高くなっています。注:ここに記載されている安全性は、上記のセキュリティと同じ概念ではありません。上記のセキュリティの意味は、データを変更することではなく、ここでのセキュリティの意味は、たとえば、GETでデータが送信される場合、ユーザー名とパスワードがURLに表示されます。 (1)ログインページはブラウザである可能性があります。サイトリクエストフォーファリー攻撃。
要約すると、データをサーバーに送信するリクエストがあり、フォームでデータを送信するリクエストです。