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