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 の使い方の詳しい説明

推薦する

Nginx SSL証明書設定エラーの解決策

1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...

WeChatアプレットで画像の幅と高さを取得する方法

起源最近、私は要件 A に取り組んでいます。そこには、次のように記述される小さな機能ポイントがありま...

Vue はインターフェースのスライド効果を実装します

この記事では、インターフェースのスライド効果を実現するためのVueの具体的なコードを例として紹介しま...

モバイルデバイスで 1 ピクセルの境界線の問題を解決するいくつかの方法 (5 つの方法)

この記事では、モバイルデバイス上の 1 ピクセルの境界線の問題を解決する 5 つの方法を紹介します。...

Dockerコンテナ同士を接続する3つの方法の詳しい説明

Docker コンテナ間の相互接続と通信には 3 つの方法があります。 Docker 内部ネットワー...

Linux の一般的なハードディスク管理コマンドの紹介

目次1. dfコマンド2. duコマンド3. fsckファイルシステム修復コマンド4. ディスクステ...

HTML テーブル マークアップ チュートリアル (9): セル間隔属性 CELLSPACING

テーブルがコンパクトになりすぎないように、テーブル内のセル間に一定の距離を設定できます。基本的な構文...

MySQL 8.0.26 のインストールと簡易チュートリアル (インターネット上で最も完全)

目次1. MySQLをダウンロードする1.1 ダウンロード1.2 インストール1. MySQLをダウ...

Vueプロジェクトでvuexを使用する方法

目次Vuex とは何ですか? Vuex 使用サイクル図私のストアディレクトリvuexの例の実装要約す...

MySQLに挿入する前にデータが存在するかどうかを確認する方法

ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

ソースコードの観点からキープアライブコンポーネントのキャッシュ原理に答える

今日は、早速本題に入り、面接中に尋ねられた質問、つまりキープアライブ コンポーネントのキャッシュ原理...

Navicat for Mysql 接続エラー 1251 (接続失敗) の問題を解決する

以前書いた内容が詳細さに欠けていたため、今回は修正・補足しました。ただし、以前の MySQL バージ...

UIエンジニアのキャリアについての私たちの考え

私は長い間落ち込んでいます、なぜでしょうか?以前、お客様から、提供されたソフトウェアが正常に動作しな...