2011-02-28 36 views
6

這可能是一個非常愚蠢的問題,但我很好奇。爲什麼youtube.com的解析IP直接連接到google.com?

youtube.com的ping顯示已解析的IP爲74.125.127.93。現在,如果您在瀏覽器http://74.125.127.93/中訪問此IP,則您會希望顯示youtube頁面。搜索引擎出現了。

有人可以解釋幕後發生了什麼嗎? 謝謝。

+0

因爲谷歌擁有youtube – Zimbabao 2011-02-28 12:37:08

+0

@ Shog9不應該是另一種方式嗎? – swalog 2015-01-23 09:12:00

回答

13

因爲有許多服務器名稱,但只有幾個IP地址。

讓我解釋一下。 IPv4允許2^32(40億)不同的IP地址。聽起來很多,但大部分都不能使用。 IP地址始終以塊分配。最小的塊是255個地址(8位-1廣播地址),最大的塊是1600萬個地址(2^24-1)。中等大小的塊有64k地址(16位)。

如果你是一個ISP,你會得到一組固定的地址。但是,當然你總是要求一個比你絕對需要的塊更大的塊 - 否則你將用完地址,這對ISP來說真的很糟糕。你可以要求兩個16位塊,但加入這兩個塊總是麻煩。

上週,我們用完了IPv4塊。所以......你有一個64k塊,不能再多了。但是你有150,000個想要運行Web服務器的客戶。

解決方案:virtual servers。你告訴你的DNS「x.y.com」是13.242.251.17,「a.y.com」是同一個地址,「b.y.com」也是。

當客戶端發出請求時,它會執行一個始終返回相同IP的DNS查詢。然後它發送一個HTTP請求到它剛剛得到的IP。訣竅是HTTP請求包含服務器名稱。所以,即使所有請求都轉到相同的IP地址,Web服務器仍然可以找出您真正想要的人。

只要你給它的名字。如果您使用IP,您將獲得Google搜索引擎的默認服務。

[編輯]telnet,你可以自己嘗試。與telnet 74.125.127.93 80啓動它,然後鍵入:

GET http://www.google.com/index.html HTTP/1.1 

命中進入兩次。您將獲得您所在國家Google主頁的重定向。現在鍵入:

GET http://www.youtube.com/ HTTP/1.1 

命中進入兩次。這一次,YouTube首頁將被退回。

+0

有沒有什麼方法可以使用IP並仍能達到所需的服務? – 2015-04-15 07:32:12

+0

@NikhilGirraj:我不明白這個問題。您可以使用帶telnet的IP或DNS名稱。 – 2015-04-15 09:01:49

+0

我很抱歉,我不夠清楚,我的意思是訪問服務器上的非默認服務,而不使用「Telnet」並使用其IP而不是域名。 例如 - 使用Google.com和Youtube.com共享的IP訪問「youtube」。 – 2015-04-15 09:08:14

3

Google擁有Youtube。
它們可能使用相同的負載平衡服務器以及基於名稱的虛擬主機來檢測您嘗試瀏覽哪個站點。
這可以通過查看客戶端提供的主機頭(這是您嘗試瀏覽的域)來實現。由於主機標頭不同,因此當您直接使用IP時,並不總是到達同一個站點,就像您穿過域一樣。

1

Google正在使用virtual hosting - 兩個(或更多)服務位於同一個IP地址上,Web服務器處理請求的位置由請求的URL決定。

相關問題