Qingwa
(青小蛙)
1
原始链接在: 学到了:localhost 居然支持二级域名 - 小众软件

在任意浏览器打开 http://localhost/ 实际上访问的就是本机地址,即 127.0.0.1(如果你的设备上没有开启服务,那么还是打不开)。
内网地址不够怎么办
但如果家里有很多服务,用一个地址就很不够了。于是,localhost 还能这样用:
- http://appinn.localhost
- http://123.localhost
- http://456.localhost

不需要修改 hosts 文件,直接用就行。但是不支持 ping

青小蛙测试 macOS 与 Windows,都没有问题,随开随用。
青小蛙也研究了下 RFC 6771 文档,里面有一条,虽然看不懂,但可以这样用。
6.3 . “localhost” 域名预留注意事项
域“localhost.”以及任何属于“.localhost.”的名称在以下方面具有特殊性:
- 用户可以像使用其他域名一样自由使用本地主机名。用户可以假设对本地主机名的 IPv4 和 IPv6 地址查询始终会解析到相应的 IP 环回地址。
- 应用软件可以将本地主机名识别为特殊名称,或者可以像对待其他域名一样将其传递给名称解析 API。
- 名称解析 API 和库应该将本地主机名识别为特殊名称,并且应该始终为地址查询返回 IP 环回地址,为所有其他查询类型返回否定响应。
- 名称解析 API 不应将本地主机名称的查询发送到其配置的缓存 DNS 服务器。
- 缓存 DNS 服务器应该将本地主机名识别为特殊名称,并且不应该尝试查找它们的 NS 记录,或者以其他方式查询权威 DNS 服务器以尝试解析本地主机名。
相反,对于所有此类地址查询,缓存 DNS 服务器应该立即生成一个提供 IP 环回地址的肯定响应,而对于所有其他查询类型,则立即生成一个否定响应。
这是为了避免对根名称服务器和其他名称服务器造成不必要的负载。
首发于小众软件微信公众号:https://mp.weixin.qq.com/s/_36t6AkJDK5pjFFdGRi48w
1 个赞
L11
(Ib)
2
可是,不同的服务提供的端口本身就不一样啊,直接访问localhost加端口号不就行了
Qingwa
(青小蛙)
3
可是,我就愿意用 appiinn.localhost 访问呀
应该是说域名 xxx.localhost (xxx 为任意字符)和域名 localhost` 是等效的。
比如,我在电脑上开启了一个端口为 1234 的 HTTP 服务,那么,
- 我在浏览器中访问
http://localhost:1234 就可以访问它。
- 我访问
http://abcde.localhost:1234、http://hellohappyworld.localhost:1234,也可以访问它。
至于您说的:
应该是一个误会。楼主的例子举得比较容易产生歧义,其中的
用的应该还是 80 端口(即 http 协议的默认端口),所以直接在浏览器中访问这些 URL、不带端口号,是可以直接访问的。
至于楼主说的:
鄙人感觉确实不妥。区分不同的服务,还是需要用端口号。如果在浏览器中输入不带端口号的 URL,默认就是与 80 端口通信。或许可以说,这种二级域名并没有起到区分的作用。
4 个赞
haitao
(HaitaoSoft)
9
都是绑定到127.0.0.1吧?
web服务会根据配置按域名(子域名)差异分派到对应不同的物理目录和文件
2 个赞
qinshou
(秦寿)
11
子域名还是比端口号方便一点,那个冒号有点儿烦,而且不够直观。
如果正好有用一些tauri做的软件,恰好支持打开开发者工具的话,就可以发现tauri软件也在用类似的域名。
不清楚electron这种自带内核的软件是不是这样

1 个赞
其实我现在比较希望了解的是:
我的电脑上开启了 2 个 HTTP 服务,
- 服务 1:端口为
2001
- 服务 2:端口为
2002
那么,要如何实现如下功能:
- 浏览器访问
http://001.localhost,直接解析到服务 http://localhost:2001
- 浏览器访问
http://002.localhost,直接解析到服务 http://localhost:2002
换言之,如何将端口映射为二级域名?
看网上的介绍,这个功能似乎是需要修改 DNS 设置的。是否有其他方法呢?
Qingwa
(青小蛙)
14
这活是 nginx 反代功能的标准用途啊。
server
{
server_name 002.localhost;
proxy_pass http://localhost:3000;
}
以及,证书也有:
原来如此,看来是需要服务器支持啊。我平时用的服务器只是 DUFS,它好像是没有这个功能。
Qingwa
(青小蛙)
16
服务不多不太需要 nginx,多了可以上一个,统一管理还方便
1 个赞
1113
19
本地起个nginx或者caddy,或者其他反代服务器
1 个赞