我想避免记住常见的端口名称:例如对于我的 CUPS 它是http://localhost:631/
。
我知道'/etc/services'中有服务名称(端口的别名):
$ cat /etc/services | grep ipp ipp 631/tcp # 互联网打印协议 ipp631/udp
并且这个工作正常:
山猫
http://localhost:ipp/
但是,accessnghttp://localhost:ipp/
在 Firefox、Opera 和 Konqueror 中不起作用。
有任何想法吗?
答案1
很高兴浏览器作者坚持使用 RFC(1738)。当软件制造商不遵循 RFC 时,就会出现混乱,因为这些文档为互联网的标准奠定了基础。
使用端口号而不是服务名称是跨平台的,因为并非所有系统都有一致的 /etc/services 内容或等效内容。
具体来说,在这种情况下,RFC 的第 3.1 节规定:
3.1. 通用 Internet Scheme 语法
虽然 URL 其余部分的语法可能因
所选的特定方案而异,但涉及直接使用
基于 IP 的协议访问 Internet 上指定主机的 URL 方案对特定于方案的数据使用通用语法://<user>:<password>@<host>:<port>/<url-path>
...
port The port number to connect to. Most schemes designate protocols that have a default port number. Another port number may optionally be supplied, in decimal, separated from the host by a colon. If the port is omitted, the colon is as well.