HTTPプロトコル要点まとめ(パケット、リクエスト方式)
2833 ワード
一、httpプロトコルとは何ですか.
w 3 cによって作成されたネットワークアプリケーション層プロトコルは、ブラウザとウェブサーバとの間の通信のプロセスおよび通信時に使用されるデータフォーマットを定義する. 1)通信のプロセス Step 1,ブラウザはwebサーバとの接続を確立する Step 2では、ブラウザが要求データをパッケージ化(要求パケットを生成)してwebサーバに送信する. Step 3では,webサーバが処理結果をパッケージ化(応答パケットを生成)してブラウザに送信する. Step 4,webサーバは接続を閉じます. ブラウザがリクエストを再送信する場合は、新しい接続を再確立する必要があります. 特徴:1回のリクエスト、1回の接続. メリット: Webサーバは、限られた接続を利用して、できるだけ多くのクライアント(ブラウザ)サービスを提供することができる. 2)データフォーマット
a,要求パケット
次のようになります.
要求明細:要求方式要求リソースパスプロトコルタイプとバージョン メッセージヘッダ: メッセージヘッダはいくつかのキー値ペアであり、一般的にw 3 cによって定義され、ブラウザとwebサーバの間で送信することができ、特定の意味を表す.例えば、ブラウザは「user-agent」メッセージヘッダを送信し、webサーバブラウザのタイプとバージョンを伝えることができる. エンティティの内容: リクエスト方式がpostの場合にのみ値(リクエストパラメータ)があり、リクエスト方式がgetの場合、リクエストパラメータはリクエストリソースパスの後ろに追加されます.
b,レスポンスパケット
次のようになります.
ステータスライン:プロトコルタイプとバージョンステータスコードのステータス説明 b 1、ステータスコードとは は、w 3 cによって定義され、サーバが要求を処理する状態を表す3桁の数字である. b 2、一般的なステータスコード 200: サーバ処理要求は正常です. 404: サーバはリクエストパスに基づいて対応するリソースが見つかりません. 500: システムエラー、サーバー側のプログラムが実行中にエラーが発生しました. 405:サーバは要求を処理するために実行可能な方法が見つからない. メッセージヘッダ: サーバは、「content-type」などのメッセージヘッダをブラウザに送信して、サーバが返すデータ型と符号化フォーマット(文字セット)をブラウザに伝えることもできます. エンティティの内容: プログラム処理の結果、ブラウザはエンティティコンテンツのデータを取り出し、対応するページを生成します.
二、請求方式
1)ブラウザがgetリクエストを送信する場合 a,ブラウザアドレスバーに直接アドレスを入力する b、リンクをクリック c,フォームはデフォルトのコミット方式を用いる 2)getリクエストの特徴 aは、要求パラメータを要求リソースパスの後ろに配置し、少量のデータしか提出できない(要求行は最大2 k程度のデータしか保存できないため). b、要求パラメータがブラウザのアドレスバーに表示され、安全ではありません(ルータは要求アドレスを記録します). 3)ブラウザがpostリクエストを送信する場合 フォームのmethodプロパティ値をpostに設定 4)postリクエストの特徴 aは,要求パラメータをエンティティコンテンツに格納し,大量のデータをコミットできる. b,要求パラメータはブラウザアドレスバーに表示されず,比較的安全である(ブラウザは暗号化されていない). getでもpostでもリクエストパラメータは暗号化されないので、機密データであれば暗号化処理(https)が一般的です.
w 3 cによって作成されたネットワークアプリケーション層プロトコルは、ブラウザとウェブサーバとの間の通信のプロセスおよび通信時に使用されるデータフォーマットを定義する. 1)通信のプロセス Step 1,ブラウザはwebサーバとの接続を確立する Step 2では、ブラウザが要求データをパッケージ化(要求パケットを生成)してwebサーバに送信する. Step 3では,webサーバが処理結果をパッケージ化(応答パケットを生成)してブラウザに送信する. Step 4,webサーバは接続を閉じます. ブラウザがリクエストを再送信する場合は、新しい接続を再確立する必要があります. 特徴:1回のリクエスト、1回の接続. メリット: Webサーバは、限られた接続を利用して、できるだけ多くのクライアント(ブラウザ)サービスを提供することができる. 2)データフォーマット
a,要求パケット
次のようになります.
POST /web02/hello HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://localhost:8888/web02/hello_form.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 16
要求明細:要求方式要求リソースパスプロトコルタイプとバージョン メッセージヘッダ: メッセージヘッダはいくつかのキー値ペアであり、一般的にw 3 cによって定義され、ブラウザとwebサーバの間で送信することができ、特定の意味を表す.例えば、ブラウザは「user-agent」メッセージヘッダを送信し、webサーバブラウザのタイプとバージョンを伝えることができる. エンティティの内容: リクエスト方式がpostの場合にのみ値(リクエストパラメータ)があり、リクエスト方式がgetの場合、リクエストパラメータはリクエストリソースパスの後ろに追加されます.
b,レスポンスパケット
次のようになります.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Content-Length: 30
Date: Thu, 05 Dec 2013 07:16:28 GMT
ステータスライン:プロトコルタイプとバージョンステータスコードのステータス説明 b 1、ステータスコードとは は、w 3 cによって定義され、サーバが要求を処理する状態を表す3桁の数字である. b 2、一般的なステータスコード 200: サーバ処理要求は正常です. 404: サーバはリクエストパスに基づいて対応するリソースが見つかりません. 500: システムエラー、サーバー側のプログラムが実行中にエラーが発生しました. 405:サーバは要求を処理するために実行可能な方法が見つからない. メッセージヘッダ: サーバは、「content-type」などのメッセージヘッダをブラウザに送信して、サーバが返すデータ型と符号化フォーマット(文字セット)をブラウザに伝えることもできます. エンティティの内容: プログラム処理の結果、ブラウザはエンティティコンテンツのデータを取り出し、対応するページを生成します.
二、請求方式
1)ブラウザがgetリクエストを送信する場合 a,ブラウザアドレスバーに直接アドレスを入力する b、リンクをクリック c,フォームはデフォルトのコミット方式を用いる 2)getリクエストの特徴 aは、要求パラメータを要求リソースパスの後ろに配置し、少量のデータしか提出できない(要求行は最大2 k程度のデータしか保存できないため). b、要求パラメータがブラウザのアドレスバーに表示され、安全ではありません(ルータは要求アドレスを記録します). 3)ブラウザがpostリクエストを送信する場合 フォームのmethodプロパティ値をpostに設定 4)postリクエストの特徴 aは,要求パラメータをエンティティコンテンツに格納し,大量のデータをコミットできる. b,要求パラメータはブラウザアドレスバーに表示されず,比較的安全である(ブラウザは暗号化されていない). getでもpostでもリクエストパラメータは暗号化されないので、機密データであれば暗号化処理(https)が一般的です.