在閱讀器輸入:http://www.baidu.com/,最后,閱讀器顯現(xiàn)出相應(yīng)網(wǎng)頁,這個(gè)進(jìn)程究竟產(chǎn)生了甚么?
到這里,閱讀器就取得了IP。在DNS解析進(jìn)程中,常常會(huì)解析出不同的IP。比如,電信的是1個(gè)IP,網(wǎng)通的是另外一個(gè)IP。這是采取了智能DNS的結(jié)果,下降運(yùn)營商間訪問延時(shí),在多個(gè)運(yùn)營商設(shè)置主機(jī)房,就近訪問主機(jī)。電信譽(yù)戶返回電信主機(jī)IP,網(wǎng)通用戶返回網(wǎng)通主機(jī)IP。固然,劫持DNS,也能夠屏蔽掉1部份網(wǎng)點(diǎn)的訪問,某防火長城也加入了這1特性。
閱讀器利用IP直接與網(wǎng)站主機(jī)通訊。閱讀器發(fā)出TCP(SYN標(biāo)志位為1)連接要求,主機(jī)返回TCP(SYN,ACK標(biāo)志位均為1)應(yīng)對報(bào)文,閱讀器收到應(yīng)對報(bào)文發(fā)現(xiàn)ACK標(biāo)志位為1,表示連接要求確認(rèn)。閱讀器返回TCP()確認(rèn)報(bào)文,主機(jī)收到確認(rèn)報(bào)文,3次握手,TCP鏈接建立完成。
閱讀器向主機(jī)發(fā)起1個(gè)HTTP-GET方法報(bào)文要求。要求中包括訪問的URL,也就是http://www.baidu.com/ ,還有User-Agent用戶閱讀器操作系統(tǒng)信息,編碼等。值得1提的是Accep-Encoding和Cookies項(xiàng)。Accept-Encoding1般采取gzip,緊縮以后傳輸html文件。Cookies如果是首次訪問,會(huì)提示服務(wù)器建立用戶緩存信息,如果不是,可以利用Cookies對應(yīng)鍵值,找到相應(yīng)緩存,緩存里面寄存著用戶名,密碼和1些用戶設(shè)置項(xiàng)。
但是,對大型網(wǎng)站存在多個(gè)主機(jī)站點(diǎn),常常不會(huì)直接返回要求頁面,而是重定向。返回的狀態(tài)碼就不是200 OK,而是301,302以3開頭的重定向碼,閱讀器在獲得了重定向響應(yīng)后,在響應(yīng)報(bào)文中Location項(xiàng)找到重定向地址,閱讀器重新第1步訪問便可。
補(bǔ)充1點(diǎn)的就是,重定向是為了負(fù)載均衡或?qū)肓髁浚岣逽EO排名。利用1個(gè)前端服務(wù)器接受要求,然后負(fù)載到不同的主機(jī)上,可以大大提高站點(diǎn)的業(yè)務(wù)并發(fā)處理能力;重定向也可將多個(gè)域名的訪問,集中到1個(gè)站點(diǎn);由于baidu.com,www.baidu.com會(huì)被搜索引擎認(rèn)為是兩個(gè)網(wǎng)站,照成每一個(gè)的鏈接數(shù)都會(huì)減少從而下降排名,永久重定向會(huì)將兩個(gè)地址關(guān)聯(lián)起來,搜索引擎會(huì)認(rèn)為是同1個(gè)網(wǎng)站,從而提高排名。