如果您现在正在阅读本文,那么您已经使用了客户端-服务器模型,甚至没有意识到。您(作为客户)请求了由网络服务器提供给您的资源(即本网页)。这是现代通信的流行架构,其中数字数据由服务器提供给客户端。另一种模式称为点对点或“P2P”,依赖于相互连接的计算机来共享数据。与 P2P 模型不同,客户端-服务器架构依赖于连接到网络的主服务器机器或一组机器,通常位于数据中心。客户端或连接到 Web 或本地网络的普通计算机发送数据包以从服务器请求数据。
当服务器收到这些请求时,它们可以做以下三件事之一:接受数据包,拒绝或“丢弃”数据包,或静默终止连接。依靠使用“端口”来控制数据流,客户端和服务器必须在正确的端口上相互发送请求。大多数防火墙设置为接收不同类型的请求。例如,大多数使用超文本传输协议或“HTTP”的服务器将只接受通过端口 80 或 443 对其数据的请求。如果您将数据包从客户端发送到正确配置的服务器到另一个端口,服务器通常会静默丢弃发送的数据包。
1. 网络服务器
Web 服务器为您现在正在查看的站点提供支持。这种类型的服务器专注于向客户端提供 Web 内容。
Web 服务器只接受来自客户端的“GET”和“POST”请求(以及其他动词)。
“GET”请求是客户端只想检索信息而没有任何信息要提交给服务器的情况。
另一方面,“POST”请求是当客户端确实有信息要与服务器共享并期望得到响应时。例如,在 Web 服务器上填写表单并单击提交按钮是从客户端到服务器的“POST”请求。
Web 服务器本质上通常是“无头”的。这是为了保留服务器上的内存并确保有足够的内存为服务器上的操作系统和应用程序供电。
“无头”意味着它不像传统的家用计算机那样运行,而只是提供内容。这些服务器的管理员只能通过命令行终端连接到它们。
请记住,这些类型的服务器可以像您的家用计算机一样运行任何类型的应用程序。
它们也可以在任何操作系统上运行,只要它们遵守网络的一般“规则”。
现代 Web 应用程序通常在一系列层上运行,从服务器端脚本和处理数据的程序(例如 PHP、ASP.NET 等)开始,到对数据进行编程的客户端脚本(例如 Javascript)结束显示。
然后,Web 浏览器会相应地呈现内容以显示您现在正在阅读的页面。
一些流行的网络服务器包括 Microsoft IIS、Apache、Nginx 等。
一些用于 Web 服务器的端口:HTTP 的端口 80(未加密)和 HTTP 的端口 443(加密)。
2. 数据库服务器
数据库服务器通常与另一种类型的服务器协同工作。这种服务器的存在只是为了将数据分组存储。
有无数种方法可以根据不同的理论来保存数据。一种更常见的类型被称为“SQL”或“结构化查询语言”。
数据库程序员可以使用数据库语言的脚本在这些服务器上创建数据库。
Web 应用程序通常将其服务器端组件连接到数据库服务器以在用户请求时获取数据。
一个好的做法是在不同的机器上拥有网络服务器和数据库服务器。数据库服务器应该独立存在的原因是为了安全。
如果黑客能够访问主 Web 服务器而不是数据库服务器,他们将能够轻松检索或修改存储在数据库服务器中的数据。
一些流行的数据库服务器包括 MySQL、MariaDB、Microsoft SQL、Oracle 数据库等。
用于数据库服务器的一些端口:端口 3306(MySQL、MariaDB)、端口 1433(MS-SQL)、端口 1521(Oracle DB)。
3. 电子邮件服务器
电子邮件服务器通常在“SMTP”或“简单邮件传输协议”上运行。较新的邮件服务器还运行其他可能的协议,但 SMTP 仍然是主要协议。
电子邮件服务器为邮件服务提供动力。这些服务器本身只是将电子邮件从一个客户端接收到另一个客户端并将数据转发到另一台服务器。
通过 SMTP 发送数据时,数据会得到简化,因此某些信息(如 Web 格式)通常会在电子邮件交易中丢失。
电子邮件服务器的现代方法通常将它们与 Web 服务器配对。这允许用户拥有一个“网络客户端”,以图形方式显示网页上的数据。一些较新的 Web 应用程序甚至可以在不安装任何东西的情况下模拟家用计算机电子邮件客户端。
一些用于电子邮件服务器的端口:端口 25 (SMTP)、端口 587 (安全 SMTP)、端口 110 (POP3)
4. 网络代理服务器
Web 代理服务器可以在多种协议中的一种上运行,但它们都做一件共同的事情。
它们接收用户请求,对其进行过滤,然后代表用户采取行动。最流行的网络代理服务器类型旨在绕过学校和组织的网络过滤器。
由于网络流量全部通过一个尚未被阻止的 IP 地址和网站,因此用户可以通过这些过滤器访问被禁止的网站。
不太流行的类型是组织代理服务器。这具有相同的效果,但通常由组织授权。
它获取用户的网络流量,通常将其记录下来以供稍后评估,然后将其发送到 Internet。
这将用户的流量集中在一起,因此无法公开区分一台计算机与另一台计算机。
这是由组织有意完成的,以防止用户成为目标,并且通常能够检查、缓存和分析发送和接收的数据包。
一些用于 Web 代理服务器的端口:端口 8080、8888 等
5. DNS 服务器
DNS 服务器或“域名服务”服务器用于将域名转换为其相应的 IP 地址。
当您输入域名并按 Enter 键时,您的浏览器会引用此服务器。这个想法是用户不必记住 IP 地址,组织可以有一个合适的名称。
通常,Internet 服务提供商 (ISP) 为其用户提供 DNS 服务器。但是,也有许多组织免费提供此查找服务(例如流行的 IP 为 8.8.8.8 的 Google DNS 服务器)。
当用户创建新域名时,DNS 服务器也会被窃听。DNS 服务器在分层基础上运行,因此有一些比其他服务器更“权威”的服务器。
域名在一台上级 DNS 服务器上注册,其他下级 DNS 服务器引用该服务器。通常通过一个需要 24 到 48 小时的过程,这种注册会在世界范围内传播。
用于 DNS 服务器的端口:端口 53(TCP 和 UDP)。
6. FTP 服务器
FTP 服务器或“文件传输协议”服务器有一个目的:托管用户之间的文件交换。
默认情况下,这些服务器不提供任何类型的加密,因此有许多安全版本的协议经常在其位置使用(例如sFTP,它是基于安全 SSH 协议的 FTP)。
这种类型的服务器允许用户在通过 FTP 客户端验证后上传文件或下载文件。用户还可以浏览服务器的文件并根据需要下载单个文件。
一些用于 FTP 服务器的端口:用于 FTP 的端口 20,21 或用于 sFTP 的端口 22。
7. 文件服务器
文件服务器不同于 FTP 服务器。这种类型的服务器更现代,通常能够将网络文件“映射”到驱动器上。这意味着用户可以使用家庭计算机的文件浏览器查看文件夹。
这种形式的服务器的主要优点是用户可以上传和下载共享文件。文件权限由管理员控制。
通常文件服务器存在于 Windows Active Directory 环境或 Linux 环境中的企业网络中。
8. DHCP 服务器
DHCP 服务器使用动态主机通信协议 (DHCP) 来配置客户端计算机的网络设置。
网络中的 DHCP 服务器不必为大型网络中的客户端计算机手动配置静态 IP 地址和其他网络设置,而是将这些网络设置动态配置到 LAN 计算机。
用于 DHCP 服务器的端口:端口 UDP 67。