ホームページ >ウェブフロントエンド >htmlチュートリアル >HTTP リクエストのプロセスをもう一度理解する_html/css_WEB-ITnose

HTTP リクエストのプロセスをもう一度理解する_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:33:391333ブラウズ

http プロトコルを何度も読みましたが、まだ理解が深くありません。 ここで、もう一度読んで理解してください。ヘッダー情報 rn を解析すること、および rnrn を使用してヘッダーとボディを分解することの 2 つのポイントをさらに深めてみましょう。 1 つのリクエストがネットワーク内に多数のリクエストを表示する理由は、ブラウザが複数回アクセスしているためです。プログラムを処理する必要があるのは 1 回だけです。

HTTP リクエスト

ステップ 1: ブラウザは最初に HTTP リクエストをサーバーに送信します。

メソッド: GET または POST、GET はリソースのみをリクエストします。POST にはユーザー データが伴います。 html/path;

ドメイン名: Host ヘッダーで指定: Host: www.sina.com.cn

POST の場合、リクエストにはユーザー データを含む本文も含まれます。

ステップ 2: サーバーはブラウザに HTTP 応答を返します:

応答コード: 200 は成功を意味し、3xx はリダイレクトを意味し、4xx はクライアントによって送信されたリクエストにエラーがあることを意味し、5xx はエラーを意味します。サーバー側の処理中にエラーが発生しました。

応答タイプ: Content-Type およびその他の関連ヘッダーで指定されます。通常、サーバーの HTTP 応答にはコンテンツが含まれます。レスポンスが返され、Web ページの HTML ソース コードが Body に含まれます。

ステップ 3: ブラウザーが画像などの他のリソースをサーバーに要求し続ける必要がある場合は、別の HTTP 要求を作成し、ステップ 1 と 2 を繰り返します。

Web で採用されている HTTP プロトコルは、非常にシンプルなリクエスト/レスポンス モデルを採用しており、開発が大幅に簡素化されています。ページを作成するときは、HTTP リクエストで HTML を送信するだけでよく、写真やビデオなどを添付する方法を考慮する必要はありません。ブラウザは写真やビデオをリクエストする必要がある場合、別の HTTP リクエストを送信します。したがって、HTTP リクエストは 1 つのリソースのみを処理します。

HTTP プロトコルは拡張性も優れています。ブラウザは http://www.sina.com.cn/ のホームページをリクエストしますが、Sina は これにより、リクエストの圧力がさまざまなサーバーに分散され、1 つのサイトが他のサイトにリンクでき、無数のサイトが相互にアクセスできるようになります。相互にリンクすると、それらのサイトは相互にアクセスできるようになります。 World Wide Web (略して WWW) を形成します。

HTTP 形式

すべての HTTP リクエストとレスポンスは同じ形式に従います。ヘッダーとボディの 2 つの部分が含まれます。そのうちボディはオプションです。

HTTP プロトコルはテキスト プロトコルであるため、その形式も非常にシンプルです。 HTTP GET リクエストの形式:

GET /path HTTP/1.1Header1: Value1Header2: Value2

各ヘッダーは 1 行で、改行文字は rn です。

HTTP POST リクエスト形式:

POST /path HTTP/1.1Header1: Value1Header2: Value2body data goes here...

2 つの連続した rns に遭遇すると、ヘッダー部分が終了し、後続のデータはすべてボディになります。

HTTP 応答形式:

200 OKHeader1: Value1Header2: Value2<br />body data goes here...

HTTP 応答に本文が含まれる場合は、本文も rnrn で区切られます。ボディのデータ型は Content-Type ヘッダーによって決定されることに注意してください。Web ページの場合、ボディは画像のバイナリ データです。

Content-Encoding が存在する場合、最も一般的な圧縮方法は gzip です。そのため、Content-Encoding: gzip が表示された場合は、実際のデータを取得するために最初に Body データを解凍する必要があります。圧縮の目的は、ボディのサイズを削減し、ネットワーク伝送を高速化することです。

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