JavaRush /Java 博客 /Random-ZH /第 1 部分:学习 Spring 和 JavaEE 之前您需要了解什么

第 1 部分:学习 Spring 和 JavaEE 之前您需要了解什么

已在 Random-ZH 群组中发布
如果您已经完成或接近 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