CodeGym /Java Blog /ランダム /パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと
John Squirrels
レベル 41
San Francisco

パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと

ランダム グループに公開済み
Java SE の学習をすでに終えている (またはそれに近づいている) 場合は、Java 開発者の職業を征服するための次のステップについて考えるときが来ました。 パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと - 1 一方では、あなたはすでに Java について十分に理解しており、IDE の操作方法、プログラムの作成方法などを知っています。しかし、プログラムで次に何をすべきでしょうか? どうすればそれらをさらにクールにして「世界に解き放つ」ことができるでしょうか?エンタープライズ テクノロジーの研究に取り組む時期が来たことが明らかになりつつあります。そして楽しいことが始まります。どのテクノロジー スタックから始めるかは問題ではありません。JavaEE であれ Spring であれ、あなたの理解をはるかに超えたものに大量に遭遇する可能性があります。Java の基本と高度なテクノロジの間には、膨大なドキュメントを読む際に残っている自制心と自信を保つために必要な知識の中間ステップが残っています。 したがって、JavaEE または Spring をさらに学習するために必要な最小限の理論的知識を提供します。この資料は 7 つの部分に分かれています。
  1. ネットワークについて少しお話します。
  2. クライアント/サーバーと 3 層のアーキテクチャを調べます。
  3. HTTP/HTTPS プロトコルについて見ていきます。
  4. Maven について知っておくべきことをすべて学びます。
  5. ログ記録について話します。
  6. サーブレットコンテナについて。
  7. 最後にMVCについて。

パート 1. ネットワークについて少しお話します。

すべてのソーシャル ネットワーク、Web サービスと Web アプリ、インスタント メッセンジャー、単純な Web サイトが構築されているもの、つまりネットワーク (この一連の記事の文脈では、「ネットワーク」という用語はインターネットを意味します)について話すことから始めましょう。。ネットワークは膨大な数のコンピュータで構成されており、それらは相互接続されており、通信可能です。Web アプリケーションはあるコンピューターから別のコンピューターに情報を送信するため、これがどのように行われるかを理解することが重要です。

OSIモデル

Open Systems Interconnection (OSI) モデルは、ネットワークを構築するための段階的なアプローチを作成します。これは、同じネットワークのエンティティがどの層でどのように相互作用できるかを明確に示しています。このモデルには合計 7 つのレイヤーが含まれています。
7 応用
6 プレゼンテーション
5 セッション
4 輸送
3 通信網
2 データリンク
1 物理的
モデルを抽象化の層に分割すると、たとえばトランスポート層で作業する開発者は、ネットワーク層やセッション層のレベルで実装の詳細について考える必要がなくなります。このアプローチはプログラミングでも使用されます。 OSI モデルのすべてのレイヤーを検討し、どのレイヤーに興味があるかを判断してみましょう。
  1. 物理層— この層は物理法則と、それを目的に使用する方法を扱います。たとえば、ケーブルを作成してネットワーク内のエンティティに敷設します。

    この層には興味がありません。

  2. データ リンク層— この層は、ネットワーク ノードにデータを送信し、物理オブジェクトのデータ送信チャネルを作成する役割を果たします。

    データ リンクを確立するハードウェア用のファームウェアを作成しない限り、この層には興味がありません。

  3. ネットワーク層— この層は、個々のネットワーク ユーザーのアドレスとそのユーザーへのルートを決定するためのものです。この層の詳細、つまりネットワーク アドレスについて詳しく知ることには価値があります。

    ネットワーク アドレスは特別なプロトコルによって定義されます。最も一般的なのは IPv4 (インターネット プロトコル バージョン 4) です。これは、Web プログラマが別のネットワーク ユーザーに連絡するために使用する必要があるプロトコルです。

    IPv4 アドレスは、ピリオドで区切られた 4 つのバイト値で構成されます (例: 192.0.2.235)。これらの値はバイトであること、つまり 0 ~ 255 の範囲内にあることを覚えておく必要があります。

    次に、IP アドレスはクラスに分類されます。単純に美しい数字の組み合わせを割り当てることはできませんが、ここではあまり深くは説明しません。IP アドレスはネットワーク ユーザーを一意に識別し、そのユーザーに連絡するために使用できることを理解するだけで十分です。

  4. トランスポート層— この層は、受信者への情報の配信を処理します。これを実現するために、さまざまなプロトコルが使用されます。今のところ、私たちはそれらには興味がありません。私たちは、この層に現れるポートの概念にもっと興味があります。

    ポートは、コンピュータ上の特定のアプリケーションを識別する役割を果たします。たとえば、Java でチャット アプリを作成し、2 台のコンピュータにインストールして、友達にメッセージを送信したいとします。あなたのメッセージはパッケージ化され、特定の IP アドレスに送信されて友人に配信されますが、友人のコンピュータはどのアプリケーションがあなたのメッセージを処理すべきかを理解していないため、受信した情報をどう処理すればよいのかわかりません。ネットワーク エンティティが通信するとき、どのアプリケーションが情報を処理すべきかを示すためにポートが使用されます。

    ポートは 0 ~ 65535 の範囲の番号です。これは、コロンの後に IP アドレスに追加されます: 192.0.2.235:8080。ただし、指定された範囲内のすべてのポートを使用することはできません。一部のポートはオペレーティング システム用に予約されており、その他のポートは特定の目的で慣例的に使用されます。さまざまなポートの目的については詳しく説明しません。今のところ、ネットワーク上の通信プロセスにおけるそれらの役割を理解するだけで十分です。

  5. セッション層— この層は通信セッションを作成および管理します。この層では、アプリケーションが対話してサービス レベルのリクエストを送信することが可能になります。知っておく必要があるのは、この層では2 人のユーザー間でセッションが開かれており、そのセッションを操作する必要があるということです。

    セッションは、 2 人のユーザー間で接続が確立されたときに作成されるエンティティです。ユーザーおよびユーザーとの対話の履歴に関する必要な情報を保存できます。重要な点は、情報交換が停止してもセッションは消滅しないということです。代わりに、一定期間その状態が保持されるため、ユーザーは休憩後も情報交換を続けることができます。

    アプリケーションが同時に複数のユーザーと通信している場合、対応する数の接続 (したがってセッション) が確立されます。各セッションには一意の識別子 (ID) があり、これによりアプリケーションは通信相手のユーザーを区別できます。

  6. プレゼンテーション層— この層はデータのエンコード/デコードを担当します。明らかに、文字列「Hello web」を別のユーザーに送信する必要がある場合、文字列はまずバイナリ コードに変換 (エンコード) されてから送信されます。受信者に到達すると、メッセージは逆変換 (デコード) され、受信者は元の文字列を確認できます。これらのアクションはプレゼンテーション層で行われます。

  7. アプリケーション層は私たちにとって最も興味深い層です。これにより、アプリケーションがネットワークと通信できるようになります。この層では、メッセージを送受信し、サービスやリモート データベースにリクエストを行います。

    この層では、POP3、FTP、SMTP、XMPP、RDP、SIP、TELNET、そしてもちろん HTTP/HTTPS など、多くのプロトコルが使用されます。プロトコルは、通信する際に遵守する世界共通の合意です。HTTP/HTTPS については、必ず別の詳細な説明を提供する予定です。

パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと - 2モデルの各層がどのように機能するかを知る必要はありません。重要なことは、Web アプリケーションを作成するときに使用する必要がある要素の動作の背後にある原則を理解することです。
  • IP アドレス — ネットワーク内のユーザーのアドレス
  • ポート — 特定のユーザーのアプリケーションのアドレス
  • セッション — 2 人のユーザー間の通信期間を通じて存在するエンティティ
  • アプリケーション プロトコル (HTTP/HTTPS) — これらは、メッセージを作成して送信するときに従うルールです。
たとえば、オンライン ストアにアクセスするとき、私たちはそのアドレスとポートを示します。最初の訪問時にセッションが作成されます。ストアはセッション内の情報を記録できます。たとえば、ストアは、ショッピング カートに残した商品に関する情報を保存する場合があります。オンライン ストアのタブを閉じて、後で再びオンライン ストアに戻った場合、アイテムはセッションに保存されているため、カート内に残ったままになります。もちろん、ストアから受け取るすべての情報は HTTP/HTTPS プロトコル経由で受信され、ブラウザはそれを処理する方法を知っています。「ブラウザにアドレスとポートを入力したことはない」と反論するかもしれませんが、それは部分的には正しいでしょう。DNS サーバーによって変換されたドメイン名を入力しました。ここで何が何であるかを詳しく見てみましょう。

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 サーバーによって実際のアドレスに変換されます。 パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと - 4私たちのアプリケーションはドメイン名と実際のアドレスの両方でリモート サービスを呼び出すため、これを理解することが重要です。どちらの場合でもサービスは同じであることを理解する必要があります。今のところはここまでです!この記事では、Web プログラミングを学び始めるときに役立つネットワークの基本について説明しました。次回は、クライアントサーバーアーキテクチャとは何か、そしてそれを理解することがなぜそれほど重要なのかを見ていきます。 パート 2. ソフトウェア アーキテクチャについて少し話しましょう パート 3. HTTP/HTTPS パート 4. Maven の基本 パート 5. サーブレットと Java サーブレット API。単純な Web アプリケーションの作成 パート 6. サーブレット コンテナー パート 7. MVC (Model-View-Controller) パターンの紹介
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION