13

为什么即使我们使用 HTTP 协议,我们也需要指定一个带有 IP 地址的端口号?例如——http://xyz:8080...这甚至意味着什么?我们已经知道,在使用 HTTP 时,请求将在端口 80 上提供服务,那么为什么我们要显式指定端口呢?

4

2 回答 2

21

HTTP 的默认端口是 80,HTTPS 是 443,但端口号的范围是 0 到 65535。大多数 Web 服务器侦听默认端口,因此在没有端口的情况下引用 URL 会更简单。例如,由于端口 443 是默认端口,因此https://www.cnn.com/引用相同的资源。https://www.cnn.com:443/

如果 HTTP/HTTPS 服务不是默认端口,则必须在 URL 中指定端口。

URL 由RFC 1738定义,其简化语法包括端口:

<scheme>://<host>:<port>/<url-path>

例如,URLhttp://xyz:8080/...是指使用 HTTP 作为协议侦听端口 8080 的主机名称或 IP 地址。然后,位于该地址的 HTTP(或 Web)服务器将url-path解析为特定服务或文件。

当端口是给定方案或协议的默认端口时(例如,HTTP=80),端口是可选的。

一台给定的机器可以使用来自不同端口的 HTTP 服务托管多个不同的产品。例如,Apache Web 服务器正在侦听给定服务器上的 80 端口,而 Apache Tomcat 正在侦听同一台机器上的 8080 端口。各种数据库和消息传递产品通常在不同的端口上有 HTTP 服务。端口是客户端可以引用特定服务的地址的一部分

于 2018-06-16T13:35:53.880 回答
3

端口在某种程度上就像一个“通道”......如果您必须访问同一网站的不同功能,则使用不同的端口。HTTP 是 80 端口,HTTPS 是 443,SSH 是 22,依此类推。

于 2018-06-16T13:39:17.593 回答