CodeGym /Java 博客 /随机的 /第 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. 我们将探讨 HTTP/HTTPS 协议。
  4. 我们将学习您需要了解的关于 Maven 的一切。
  5. 我们正在谈论日志记录。
  6. 关于 servlet 容器。
  7. 最后,关于 MVC。

第 1 部分。我们将稍微谈谈网络。

让我们从最重要的事情开始,谈谈每个社交网络、Web 服务和 Web 应用程序、即时通讯工具和简单网站的构建基础 — 网络(在本系列文章的上下文中,术语“网络”表示互联网) . 网络由大量计算机组成:它们相互连接并且能够通信。了解它们是如何做到这一点很重要,因为 Web 应用程序将信息从一台计算机发送到另一台计算机。

OSI模型

开放系统互连 (OSI) 模型创建了一种构建网络的分层方法。它清楚地显示了同一网络的实体如何以及在什么层可以相互交互。这个模型总共包含 7 层:
7 应用
6个 推介会
5个 会议
4个 运输
3个 网络
2个 数据链接
1个 身体的
例如,将模型分解为抽象层允许从事传输层工作的开发人员不必考虑网络层和会话层级别的实现细节。这种方法也用于编程。 让我们考虑 OSI 模型的所有层,并确定我们感兴趣的层:
  1. 物理层——这一层处理物理定律以及如何将它们用于我们的目的。例如,创建电缆并将它们铺设到网络中的实体。

    我们对这一层不感兴趣。

  2. 数据链路层——该层负责向网络节点传输数据,并为物理对象创建数据传输通道。

    我们对该层不感兴趣,除非您想为建立数据链路的硬件编写固件。

  3. 网络层——该层用于确定各个网络用户的地址和到他们的路由。了解更多关于该层的详细信息(即网络地址)是有价值的。

    网络地址由特殊协议定义:最常见的是 IPv4(Internet 协议版本 4)。这是网络程序员需要用来联系另一个网络用户的协议。

    IPv4 地址由以句点分隔的四个字节值组成,例如:192.0.2.235。您应该记住这些值是字节,这意味着它们位于 0..255 范围内。

    IP 地址又分为几类。我们不能简单地给自己分配一个漂亮的数字组合,但我们不会在这里深入。了解 IP 地址唯一标识网络用户并可用于联系该用户就足够了。

  4. 传输层——这一层负责将信息传递给收件人。使用各种协议来实现这一点。目前,我们对它们不感兴趣。我们对出现在这一层的端口的概念更感兴趣。

    端口负责识别计算机上的特定应用程序。例如,假设您用 Java 编写了一个聊天应用程序,将其安装在 2 台计算机上,并希望向您的好友发送消息。你的消息被打包,发送到一个特定的 IP 地址,并传递给你的伙伴,但他的计算机不知道如何处理收到的信息,因为它不知道应该由哪个应用程序来处理你的消息。当网络实体进行通信时,端口用于指示应由哪个应用程序处理信息。

    端口是 0 到 65535 范围内的数字。它被添加到冒号后的 IP 地址:192.0.2.235:8080。但是您不能使用指定范围内的所有端口:其中一些端口是为操作系统保留的,其他端口通常用于特定目的。我们不会深入研究不同端口的用途。现在,了解它们在网络通信过程中的作用就足够了。

  5. 会话层——该层创建和管理通信会话。在这一层,应用程序可以进行交互,发送服务级请求。我们需要知道的是,在这一层,两个用户之间打开了一个会话,我们必须对会话进行操作。

    会话是在两个用户之间建立连接时创建的实体。它可以存储有关用户的必要信息以及与用户交互的历史记录。一个重要的细节是,当信息交换停止时,会话不会消失。相反,它会在一段时间内保持其状态,因此用户可以在休息后继续交换信息。

    如果应用程序同时与多个用户通信,则会建立相应数量的连接(以及会话)。每个会话都有一个唯一标识符 (ID),它允许应用程序区分与之通信的用户。

  6. 表示层——该层负责编码/解码数据。显然,如果我们需要将字符串“Hello web”发送给另一个用户,首先会将其转换(编码为)二进制代码,然后再发送。到达收件人后,消息被转换回(解码),收件人可以看到原始字符串。这些操作发生在表示层。

  7. 应用层是我们最感兴趣的层。它允许应用程序与网络通信。在这一层,我们接收和发送消息,并向服务和远程数据库发出请求。

    这一层使用了许多协议:POP3、FTP、SMTP、XMPP、RDP、SIP、TELNET,当然还有 HTTP/HTTPS。协议是我们在通信时遵守的通用协议。我们一定会单独提供 HTTP/HTTPS 的详细讨论。

第 1 部分。学习 Spring 和 JavaEE 之前需要了解的内容 - 2我们不需要知道模型的每一层是如何工作的。最主要的是理解我们在编写 Web 应用程序时必须使用的元素的操作背后的原理,即:
  • IP 地址——用户在网络中的地址
  • 端口——特定用户应用程序的地址
  • 会话——在两个用户之间的整个通信期间存在的实体
  • 应用程序协议 (HTTP/HTTPS) — 这些是我们在撰写和发送消息时将遵循的规则。
例如,当我们访问在线商店时,我们会指明其地址和端口。在我们第一次访问时,会创建一个会话。商店可以在会话中记录信息。例如,商店可能会保存有关我们留在购物车中的商品的信息。如果我们关闭在线商店的选项卡,稍后再返回,我们的商品仍将在购物车中,因为它们已保存在会话中。当然,我们通过 HTTP/HTTPS 协议从商店收到的所有信息,我们的浏览器知道如何处理它。您可能会反对,说您从未在浏览器中输入地址和端口,您可能是部分正确的。您所做的只是输入由 DNS 服务器转换的域名。让我们更好地了解这里的内容。

DNS(域名系统)

正如我们已经了解到的,每个网络用户都有一个唯一的地址。如果我们谈论的是应用程序,那么它的唯一地址将是IPv4-address:port。如果您知道此地址,则可以直接访问该应用程序。想象一下,我们编写了一个实时显示所有国家/地区平均气温的 Web 应用程序。我们将其部署在地址为 226.69.237.119、端口 8080 的服务器上。为了能够接收到我们的信息,用户必须在浏览器中输入 5 个数字:226.69.237.119:8080。人们不喜欢记住一组数字:我们中的许多人不能记住两个以上的电话号码。这就是为什么域名系统被发明。我们可以为我们的地址创建一个“别名”,例如 world-temperature.com。用户无需使用由五个难记数字组成的地址来寻找我们,而是可以在浏览器的地址栏中输入我们的域名。有将域名映射到真实地址的DNS 服务器。例如,当用户在浏览器中输入 codegym.cc 时,她的请求会发送到 DNS 服务器,由 DNS 服务器将其转换为实际地址。 第 1 部分。学习 Spring 和 JavaEE 之前需要了解的内容 - 4这对我们来说很重要,因为我们的应用程序将通过域名和真实地址调用远程服务。我们需要了解,无论哪种情况,服务都是相同的。就这样吧!在本文中,我们了解了网络的基础知识,这将在您开始学习 Web 编程时派上用场。下一次我们将了解什么是客户端-服务器架构,以及为什么理解它如此重要。 第 2 部分。我们来谈谈软件架构 第 3 部分。HTTP/HTTPS 第 4 部分。Maven 的基础知识 第 5 部分。Servlets 和 Java Servlet API。编写一个简单的 Web 应用程序 第 6 部分。Servlet 容器 第 7 部分。介绍 MVC(模型-视图-控制器)模式
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION