就是一个域名最终都会转化成 ip 来定位到服务器对吧,那为什么还可以设置为只能通过域名访问 禁止使用 ip 访问的方式呢?求解释。
1
wevsty 2017-06-28 19:49:03 +08:00
在 TCP 层面上是没办法阻止通过 IP 访问的.
之所以可以只允许指定域名访问是因为 HTTP 协议里面规定了 Host 头 比如访问百度那么 Host 头就是这样的。 Host: www.baidu.com 如果是直接用 IP 访问,那么 Host 头就是。 Host: 127.0.0.1 也就是实际上是在 HTTP 这个应用层协议上通过判断 Host 头来区分用户是怎么样访问 web 的, |
2
choury 2017-06-28 19:53:29 +08:00
我一个 ip 有好几个站,你用 ip 我是返回哪个站的内容好呢?
|
3
lslqtz 2017-06-28 20:57:46 +08:00
接上 1 楼的:
如果通过 TCP 层面阻止的话,应该是全部丢包。 而实际情况一般都是 301,403,或者重置连接之类的。。 所以这是在 HTTP 上做的处理,而不是 TCP 上的。 |
4
GoBeyond 2017-06-28 21:10:32 +08:00 via Android
原理是识别 header 里的 Host 字段
|