两个端口号如何同时工作?
How does two port numbers works at the same time?
现在我对端口的实际工作方式感到非常困惑,
这是我对端口的理解。我知道80端口是HTTP协议的,443端口是HTTPS协议的,所以每当我访问http://website.com [(name or ip)]
时,都会转换成http://website.com:80 [(name or ip)]
,当我访问https://website.com [(name or ip)]
],它被转换为 https://website.com:443 [(name or ip)]
。
因此,如果我在另一个端口上访问网站,即我在本地设置了 springboot 或 angular 应用程序,并且它们是 HTTP 端点,
然后我访问 http://localhost:someportNumber
(例如:http://localhost:5000
),这是如何转换为端口的,因为我已明确指定端口 5000,但 HTTP 在端口 80 上工作。
你能帮助我理解端口的工作原理吗?
到现在为止我都清楚端口是如何工作的,但是现在当我今天这样想的时候,它挑战了我对端口的理解。
我在了解 Google Kubernetes Engine 上的服务时遇到了这种理解冲突。在那里我创建了一个 nodeport 类型的服务,它的配置类似于
port: 443
targetPort: 443
nodePort: 31000
当我访问其中一个节点的外部 IP 地址时 https://[external-ip]:31000
,它成功了。
所以我开始挑战我的理解,我无法理解它是如何工作的。
PS:- 这不是关于 NodePort/ClusterIP/LoadBalancer 的概念。但一般来说,这些端口如何与协议端口 http 或 https 以及应用程序端口一起工作。
您可以指定任何端口(例如示例中的 5000)。 URI 仅以 http
开头以指示使用什么 协议 - 它不强制使用端口 80。 地址 是然后用于联系指定端口上的主机(除非指定了不同的端口,否则将是端口 80)。成功连接后,客户端希望服务器使用 HTTP。
在服务器端,只有一个程序正在侦听端口,等待传入连接。
在过去,人们不会直接给公司的人打电话。相反,人们会打电话给公司总机,并在某个分机上找那个人。
接线员:有什么可以帮到您的吗?
您:分机 123
接线员:现在为您接通
将 "port" 想象成公司的分机。 hostname/IP地址是公司的phone号码,端口是该公司的分机。
回到类比,一旦您连接到 phone 分机,您就可以进行对话。双方都希望进行对话。比如打sales对应的分机,可以下单,打recruitment对应的分机,可以投简历。调用目的与扩展名之间的这种关系是约定俗成的,并不隐含在扩展名本身中。
当您通过 Internet 与某台计算机的端口 80 建立连接时,假设我们将交换 HTTP 流量。但是,如果我在端口 5000 上与某台机器建立连接,则没有什么可以阻止该连接也发送和接收 HTTP 流量。例如,如果可以通过分机 80 联系我公司的销售人员并且您可以下订单,则可能还有一个额外的分机 (5000),您可以拨打该分机来下 80 分机无法提供的其他类型的订单。
另请参阅:
现在我对端口的实际工作方式感到非常困惑,
这是我对端口的理解。我知道80端口是HTTP协议的,443端口是HTTPS协议的,所以每当我访问http://website.com [(name or ip)]
时,都会转换成http://website.com:80 [(name or ip)]
,当我访问https://website.com [(name or ip)]
],它被转换为 https://website.com:443 [(name or ip)]
。
因此,如果我在另一个端口上访问网站,即我在本地设置了 springboot 或 angular 应用程序,并且它们是 HTTP 端点,
然后我访问 http://localhost:someportNumber
(例如:http://localhost:5000
),这是如何转换为端口的,因为我已明确指定端口 5000,但 HTTP 在端口 80 上工作。
你能帮助我理解端口的工作原理吗? 到现在为止我都清楚端口是如何工作的,但是现在当我今天这样想的时候,它挑战了我对端口的理解。
我在了解 Google Kubernetes Engine 上的服务时遇到了这种理解冲突。在那里我创建了一个 nodeport 类型的服务,它的配置类似于
port: 443
targetPort: 443
nodePort: 31000
当我访问其中一个节点的外部 IP 地址时 https://[external-ip]:31000
,它成功了。
所以我开始挑战我的理解,我无法理解它是如何工作的。
PS:- 这不是关于 NodePort/ClusterIP/LoadBalancer 的概念。但一般来说,这些端口如何与协议端口 http 或 https 以及应用程序端口一起工作。
您可以指定任何端口(例如示例中的 5000)。 URI 仅以 http
开头以指示使用什么 协议 - 它不强制使用端口 80。 地址 是然后用于联系指定端口上的主机(除非指定了不同的端口,否则将是端口 80)。成功连接后,客户端希望服务器使用 HTTP。
在服务器端,只有一个程序正在侦听端口,等待传入连接。
在过去,人们不会直接给公司的人打电话。相反,人们会打电话给公司总机,并在某个分机上找那个人。
接线员:有什么可以帮到您的吗? 您:分机 123 接线员:现在为您接通
将 "port" 想象成公司的分机。 hostname/IP地址是公司的phone号码,端口是该公司的分机。
回到类比,一旦您连接到 phone 分机,您就可以进行对话。双方都希望进行对话。比如打sales对应的分机,可以下单,打recruitment对应的分机,可以投简历。调用目的与扩展名之间的这种关系是约定俗成的,并不隐含在扩展名本身中。
当您通过 Internet 与某台计算机的端口 80 建立连接时,假设我们将交换 HTTP 流量。但是,如果我在端口 5000 上与某台机器建立连接,则没有什么可以阻止该连接也发送和接收 HTTP 流量。例如,如果可以通过分机 80 联系我公司的销售人员并且您可以下订单,则可能还有一个额外的分机 (5000),您可以拨打该分机来下 80 分机无法提供的其他类型的订单。
另请参阅: