一張圖說明訪問網站的流程

一張圖說明訪問網站的流程

最近看了一些關於Web請求資源方面的知識,自己總結了一個流程圖,描述了打開瀏覽器訪問一個網站到網站被渲染出來的流程,希望對大家的學習有所幫助~

另外,給大家推薦一款畫圖很好用的Chrome插件 Gliffy ,我博客裏的圖大部分都是用它畫的,非常的好用,而且是離線的,大家可以試試。

因爲是流程圖的原因,大體的流程是OK的,但是其實裏面還有一些細節沒有涉及到,還請大神多多補充~

網站訪問流程

瀏覽器不管是訪問JSP、PHP還是ASP.NET,整體流程幾乎是一樣的。

1.解析主機名

瀏覽器拿到網址之後首先會將主機名解析出來,如http://www.example.com/hello.html則會將主機名www.example.com解析出來。

2.查找ip

根據主機名,會首先查找IP,首先查詢hosts文件,成功則返回其對應ip地址,如果沒有查詢到,則去查詢DNS服務器,成功就會返回ip,否則會報告連接錯誤。

在host中有這麼幾句

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost

所以訪問localhost是本機ip,如果這裏改掉ip,localhost就會訪問其他的ip

比較有意思的是,如果把localhost改成百度,那麼訪問百度的時候就會訪問本機ip

這裏是有一些安全機制的,瀏覽器是會提醒host文件異常的。

3.發送http請求

瀏覽器會把自身相關信息與請求相關信息封裝成HTTP請求消息改送給服務器。

GET / HTTP/1.1
Host: www.csdn.net
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
If-None-Match: W/"5617e6e2-1947a"
If-Modified-Since: Fri, 09 Oct 2015 16:10:10 GMT
Cookie: uuid_tt_dd=-2336166380439124030_20150919; .......

4.服務器處理請求

服務器讀取HTTP請求中的內容,在經過解析主機,解析站點名稱,解析訪問資源後,會查找相關資源,如果查找成功,則返回狀態碼200,失敗就會返回大名鼎鼎的404,在服務器監測到請求不存在的資源後,可以按照程序員設置的跳轉到別的頁面。所以有各種各樣的404錯誤頁面。

在服務器請求資源的過程中,如php文件會在服務器運行之後再返回。所以php等後臺腳本是在服務器運行的。

這裏寫圖片描述

5.服務器返回HTTP響應

服務器會將請求的資源封裝成http響應

瀏覽器得到返回數據後可以會提取數據,然後調用解析內核進行翻譯,最後顯示出頁面。

之後瀏覽器會對其引用的文件比如圖片,CSS,JS等文件不斷進行上述過程,直到所有文件都被下載下來之後,網頁就會顯示出來。

網站訪問流程圖

爲了讓大家看得更清楚,就加了一個標籤,圖片可能會橫向出去,但是也比看不清強。

><img/>

這裏附上原圖以及Gliffy 原文件的下載地址:

http://download.csdn.net/detail/sunmc1204953974/9287599

Gliffy文件需要使用Chrome插件Gliffy打開

希望對大家的學習有所幫助~

發佈了87 篇原創文章 · 獲贊 204 · 訪問量 76萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章