鍍金池/ 問答/C  Linux  網(wǎng)絡(luò)安全/ 為什么直接ping知乎的ip不能訪問知乎的網(wǎng)站,而百度就可以,知乎上的一個(gè)問題?

為什么直接ping知乎的ip不能訪問知乎的網(wǎng)站,而百度就可以,知乎上的一個(gè)問題?

打開cmd,輸入ping www.baidu.com,然后把得到的ip地址111.13.101.208輸入瀏覽器的地址欄,可以打開百度。但我重復(fù)操作ping www.zhihu.com,得到ip地址54.223.189.245,輸入地址欄,返回的卻是405 not allowed。想請(qǐng)教一下大家,這是為什么呢?

回答
編輯回答
舊螢火

在日常的網(wǎng)站發(fā)布中很多情況下都無法做到一個(gè)IP對(duì)應(yīng)一個(gè)站點(diǎn),在IP4的情況下IP的資源是相對(duì)有限的。然而作為最流行的Apache,Nginx等web server自然也考慮到這種情況,

為什么輸入網(wǎng)站的ip為什么不能訪問網(wǎng)站,輸入域名倒可以訪問網(wǎng)站?道理也在這里,像這種情況,一個(gè)ip對(duì)應(yīng)的幾個(gè)站點(diǎn),是通過ServerName來識(shí)別同一個(gè)IP下的不同站點(diǎn)的,而輸入ip地址主機(jī)自然是不知道你要訪問哪個(gè)站點(diǎn),故無法訪問。而現(xiàn)實(shí)中,很多的虛擬主機(jī)上綁定的是幾十甚至幾百的網(wǎng)站。

2017年10月2日 13:06
編輯回答
囍槑

是否可以,是 HTTP Server 決定的。

HTTP 協(xié)議是“應(yīng)用層”。
而按 IP 訪問,請(qǐng)求到達(dá)服務(wù)器,只需要“傳輸層”支持即可。

進(jìn)一步說,應(yīng)用層在之上,還可以做很多其它的事(至于為什么要做這些“其它的事”,反正有各種原因,一個(gè) IP 用于多個(gè)域名啦,覺得域名更方便啦,域名可以做動(dòng)態(tài) DNS 啦, HTTP 服務(wù)器配置搞錯(cuò)了,自己都搞不懂 HTTP 服務(wù)器的這些配置啦,等等等等),比如,判斷它協(xié)議中的那些“額外”信息。而域名,對(duì) HTTP 協(xié)議來說,不過是一個(gè)普通的頭而已。

這是網(wǎng)絡(luò)分層模型中的內(nèi)容,比如“七層模型”之類的東西,你可以先去了解一下。然后,再了解一下 HTTP 協(xié)議,這個(gè)問題才能搞明白。

2017年2月26日 05:43