现在,我对端口的实际工作方式感到非常困惑,
这是我对端口的理解。我知道端口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
当我访问节点https://[external-ip]:31000
之一的外部ip地址时,它起作用了。
所以我开始挑战我的理解力,我无法将其包裹在头上以了解它是如何工作的。
PS:-它与NodePort / ClusterIP / LoadBalancer无关。但总的来说,这些端口如何与协议端口http或https以及应用程序端口一起使用。
答案 0 :(得分:3)
您可以指定任何端口(例如您的示例中的5000)。 URI只是以http
开头来指示使用了什么协议-它没有强制使用端口80。然后使用地址与主机联系在指定端口上(除非指定了其他端口,否则将为端口80)。成功连接后,客户端将期望服务器使用HTTP。
在服务器端,只有一个程序正在端口上侦听,等待传入连接。
答案 1 :(得分:3)
过去,人们不会直接在公司打电话给别人。取而代之的是,请致电总公司总机,并要求某人分机。
操作员:我能为您提供什么帮助? 您:分机号123 接线员:现在与您联系
像一个公司的扩展名一样,考虑一个“端口”。主机名/ IP地址是公司的电话号码,端口是该公司的分机号。
回到类比,一旦连接到电话分机,便可以进行对话。双方都期望进行对话。例如,如果我呼叫与销售相对应的扩展名,我可以下订单,而如果我呼叫与招聘相对应的扩展名,则可以提交我的简历。呼叫目的和扩展名之间的这种关系是约定的,并且在扩展名本身中并不隐含。
当您通过Internet与端口80上的某台计算机建立连接时,假设我们将交换HTTP流量。但是,如果我在端口5000上建立了到某台计算机的连接,则没有什么可以阻止THAT连接也发送和接收HTTP流量。例如,如果可以在分机80上联系我公司的销售,并且您可以下订单,则可能还会有一个附加分机(5000),您可以致电该分机来下达80分机上不可用的其他类型的订单。
另请参阅: