JavaRush /Java Blog /Random-TW /第 1 部分:學習 Spring 和 JavaEE 之前您需要了解什麼

第 1 部分:學習 Spring 和 JavaEE 之前您需要了解什麼

在 Random-TW 群組發布
如果您已經完成或接近 Java SE 的學習,那麼是時候考慮下一步要如何征服 Java 開發人員的職業了。 第 1 部分:學習 Spring 和 JavaEE 之前您需要了解什麼 - 1一方面,您已經對 Java 有了很好的了解:您知道如何使用 IDE、編寫程式等等。但接下來我們該對它們、這些程式做什麼呢?如何讓它們變得更酷並「釋放它們到世界上」?很明顯,是時候開始研究企業技術了。這就是樂趣的開始。您決定從哪種技術堆疊開始並不重要。無論是JavaEE還是Spring,你可能會遇到很多仍然超出你理解的事情。在 Java 基礎知識和高級技術之間,還有一個中等程度的知識,可以幫助您在閱讀大量文件時不至於失去自製力和自信。 因此,本系列文章的目的是為您提供進一步學習 JavaEE 或 Spring 所需的最低限度的理論知識。所有材料分為7部分:
  1. 我們來談談網路。
  2. 讓我們考慮一下客戶端-伺服器的結構和三層架構。
  3. 讓我們來看看 HTTP/HTTPS 協定。
  4. 讓我們了解您需要了解的有關 Maven 的一切。
  5. 我們來談談servlet。
  6. Servlet 容器。
  7. 最後 - 關於 MVC。

第 1 部分:讓我們談談網絡

讓我們從最重要的事情開始,談談所有社交網路、網路服務和應用程式、即時通訊工具和簡單網站建立的基礎——關於網路(在本系列文章的上下文中,「網路」一詞意味著全球網際網路). 網路由大量電腦組成:它們相互連接並能夠通訊。了解它們是如何做到這一點很重要,因為 Web 應用程式負責將資訊從一台電腦傳輸到另一台電腦。

OSI網路模型

OSI(開放系統互連)模型創建了一種建構網路的分層方法。它清楚地顯示了同一網路的成員如何以及在什麼層面上可以相互互動。模型總共包含 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位址-使用者在網路上的位址;
  • 連接埠-特定訂閱者的應用位址;
  • Session是一個實體,存在於兩個訂閱者之間的整個通訊過程中;
  • 應用程式協定 (HTTP/HTTPS) 是指導我們撰寫和發送訊息的規則。
例如,當我們訪問線上商店時,我們會指明其位置位址和連接埠。當您第一次造訪時,會建立一個會話,商店可以在其中記錄資訊。例如,關於我們留在購物車中的商品。如果我們關閉線上商店選項卡然後返回到它,我們的產品將保留在購物車中,因為它們保存在會話中。當然,我們透過 HTTP/HTTPS 協定接收從商店收到的所有訊息,並且我們的瀏覽器可以處理它。您可以反對並說您從未在瀏覽器中輸入過地址和端口,您是對的,因為您輸入的是域名,該域名是在 DNS 伺服器上轉換的。但在這裡,讓我們更好地看看是什麼。

DNS(網域名稱系統)

正如我們已經發現的,網路上的每個訂閱者都有一個唯一的位址。如果我們談論一個應用程序,它的唯一位址將是IPv4:port。知道這個地址,您就可以直接存取該應用程式。假設我們編寫了一個 Web 應用程式來即時顯示所有國家的平均氣溫。我們將其部署在位址為226.69.237.119、連接埠為8080的伺服器上。為了讓使用者接收我們所傳送的訊息,他需要在瀏覽器中輸入5個數字:226.69.237.119:8080。人們並不真的喜歡記住一組數字:並非所有人都記得兩個以上的電話號碼。這就是域名系統被發明的原因。我們可以為我們的地址創建一個“別名”,例如 world-Temperature.com,用戶可以在瀏覽器的地址欄中輸入我們的域名,而不是使用五位數字的地址來搜尋我們。為了匹配網域名稱和真實地址,有DNS伺服器。例如,當使用者在瀏覽器中輸入 javarush.ru 時,他的請求將被傳送到 DNS 伺服器,並在其中轉換為真實位址。 第 1 部分:學習 Spring 和 JavaEE 之前您需要了解什麼 - 4理解這一點對我們來說很重要,因為在我們的應用程式中,我們將透過網域和真實地址呼叫遠端服務,而這些將是相同的服務。就這樣!在本文中,我們了解了網路設計的基礎知識,這在您開始學習網路程式設計之前將會很有用。下次我們將了解什麼是客戶端-伺服器架構以及為什麼理解它如此重要。 第 2 部分:讓我們談談軟體架構 第 3 部分:HTTP/HTTPS 協定 第 4 部分:Maven 基礎知識 第 5 部分:Servlet。寫一個簡單的 Web 應用程式 第 6 部分. Servlet 容器 第 7 部分. 介紹 MVC(模型-視圖-控制器)模式 第 8 部分. 編寫一個小型 spring-boot 應用程序
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION