Java網(wǎng)絡(luò)編程從入門(mén)到精通(3):為什么不能直接通過(guò)IP訪問(wèn)網(wǎng)站
本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!
上一篇:Java網(wǎng)絡(luò)編程從入門(mén)到精通(2):創(chuàng)建InetAddress對(duì)象的四個(gè)靜態(tài)方法
在《創(chuàng)建InetAddress對(duì)象的四個(gè)靜態(tài)方法》一文中通過(guò)getAllByName得到了www.csdn.net對(duì)應(yīng)的四個(gè)IP地址。從理論上說(shuō),在IE(或其他的Web瀏覽器,如Firefox)的地址欄中輸入這四個(gè)IP地址中的任何一個(gè),都可能訪問(wèn)www.csdn.net。如輸入http://211.100.26.124。但IE卻返回了一個(gè)錯(cuò)誤信息。在輸入另外三個(gè)IP后,都會(huì)得到同樣的錯(cuò)誤信息。
這個(gè)錯(cuò)誤并不是網(wǎng)頁(yè)未找到錯(cuò)誤(HTTP狀態(tài)號(hào):404),而是拒絕訪問(wèn)錯(cuò)誤(HTTP狀態(tài)號(hào):403)。當(dāng)在地址欄中再輸入http://www.csdn.net,仍然可以訪問(wèn)這個(gè)網(wǎng)站。從以上種種跡象表明這并不客戶端的問(wèn)題,而是服務(wù)端對(duì)此做了限制。
在HTTP協(xié)議(這個(gè)協(xié)議會(huì)在下一章詳細(xì)講解)的請(qǐng)求頭有一個(gè)Host字段,一般通過(guò)http://www.csdn.net訪問(wèn)服務(wù)器時(shí),Host的值就是www.csdn.net。如果是http:// 211.100.26.124,那么Host的值就是211.100.26.124。因此,我們可以推斷,www.csdn.net的服務(wù)器通過(guò)檢測(cè)Host字段防止客戶端直接使用IP進(jìn)行訪問(wèn)。目前有很多網(wǎng)站,如www.sina.com.cn、www.126.com都是這樣做的。有一些網(wǎng)站雖然未限制用IP地址來(lái)訪問(wèn),但在使用IP地址訪問(wèn)網(wǎng)站時(shí),卻將IP地址又重定位到相應(yīng)的域名上。如輸入http://141.146.8.66會(huì)重定位到http://www.oracle.com/index.html上,輸入http://129.42.60.212會(huì)重定位到http://www.ibm.com/us/上。
通過(guò)ping命令也可以得到一個(gè)域名的IP地址,如果域名綁定有之個(gè)IP地址,DNS就隨機(jī)返回一個(gè)IP地址。如在控制臺(tái)輸入下面的命令:
返回結(jié)果
Reply from 211.100.26.122: bytes=32 time=35ms TTL=48


上面的返回結(jié)果中的IP地址就是《創(chuàng)建InetAddress對(duì)象的四個(gè)靜態(tài)方法》一文中MyInetAddress3在測(cè)試1中所得到的第三個(gè)IP地址。
下一篇:Java網(wǎng)絡(luò)技術(shù)系列教程(4):DNS緩存
《Android開(kāi)發(fā)完全講義(第2版)》(本書(shū)版權(quán)已輸出到臺(tái)灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
posted on 2009-03-31 10:44 銀河使者 閱讀(4386) 評(píng)論(6) 編輯 收藏 所屬分類: java 、 原創(chuàng) 、網(wǎng)絡(luò)編程