JavaRush /Java Blog /Random-JA /パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと

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

Random-JA グループに公開済み
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 アプリケーションはあるコンピューターから別のコンピューターに情報を転送する役割を担うため、これがどのように行われるかを理解することが重要です。

OSIネットワークモデル

OSI (Open Systems Interconnection) モデルは、ネットワークを構築するための階層化されたアプローチを作成します。同じネットワークのメンバーがどのレベルでどのように相互作用できるかを明確に示します。このモデルには合計 7 つのレベルが含まれています。
7 適用済み
6 表現
5 セッション
4 輸送
3 通信網
2 ダクト
1 物理的な
抽象化層に分割すると、たとえばトランスポート層で作業する専門家は、ネットワーク層やセッション層でのネットワーク実装の詳細について考える必要がなくなります。このアプローチはプログラミングでも使用されます。 OSI モデルのすべての層を見て、興味のある層を見つけてみましょう。
  1. 1. 物理的レベル- ここでは物理法則がその役割を果たしており、人間の仕事はこれを自分の目的のために使用し、方向付けることです。たとえば、ケーブルを作成してネットワーク メンバーに敷設します。

    私たちは興味がありません。

  2. データ リンク層- ネットワーク ノードへのデータの送信と、物理オブジェクト上でのデータ送信チャネルの作成を担当します。

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

    アプリケーションが同時に複数のユーザーと通信する場合、適切な数の接続、つまりセッションが確立されます。各セッションには一意の識別子 (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:portになります。このアドレスがわかれば、アプリケーションに直接アクセスできます。すべての国の平均気温をリアルタイムで表示する Web アプリケーションを作成したと想像してみましょう。これをアドレス 226.69.237.119 のポート 8080 のサーバーにデプロイしました。ユーザーが当社から情報を受け取るには、ブラウザーに 5 つの数字 226.69.237.119:8080 を入力する必要があります。人々は一連の番号を覚えるのがあまり好きではありません。私たち全員が 2 つ以上の電話番号を覚えているわけではありません。これが、ドメイン ネーム システムが発明された理由です。アドレスの「エイリアス」(たとえば、world-temperature.com)を作成すると、ユーザーは 5 桁のアドレスを使用して当社を検索する代わりに、ブラウザのアドレス バーにドメイン名を入力できます。ドメイン名と実際のアドレスを照合するために、 DNS サーバーがあります。ユーザーがブラウザにたとえば javarush.ru と入力すると、そのリクエストは DNS サーバーに送信され、そこで実際のアドレスに変換されます。 パート 1. Spring と JavaEE を学ぶ前に知っておくべきこと - 4このことを理解することが重要です。アプリケーションでは、ドメイン名と実際のアドレスの両方でリモート サービスを呼び出すことになり、これらは同じサービスになるからです。それだけです!この記事では、Web プログラミングの学習を始める前に役立つネットワーク設計の基本について説明しました。次回は、クライアントサーバーアーキテクチャとは何か、そしてそれを理解することがなぜそれほど重要なのかを見ていきます。 パート 2. ソフトウェア アーキテクチャについて少し話しましょう パート 3. HTTP/HTTPS プロトコル パート 4. Maven の基本 パート 5. サーブレット。単純な Web アプリケーションの作成 パート 6. サーブレット コンテナー パート 7. MVC (Model-View-Controller) パターンの紹介 パート 8. 小さな Spring-Boot アプリケーションの作成
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION