是否有本地主机端口的约定......这有关系吗?
is there a convention for localhost ports ... does it matter?
我很震惊,我在任何地方都找不到这个问题的答案。还是我瞎了。
但是是否有约定将某些本地主机端口号用于不同的languages/frameworks?还是随意选择的?
例如,我发现(通常)许多 javascript 应用程序将使用端口 3000,但 golang 应用程序将使用 8080。当然,这些应用程序将在不同的端口上运行,但通常选择这些端口。
这些端口是哪天随便定下来的,大家都开始坚持了?
Were these ports just decided one day arbitrarily and everyone started to stick with them?
他们几乎是,是的。对于 1024 以下的端口,您需要特殊权限(root,或 Linux 上的 cap_net_bind_service
),所以这有点不方便(如果您 运行 作为 root 存在安全风险,大多数应用程序都不会这样做不需要)。
但除此之外:这并不重要。选择 8080 和 8000 是因为它高于 1024(因此您不需要任何特殊权限)并且易于记忆,因为标准 HTTP 端口是 80。
3000端口从何而来?我不知道。前端人员可能希望避免与 8000 或 8080 上的后端服务发生冲突,因此他们选择了一个新号码,任何尚未广泛使用的 1024 以上的号码都可以。
我很震惊,我在任何地方都找不到这个问题的答案。还是我瞎了。
但是是否有约定将某些本地主机端口号用于不同的languages/frameworks?还是随意选择的?
例如,我发现(通常)许多 javascript 应用程序将使用端口 3000,但 golang 应用程序将使用 8080。当然,这些应用程序将在不同的端口上运行,但通常选择这些端口。
这些端口是哪天随便定下来的,大家都开始坚持了?
Were these ports just decided one day arbitrarily and everyone started to stick with them?
他们几乎是,是的。对于 1024 以下的端口,您需要特殊权限(root,或 Linux 上的 cap_net_bind_service
),所以这有点不方便(如果您 运行 作为 root 存在安全风险,大多数应用程序都不会这样做不需要)。
但除此之外:这并不重要。选择 8080 和 8000 是因为它高于 1024(因此您不需要任何特殊权限)并且易于记忆,因为标准 HTTP 端口是 80。
3000端口从何而来?我不知道。前端人员可能希望避免与 8000 或 8080 上的后端服务发生冲突,因此他们选择了一个新号码,任何尚未广泛使用的 1024 以上的号码都可以。