HTTP および HTTP コラボレーション Web サーバー アクセス フロー図

HTTP および HTTP コラボレーション Web サーバー アクセス フロー図

Web サーバーは、独立したドメイン名を持つ複数の Web サイトを構築できるほか、通信経路上のトランジット サーバーとして機能して伝送効率を向上させることもできます。

1. 単一の仮想ホストで複数のドメイン名を実装する

HTTP/1.1 仕様では、1 つの HTTP サーバーで複数の Web サイトをホストできます。

物理的にサーバーが 1 台しかない場合でも、仮想ホスト機能を使用することで複数のサーバーが存在することが想定されます。

インターネットでは、対象のウェブサイトにアクセスする前に、DNS サービスを通じてドメイン名が IP アドレスにマッピングされます (ドメイン名解決)。リクエストがサーバーに送信されると、すでに IP アドレスの形式でアクセスされていることがわかります。

したがって、サーバーが www.tricorder.jp と www.hackr.jp という 2 つのドメイン名をホストしている場合、リクエストを受信すると、どのドメイン名にアクセスするかを判断する必要があります。

読書ノート: HTTPのグラフィカルな説明 (V) HTTPと連携するWebサーバー

読書ノート: HTTPのグラフィカルな説明 (V) HTTPと連携するWebサーバー

仮想ホストは同じ IP アドレスで、異なるホスト名とドメイン名を持つ複数の Web サイトをホストできるため、HTTP リクエストを送信するときは、ホスト名またはドメイン名の URI を Host ヘッダーに完全に指定する必要があります。

2. 通信データ転送手順: プロキシ、ゲートウェイ、トンネル

これらのアプリケーションとサーバーは、通信回線上の次のサーバーに要求を転送し、そのサーバーからの応答を受信して​​クライアントに転送することができます。

①プロキシ:プロキシサーバーの基本的な動作は、クライアントからのリクエストを受信し、他のサーバーに転送することです。プロキシはリクエスト URI を変更せず、リソースを保持しているターゲット サーバーに直接送信します。リソース エンティティを保持するサーバーは、オリジン サーバーと呼ばれます。ソースサーバーから返された応答は、プロキシサーバーを通過した後、クライアントに送信されます。

読書ノート: HTTPのグラフィカルな説明 (V) HTTPと連携するWebサーバー

プロキシ サーバーを使用する理由としては、キャッシュ テクノロジを使用してネットワーク帯域幅のトラフィックを削減すること、組織内の特定の Web サイトへのアクセスを制御すること、アクセス ログを取得することを主な目的としていることなどが挙げられます。

プロキシを使用する方法はいくつかあります。

キャッシュプロキシ:

プロキシが応答を転送する場合、キャッシュ プロキシはリソースのコピーをプロキシ サーバーに事前に保存します。プロキシは同じリソースの要求を再度受信すると、元のサーバーからリソースを取得する代わりに、以前にキャッシュされたリソースを応答として返すことができます。

透過プロキシ:

要求または応答を転送するときにメッセージに対して何の処理も実行しないプロキシ タイプは、透過プロキシと呼ばれます。逆に、メッセージの内容を処理するプロキシは非透過プロキシと呼ばれます。

②ゲートウェイ:ゲートウェイの動作メカニズムはプロキシの動作メカニズムと非常に似ています。ゲートウェイにより、通信回線上のサーバーは HTTP 以外のプロトコル サービスを提供できるようになります。ゲートウェイを使用すると、クライアントとゲートウェイ間の通信回線で暗号化を使用して接続のセキュリティを確保できるため、通信のセキュリティを実現できます。

③ トンネル:トンネルは必要に応じて他のサーバーとの通信回線を確立し、SSLなどの暗号化方式を使用して通信を行うことができます。トンネルの目的は、クライアントがサーバーと安全に通信できるようにすることです。

トンネル自体は HTTP リクエストを解析しません。つまり、リクエストはそのまま後続のサーバーに転送されます。通信中の双方が切断するとトンネルは終了します。

読書ノート: HTTPのグラフィカルな説明 (V) HTTPと連携するWebサーバー

3. リソースを節約するためのキャッシュ

キャッシュは、プロキシ サーバーまたはクライアントのローカル ディスクに保存されているリソースのコピーです。キャッシュを使用すると、サーバーへのアクセスが削減され、通信トラフィックと通信時間が節約されます。

キャッシュ サーバーはプロキシ サーバーの一種であり、キャッシュ プロキシ タイプに分類されます。

読書ノート: HTTPのグラフィカルな説明 (V) HTTPと連携するWebサーバー

①キャッシュの有効期限

②クライアントキャッシュ

<<:  LinuxでRPMを使用してmysql5.7.17をインストールする

>>:  JavaScript WeakMap の使い方の詳しい説明

推薦する

MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明

序文mysqlslap は、MySQL サーバーへのクライアント負荷をシミュレートし、各ステージの時...

MySQL 8.0.16 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16圧縮パッケージのインストールと設定方法を参考までに紹介します。...

Tomcat セキュリティ仕様 (Tomcat セキュリティ強化と仕様)

tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...

Vue は動的な円形のパーセンテージ進捗バーを実装します

最近、小さなプログラムを開発しているときに、次の設計図のような円形のパーセンテージ進捗状況バーを実装...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

Vue プロジェクトにおけるトランジション コンポーネントの適用の概要

​Vue のトランジションは、アニメーション トランジションをカプセル化するコンポーネントです。一般...

vue3を使用してAppleシステムのサイドメッセージプロンプト効果を模倣する

目次アニメーションプレビューその他のUIライブラリ始めるコンポーネントディレクトリ構造トーストおおよ...

HTML テーブル マークアップ チュートリアル (4): 境界線の色属性 BORDERCOLOR

テーブルを美しくするために、テーブルにさまざまな境界線の色を設定できます。基本的な構文<テーブ...

VUE uni-app でよく使用される API についての簡単な説明

目次1. ルーティングとページジャンプ2. インターフェース要約する1. ルーティングとページジャン...

Linux の ufw ファイアウォールの紹介

Linux のufw (Uncomplicated Firewall) を見て、ファイアウォールに変...

MySQLクエリの文字セットの不一致の問題を解決する方法

問題を見つける最近、仕事で問題が発生しました。MySQL データベースにテーブルを作成するときに、ラ...

トークン生成と検証を実装するミニプログラム

目次プロセスデモミニプログラムバックエンドインターフェースプロセス各リクエストインターフェースは検証...

CentOS 環境で NFS リモート ディレクトリ マウントを使用する手順の紹介

目次1. NFS の概要2. NFS構築1. NFSサーバーの構築2. NFSクライアントの構築3....

CSS テキスト装飾 text-decoration と text-emphasis の詳細な説明

CSS では、テキストは私たちが毎日扱う最も一般的なものの 1 つです。テキストの場合、テキストの装...

CentOS 7.x dockerはoverlay2ストレージ方式を使用する

/etc/docker/daemon.json を編集し、以下を追加します。 { "ストレ...