如题详述: 对于服务器,应该既可以用域名访问,也可以用IP地址访问。但为什么会是下面结果?
慕课网的http请求
Request URL请求URL地址,Remote Address应该是该网站的IP地址。但是为什么域名可以访问,而IP地址却不能访问呢?
如题详述: 对于服务器,应该既可以用域名访问,也可以用IP地址访问。但为什么会是下面结果?
慕课网的http请求
Request URL请求URL地址,Remote Address应该是该网站的IP地址。但是为什么域名可以访问,而IP地址却不能访问呢?
简单点来说,假设一个 IP 对应一台具体的服务器,这台服务器上有可能运行着 N 个网站,如果直接使用 IP 访问的话,怎么知道你想要访问的究竟是这台服务器上的哪个网站呢?
一般来说,很多服务器上都会有一个默认网站,所以域名没有得到匹配的请求都会定向到这个默认网站上面去。所以你使用 IP 地址来访问一般打开的是这个默认网站。如果没有配置默认网站则是无法访问的。
访问的时候加上域名信息而不是 IP,服务器就可以根据域名去查找你具体是要访问哪一个网站。
通过 Remote Address
访问报错 403-nginx
, 可以看出 imooc
用 nginx
做的代理服务器,Remote Address
的地址只是 nginx
服务器的地址,而 Request URL
则是由 nginx
来帮你去请求访问的。
现在回过头来这些问题,发现的确是理解了些,可是又会有另一个问题,如果不理解些根本原理,这样一点点来看,势必最后还是啥都不会。前期只有理解了些原理性的东西,再回过来看这些小点,才可能会很容易的明白理解的。
3 回答2.4k 阅读✓ 已解决
817 阅读
382 阅读
可以用IP地址访问,在请求头里加上Host: www.imooc.com 就行。
如果用IP访问,不指定Host字段,会请求到默认域名。
你截图访问的是默认服务器,默认服务器设置了禁止访问。 比如在nginx配置里将root设置为/dev/null,或者直接return 403
需要理解,一个IP上可以有多个域名。每个域名有自己的设置。