为什么在使用HTTP协议时需要指定端口号?

unm*_*war 5 ip port networking http web

为什么即使使用HTTP协议,也需要用IP地址指定端口号?例如-- http://xyz:8080...这甚至意味着什么?我们已经知道,使用HTTP时,请求将在端口80处得到服务,那么为什么要显式指定端口?

请回答这个愚蠢的问题。

Jas*_*nM1 7

HTTP的默认端口是80,HTTPS是443,但是端口号的范围是0到65535。大多数Web服务器都在默认端口上侦听,因此引用不带该端口的URL更简单。例如,由于端口80是默认端口,因此http://www.cnn.com/引用的资源相同http://www.cnn.com:80/。如果HTTP / HTTPS服务不是默认端口,则必须在URL中指定该端口。

URL由RFC 1738使用以下简化语法定义,其中包括端口:

<scheme>://<host>:<port>/<url-path>
Run Code Online (Sandbox Code Playgroud)

因此,例如,URL http://xyz:8080/...指的是使用HTTP作为协议,侦听端口8080的主机名或IP地址。然后,该地址处的HTTP(或Web)服务器将URL路径解析为特定服务或文件。

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

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