第一步通过域名查找到 IP 地址,然后发送 HTTP 请求~
有一个比较疑惑的地方是:我直接输入域名对应的 IP 地址,会发生什么?
然后测试了一下,发现输入百度对应的 IP 地址,还是正常返回;输入 CSDN 的 IP 地址就只返回了个 OK~~有大神能帮忙解释一下吗?
1
xiaoxiaomo OP ?
|
2
ovear 2016-03-06 20:59:29 +08:00
如果是域名
HTTP 中的 HOST 头为域名 否则为 IP 善用 chrome f12 |
3
v1024 2016-03-06 21:12:05 +08:00
这是个老套的开放式的问题,第一步甚至可以说键盘触发了电信号……
你的问题呢,因为一个 ip 下可以绑定不限量的域名,通过域名来确定返回什么内容,而百度配置成了通过纯 ip 访问则跳转到百度首页, csdn 就没有做此考虑,却少 hostname 时直接给个 80 端口的默认内容。 |
4
xmh51 2016-03-06 21:13:17 +08:00
看 http 的请求头。例如 Host:www.hostloc.com
一个 ip 可以对应多个网站,某些主机检测 host ,如果 host 不在列表的话,则返回默认页面。 |
5
Exin 2016-03-06 21:43:11 +08:00 via Android
@v1024 这个点让我想起一个 GitHub 项目就是记录“按下回车时发生了什么”,当初浏览了一下,发现他们的讨论已经延伸到微观物理了 。。。
|
6
Mutoo 2016-03-06 22:05:59 +08:00
|
7
bdbai 2016-03-06 22:16:18 +08:00 via iPhone
|
8
mringg 2016-03-06 22:18:39 +08:00
学着配置配置 apache httpd/nginx/iis 你对这个就会有很深的理解了
|
10
shyling 2016-03-06 22:57:28 +08:00
ip/域名返回结果不同其实是因为服务器的处理问题(域名不是指向这个 ip 的话,当我没说)
|
11
Slienc7 2016-03-07 08:54:01 +08:00 via Android
Ref: HTTP the definitive guide
|
12
xiaoxiaomo OP 其实我还是没懂。。。
|
13
xiaoxiaomo OP 我网上也看过挺多这方面的文章的~~就是这个点理解的不是很透彻
|