
- 我们将稍微谈谈网络。
- 我们将检查客户端-服务器和三层架构。
- 我们将探讨 HTTP/HTTPS 协议。
- 我们将学习您需要了解的关于 Maven 的一切。
- 我们正在谈论日志记录。
- 关于 servlet 容器。
- 最后,关于 MVC。
第 1 部分。我们将稍微谈谈网络。
让我们从最重要的事情开始,谈谈每个社交网络、Web 服务和 Web 应用程序、即时通讯工具和简单网站的构建基础 — 网络(在本系列文章的上下文中,术语“网络”表示互联网) . 网络由大量计算机组成:它们相互连接并且能够通信。了解它们是如何做到这一点很重要,因为 Web 应用程序将信息从一台计算机发送到另一台计算机。OSI模型
开放系统互连 (OSI) 模型创建了一种构建网络的分层方法。它清楚地显示了同一网络的实体如何以及在什么层可以相互交互。这个模型总共包含 7 层:7 | 应用 |
6个 | 推介会 |
5个 | 会议 |
4个 | 运输 |
3个 | 网络 |
2个 | 数据链接 |
1个 | 身体的 |
-
物理层——这一层处理物理定律以及如何将它们用于我们的目的。例如,创建电缆并将它们铺设到网络中的实体。
我们对这一层不感兴趣。
-
数据链路层——该层负责向网络节点传输数据,并为物理对象创建数据传输通道。
我们对该层不感兴趣,除非您想为建立数据链路的硬件编写固件。
-
网络层——该层用于确定各个网络用户的地址和到他们的路由。了解更多关于该层的详细信息(即网络地址)是有价值的。
网络地址由特殊协议定义:最常见的是 IPv4(Internet 协议版本 4)。这是网络程序员需要用来联系另一个网络用户的协议。
IPv4 地址由以句点分隔的四个字节值组成,例如:192.0.2.235。您应该记住这些值是字节,这意味着它们位于 0..255 范围内。
IP 地址又分为几类。我们不能简单地给自己分配一个漂亮的数字组合,但我们不会在这里深入。了解 IP 地址唯一标识网络用户并可用于联系该用户就足够了。
-
传输层——这一层负责将信息传递给收件人。使用各种协议来实现这一点。目前,我们对它们不感兴趣。我们对出现在这一层的端口的概念更感兴趣。
端口负责识别计算机上的特定应用程序。例如,假设您用 Java 编写了一个聊天应用程序,将其安装在 2 台计算机上,并希望向您的好友发送消息。你的消息被打包,发送到一个特定的 IP 地址,并传递给你的伙伴,但他的计算机不知道如何处理收到的信息,因为它不知道应该由哪个应用程序来处理你的消息。当网络实体进行通信时,端口用于指示应由哪个应用程序处理信息。
端口是 0 到 65535 范围内的数字。它被添加到冒号后的 IP 地址:192.0.2.235:8080。但是您不能使用指定范围内的所有端口:其中一些端口是为操作系统保留的,其他端口通常用于特定目的。我们不会深入研究不同端口的用途。现在,了解它们在网络通信过程中的作用就足够了。
-
会话层——该层创建和管理通信会话。在这一层,应用程序可以进行交互,发送服务级请求。我们需要知道的是,在这一层,两个用户之间打开了一个会话,我们必须对会话进行操作。
会话是在两个用户之间建立连接时创建的实体。它可以存储有关用户的必要信息以及与用户交互的历史记录。一个重要的细节是,当信息交换停止时,会话不会消失。相反,它会在一段时间内保持其状态,因此用户可以在休息后继续交换信息。
如果应用程序同时与多个用户通信,则会建立相应数量的连接(以及会话)。每个会话都有一个唯一标识符 (ID),它允许应用程序区分与之通信的用户。
-
表示层——该层负责编码/解码数据。显然,如果我们需要将字符串“Hello web”发送给另一个用户,首先会将其转换(编码为)二进制代码,然后再发送。到达收件人后,消息被转换回(解码),收件人可以看到原始字符串。这些操作发生在表示层。
-
应用层是我们最感兴趣的层。它允许应用程序与网络通信。在这一层,我们接收和发送消息,并向服务和远程数据库发出请求。
这一层使用了许多协议:POP3、FTP、SMTP、XMPP、RDP、SIP、TELNET,当然还有 HTTP/HTTPS。协议是我们在通信时遵守的通用协议。我们一定会单独提供 HTTP/HTTPS 的详细讨论。

- IP 地址——用户在网络中的地址
- 端口——特定用户应用程序的地址
- 会话——在两个用户之间的整个通信期间存在的实体
- 应用程序协议 (HTTP/HTTPS) — 这些是我们在撰写和发送消息时将遵循的规则。
DNS(域名系统)
正如我们已经了解到的,每个网络用户都有一个唯一的地址。如果我们谈论的是应用程序,那么它的唯一地址将是IPv4-address:port。如果您知道此地址,则可以直接访问该应用程序。想象一下,我们编写了一个实时显示所有国家/地区平均气温的 Web 应用程序。我们将其部署在地址为 226.69.237.119、端口 8080 的服务器上。为了能够接收到我们的信息,用户必须在浏览器中输入 5 个数字:226.69.237.119:8080。人们不喜欢记住一组数字:我们中的许多人不能记住两个以上的电话号码。这就是为什么域名系统被发明。我们可以为我们的地址创建一个“别名”,例如 world-temperature.com。用户无需使用由五个难记数字组成的地址来寻找我们,而是可以在浏览器的地址栏中输入我们的域名。有将域名映射到真实地址的DNS 服务器。例如,当用户在浏览器中输入 codegym.cc 时,她的请求会发送到 DNS 服务器,由 DNS 服务器将其转换为实际地址。
GO TO FULL VERSION