为啥我们在使用 HTTP 协议时需要指定端口号?
Posted
技术标签:
【中文标题】为啥我们在使用 HTTP 协议时需要指定端口号?【英文标题】:Why do we need to specify a port number while using HTTP protocol?为什么我们在使用 HTTP 协议时需要指定端口号? 【发布时间】:2018-11-26 01:09:45 【问题描述】:为什么即使我们使用 HTTP 协议,我们也需要指定一个带有 IP 地址的端口号?例如 - http://xyz:8080...
- 这甚至意味着什么?我们已经知道,在使用 HTTP 时,请求将在 80 端口进行服务,那么为什么要显式指定端口呢?
【问题讨论】:
你不需要,除非它不是 HTTP 的 80 或 HTTPS 的 443。 【参考方案1】:HTTP 的默认端口是 80,HTTPS 是 443,但端口号的范围是 0 到 65535。大多数 Web 服务器侦听默认端口,因此在没有端口的情况下引用 URL 会更简单。例如,https://www.cnn.com/
与https://www.cnn.com:443/
引用相同的资源,因为端口 443 是默认端口。
如果 HTTP/HTTPS 服务不是默认端口,则必须在 URL 中指定端口。
URL 由RFC 1738 定义,使用这种简化的语法,包括端口:
<scheme>://<host>:<port>/<url-path>
例如,URL http://xyz:8080/...
是指使用 HTTP 作为协议侦听端口 8080 的主机名称或 IP 地址。然后,位于该地址的 HTTP(或 Web)服务器将 url-path 解析为特定的服务或文件。
如果端口是给定方案或协议的默认端口(例如 HTTP=80),则端口是可选的。
一台给定的机器可以使用来自不同端口的 HTTP 服务托管多个不同的产品。例如,Apache Web 服务器正在侦听给定服务器上的端口 80,而 Apache Tomcat 正在侦听同一台计算机上的端口 8080。各种数据库和消息传递产品通常在不同的端口上有 HTTP 服务。 端口是客户端可以引用特定服务的地址的一部分。
【讨论】:
【参考方案2】:端口在某种程度上就像一个“通道”......如果您必须访问同一个网站的不同功能,则使用不同的端口。 HTTP 为 80 端口,HTTPS 为 443,SSH 为 22,依此类推。
【讨论】:
以上是关于为啥我们在使用 HTTP 协议时需要指定端口号?的主要内容,如果未能解决你的问题,请参考以下文章