1. HTTP プロトコルの概要
http (ハイパーテキスト転送) プロトコルは、インターネット上で最も広く使用されているプロトコルです。インターネット: 主に Web サービスに使用されるネットワーク プロトコルで、HTML (Hypertext Markup Language) 形式のテキスト情報を処理するコンピュータによって実装されます。
2. Http プロトコル バージョン:
0.9 バージョン: HTML ページのみをサポート (削除されました);
バージョン1.0:
(1) マルチメディア メッセージの送信を可能にする MIME (MultiPurpose Internet Mail Extensions) メカニズムの導入;
(2) 永続リンク機能をサポートするキープアライブ メカニズムの導入 (ただし、この原則はキープアライブの機能はヘッダーに特定のフィールドを追加することで形成され、この機能はネイティブではサポートされていません);
(3) キャッシュされたページをサポートする機能の導入;
バージョン 1.1: バージョン 1.0 へのアップグレード、リクエスト接続モードのサポート、永続リンクの最適化、ページ キャッシュの最適化;
バージョン 2.0: http セマンティックに最適化された送信を提供し、spdy テクノロジーを追加します。 Spdy テクノロジ: Google によって導入されたテクノロジで、http データのやり取り、特に SSL アクセラレーション メカニズムの使用を高速化できます。一般に https プロトコルとして知られており、
は現在、インターネット、HTTP2.0バージョン。
3. 一般的な Web ページの種類:
静的ページ:
一般的なサフィックス 名前は:
テキスト: html、htm、txt、css、doc;
画像: gif、jpg、png;
ビデオ: mp4、flv;
図に示すリクエスト プロセス:
socket は、アプリケーション層とトランスポート層の間の抽象化層です。ソケットの本質はプログラミング インターフェイス (API) です。TCP/IP 層の複雑な操作を、アプリケーション層が呼び出すためのいくつかの単純なインターフェイスに抽象化します。ネットワーク上でプロセスを実現するには、中国通信が必要です。 TCP/IP は単なるプロトコル スタックであり、特別に実装する必要があり、ソケット インターフェイスである外部操作インターフェイス (API) も提供する必要があります。 Socket を通じて、TCP/IP プロトコルを使用できます。
①Web クライアントはソケットをカーネルに登録します;
②クライアントはブラウザを通じて Web サーバーにデータ要求を送信します;
③Web サーバーはクライアントの要求情報を受信します;
④クライアントによって要求されたリソースがサーバーに対してローカルである場合、http サービスは呼び出しのためにシステム カーネルに適用されます;
⑤カーネルはローカル ディスク内のデータを呼び出して、データをサーバーに送信します;
⑥http は応答メッセージを通じてユーザーが要求したリソースを送信し、最終的にクライアントに応答します;
特徴: 開発者によって事前に作成され、保存されます現在のファイル システムでは、応答速度が速く、ページのメンテナンスが面倒です。データの対話性が悪く、検索エンジンに含まれやすいです。
動的ページ:
一般的なサフィックス: php、jsp 、asp、net...
リクエスト プロセス:
静的ページとの違いは、ユーザーが動的コンテンツをリクエストすると、http サーバーがバックエンド インタープリタを呼び出すと、バックエンド インタープリタがディスクからデータを取得し、インタープリタを介して実行されて html 形式のファイルが生成されます。次に、それは応答メッセージに構築され、最終的にクライアントの要求に応答します。
特徴: Web サーバー自体は動的ページの処理をサポートしておらず、それを完了するには特別なインタープリターが必要です、ページ データは変更可能、ページのメンテナンスは比較的簡単、応答速度は遅い、データはインタラクティブであり、ページにアクセスすると、特殊な記号が含まれていますか? 、%、& (特殊記号) は検索エンジンに含めることはできません;
疑似静的ページ: 動的ページを静的ページとして偽装し、検索エンジンに含めることでハードウェア リソースを消費します;
4. HTTP プロトコル メッセージ:
request メッセージ: client→server
クライアントはサーバーにリクエストを送信します。さまざまな Web サイトがさまざまなリソース (HTML ドキュメント) をリクエストするために使用されます。
リクエスト メッセージの形式:
リクエスト ライン: 識別するために使用されます。クライアントが要求したリソース、リクエストメソッド、リクエストされたリソース、リクエストされたプロトコルは何ですか、それらは直接「スペース」で区切られています;
リクエストヘッダー : この機能は、クライアントに通知することです。クライアントによって要求された関連コンテンツを介してサーバーに送信されます (複数のヘッダーが存在する可能性があります)
空行: リクエスト ヘッダーの後に、キャリッジ リターン文字を送信することによって空行が追加されます。リクエスト ヘッダー情報が次のコンテンツに表示されなくなることをサーバーに通知するために使用される改行文字。
リクエスト エンティティ:リクエストされたページの具体的なコンテンツは何ですか
応答メッセージ (応答メッセージ): サーバー → クライアント
サーバーはクライアントの要求に応答します;
応答メッセージの形式:
開始行: 応答で使用される http プロトコルのバージョン、応答ステータス コード、およびステータス コードの簡単な情報;
応答ヘッダー: リクエスト メッセージと同様に、通常、開始行の後にいくつかのヘッダー フィールドがあります。各ヘッダー フィールドには、コロンで区切られた名前と値が含まれており、1 つ以上を含めることができます。
空行: 最後の応答ヘッダー情報の後には空行があり、復帰文字と改行文字を送信することで、空行の下にヘッダー情報がないことがクライアントに通知されます。
応答エンティティ: ページに含まれるコンテンツに実際にアクセスします;
5、HTTP リクエスト メソッド
HTTP 通信プロセスでは、各 HTTP 要求メッセージに HTTP 要求メソッドが含まれます。このメソッドは、サーバーに特定の操作を実行するようクライアントに通知するために使用されます。
一般的な HTTP リクエスト メソッド: GET、POST、HEAD
##6、HTTP ステータス コード#ステータス コードの概要:
一般的なステータス コードの説明:
上記のステータス コードの場合 該当するものがない場合情報が見つかった場合は、
HTTP ステータス コードの詳細7 を参照してください。HTTP に関する事項には、HTTP リクエストと対応するリクエストに対する応答を HTTP トランザクションと呼びますが、HTTP トランザクションは HTTP リクエストと HTTP レスポンスの完全なプロセスであると理解することもできます。
HTTP プロトコルは、デフォルトで新しい接続を開いたり閉じたりするため、非常に時間がかかり、帯域幅が大量に消費されます。TCP のスロー スタート機能により、新しい接続自体のパフォーマンスがそれぞれ低下します。したがって、開くことができる並列接続の数の上限は制限されています。したがって、デフォルトで永続接続を使用しないよりも永続接続モードを使用した方が、リクエストや TCP 切断の処理にかかる時間が短縮されるという利点があります。
8. HTTP リソース リソースは HTTP プロトコルを通じて使用され、ユーザーがブラウザーまたはユーザー エージェントを通じてサーバーにメッセージを送信できるようにします。 http プロトコルに基づいて、HTML ドキュメントや画像などのコンテンツを要求および取得します。
リソース タイプ: MIME によってマークされます;
形式: メイン タグとこのタグ;
一般的な MIME タイプ:
9. URL の紹介URL、正式名はUniform Resource Location、中国語訳はUniform Resource Locator、Webページアドレスとも呼ばれます( Webサイト)。番地と同様、インターネット上のリソースの標準的な一意のアドレスです。平たく言えば、URL はインターネット上の情報リソースを記述するために使用される文字列であり、主にさまざまな www クライアントおよびサーバー プログラムで使用されます。 URL は統一された形式を使用して、ファイル、サーバー アドレス、ディレクトリなどのさまざまな情報リソースを記述することができます。厳密に言えば、各 URL は URI であり、インターネット リソースを識別し、そのリソースを操作したりリソースを取得したりする方法を指定します。
URL の形式は、次の 3 つの部分で構成されます。
最初の部分はプロトコルです (例: http)。
2 番目の部分は、ホスト リソース サーバーの IP アドレスまたはドメイン名 (ポート番号) です。例: www.kgc.cn
3 番目の部分は、ホスト リソースの特定のアドレスです。ディレクトリやファイル名など。例: Teacher/index.html
最初の部分と 2 番目の部分は「://」記号で区切られ、2 番目の部分と 3 番目の部分は「/」記号で区切ります。 1 番目と 2 番目の部分は必須で、3 番目の部分は省略可能です
#10. URI の紹介##URI (Uniform Resource Identifier) と呼ばれます中国語の同じリソース識別子。インターネット リソースの名前を識別するために使用される文字列です。この識別により、ユーザーは特定のプロトコルを通じてリソースと対話できるようになります。 HTML ドキュメント、画像、ビデオ クリップ、プログラムなど、Web 上で利用可能なすべてのリソースは、ユニバーサル リソース ID によって検索されます。したがって、URI を使用して各リソースの名前を識別できます;
11. http はどのようにして複数のリクエストを同時に接続しますかhttp のデフォルトは次のとおりです。ブロッキング モデルで動作すると、デフォルトでは一度に 1 つのリクエストのみが受信され、リクエストが処理された後に次のリクエストが受信されるため、1 つずつしか受信できません。
したがって、ユーザーのリクエストに同時に応答する必要があり、マルチプロセス モデルが必要になります。 Web サーバー自体は、ユーザーのリクエストに応答するために複数の子プロセスを生成します。つまり、ユーザーのリクエストが Web サーバーに送信されると、メインの Web プロセスはユーザーのリクエストに直接応答せず、子プロセスを生成します。このようにして、子プロセスがこのユーザーとの接続を確立した後に実行されます。 Web のメインプロセスは別のユーザーのリクエストを待ち、2 番目のユーザーのリクエストが来ると、2 番目のユーザーのリクエストに応答する子プロセスが生成されます。等々。したがって、すべてのユーザー要求は子プロセスによって処理されます。
CDN コンピュータ ルーム: CDN コンピュータ ルームは静的リソースの保存に使用されます
ユーザーがデータをリクエストしたい場合、Web サーバーにリクエストを送信し、それに応答します。クライアントが存在する場合、世界中の何億人もの人々がバックエンドサーバーにリクエストをした場合、バックエンドサーバーはそれを処理できず、アクセス速度が非常に遅くなります。 CDN, cdn としてのもの ページのコンテンツが保存されます。クライアントがページにアクセスすると、まず CDN コンピュータ ルームにアクセスします。CDN コンピュータ ルームにキャッシュがない場合は、ソースに戻り、そしてCDN のコピーをキャッシュしてクライアントに提示すると、次回アクセスするときにソースに戻る必要がなく、CDN 上で直接アクセスできるため、バックエンド サーバーへの負担が軽減されます。
関連記事チュートリアル: Web セキュリティ チュートリアル
以上がHTTPプロトコルの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。