
- ネットワークについて少しお話します。
- クライアント/サーバーと 3 層のアーキテクチャを調べます。
- HTTP/HTTPS プロトコルについて見ていきます。
- Maven について知っておくべきことをすべて学びます。
- ログ記録について話します。
- サーブレットコンテナについて。
- 最後にMVCについて。
パート 1. ネットワークについて少しお話します。
すべてのソーシャル ネットワーク、Web サービスと Web アプリ、インスタント メッセンジャー、単純な Web サイトが構築されているもの、つまりネットワーク (この一連の記事の文脈では、「ネットワーク」という用語はインターネットを意味します)について話すことから始めましょう。。ネットワークは膨大な数のコンピュータで構成されており、それらは相互接続されており、通信可能です。Web アプリケーションはあるコンピューターから別のコンピューターに情報を送信するため、これがどのように行われるかを理解することが重要です。OSIモデル
Open Systems Interconnection (OSI) モデルは、ネットワークを構築するための段階的なアプローチを作成します。これは、同じネットワークのエンティティがどの層でどのように相互作用できるかを明確に示しています。このモデルには合計 7 つのレイヤーが含まれています。7 | 応用 |
6 | プレゼンテーション |
5 | セッション |
4 | 輸送 |
3 | 通信網 |
2 | データリンク |
1 | 物理的 |
-
物理層— この層は物理法則と、それを目的に使用する方法を扱います。たとえば、ケーブルを作成してネットワーク内のエンティティに敷設します。
この層には興味がありません。
-
データ リンク層— この層は、ネットワーク ノードにデータを送信し、物理オブジェクトのデータ送信チャネルを作成する役割を果たします。
データ リンクを確立するハードウェア用のファームウェアを作成しない限り、この層には興味がありません。
-
ネットワーク層— この層は、個々のネットワーク ユーザーのアドレスとそのユーザーへのルートを決定するためのものです。この層の詳細、つまりネットワーク アドレスについて詳しく知ることには価値があります。
ネットワーク アドレスは特別なプロトコルによって定義されます。最も一般的なのは IPv4 (インターネット プロトコル バージョン 4) です。これは、Web プログラマが別のネットワーク ユーザーに連絡するために使用する必要があるプロトコルです。
IPv4 アドレスは、ピリオドで区切られた 4 つのバイト値で構成されます (例: 192.0.2.235)。これらの値はバイトであること、つまり 0 ~ 255 の範囲内にあることを覚えておく必要があります。
次に、IP アドレスはクラスに分類されます。単純に美しい数字の組み合わせを割り当てることはできませんが、ここではあまり深くは説明しません。IP アドレスはネットワーク ユーザーを一意に識別し、そのユーザーに連絡するために使用できることを理解するだけで十分です。
-
トランスポート層— この層は、受信者への情報の配信を処理します。これを実現するために、さまざまなプロトコルが使用されます。今のところ、私たちはそれらには興味がありません。私たちは、この層に現れるポートの概念にもっと興味があります。
ポートは、コンピュータ上の特定のアプリケーションを識別する役割を果たします。たとえば、Java でチャット アプリを作成し、2 台のコンピュータにインストールして、友達にメッセージを送信したいとします。あなたのメッセージはパッケージ化され、特定の IP アドレスに送信されて友人に配信されますが、友人のコンピュータはどのアプリケーションがあなたのメッセージを処理すべきかを理解していないため、受信した情報をどう処理すればよいのかわかりません。ネットワーク エンティティが通信するとき、どのアプリケーションが情報を処理すべきかを示すためにポートが使用されます。
ポートは 0 ~ 65535 の範囲の番号です。これは、コロンの後に IP アドレスに追加されます: 192.0.2.235:8080。ただし、指定された範囲内のすべてのポートを使用することはできません。一部のポートはオペレーティング システム用に予約されており、その他のポートは特定の目的で慣例的に使用されます。さまざまなポートの目的については詳しく説明しません。今のところ、ネットワーク上の通信プロセスにおけるそれらの役割を理解するだけで十分です。
-
セッション層— この層は通信セッションを作成および管理します。この層では、アプリケーションが対話してサービス レベルのリクエストを送信することが可能になります。知っておく必要があるのは、この層では2 人のユーザー間でセッションが開かれており、そのセッションを操作する必要があるということです。
セッションは、 2 人のユーザー間で接続が確立されたときに作成されるエンティティです。ユーザーおよびユーザーとの対話の履歴に関する必要な情報を保存できます。重要な点は、情報交換が停止してもセッションは消滅しないということです。代わりに、一定期間その状態が保持されるため、ユーザーは休憩後も情報交換を続けることができます。
アプリケーションが同時に複数のユーザーと通信している場合、対応する数の接続 (したがってセッション) が確立されます。各セッションには一意の識別子 (ID) があり、これによりアプリケーションは通信相手のユーザーを区別できます。
-
プレゼンテーション層— この層はデータのエンコード/デコードを担当します。明らかに、文字列「Hello web」を別のユーザーに送信する必要がある場合、文字列はまずバイナリ コードに変換 (エンコード) されてから送信されます。受信者に到達すると、メッセージは逆変換 (デコード) され、受信者は元の文字列を確認できます。これらのアクションはプレゼンテーション層で行われます。
-
アプリケーション層は私たちにとって最も興味深い層です。これにより、アプリケーションがネットワークと通信できるようになります。この層では、メッセージを送受信し、サービスやリモート データベースにリクエストを行います。
この層では、POP3、FTP、SMTP、XMPP、RDP、SIP、TELNET、そしてもちろん HTTP/HTTPS など、多くのプロトコルが使用されます。プロトコルは、通信する際に遵守する世界共通の合意です。HTTP/HTTPS については、必ず別の詳細な説明を提供する予定です。

- IP アドレス — ネットワーク内のユーザーのアドレス
- ポート — 特定のユーザーのアプリケーションのアドレス
- セッション — 2 人のユーザー間の通信期間を通じて存在するエンティティ
- アプリケーション プロトコル (HTTP/HTTPS) — これらは、メッセージを作成して送信するときに従うルールです。
DNS (ドメインネームシステム)
すでに学んだように、各ネットワーク ユーザーは一意のアドレスを持っています。アプリケーションについて話している場合、その一意のアドレスはIPv4-address:portになります。このアドレスがわかっていれば、アプリケーションに直接アクセスできます。すべての国の平均気温をリアルタイムで表示する Web アプリケーションを作成したと想像してください。これを、アドレス 226.69.237.119 のポート 8080 のサーバーに展開しました。当社から情報を受信できるようにするには、ユーザーはブラウザに 5 つの数字 226.69.237.119:8080 を入力する必要があります。人々は一連の数字を覚えるのが好きではありません。私たちの多くは 2 つ以上の電話番号を覚えられません。だからこそ、ドメインネームシステムは発明されました。アドレスの「エイリアス」を作成できます (例: world-temperature.com)。覚えにくい 5 つの数字で構成されるアドレスを使用して当社を探す代わりに、ユーザーはブラウザのアドレス バーに当社のドメイン名を入力できます。ドメイン名を実際のアドレスにマッピングするDNS サーバーがあります。たとえば、ユーザーがブラウザに codegym.cc を入力すると、そのリクエストは DNS サーバーに送信され、DNS サーバーによって実際のアドレスに変換されます。
GO TO FULL VERSION