瀏覽器與服務器交互的過程
2016-01-07
來源於孤傲蒼狼博客內容
4.1、瀏覽器與服務器交互圖

當我們打開瀏覽器,在瀏覽器的地址欄中輸入URL地址"http://www.gacl.cn:8080/JavaWebDemo1/1.jsp"去訪問服務器上的1.jsp這個web資源的過程中,瀏覽器和服務器都做了神馬操作呢,我們是怎么在瀏覽器里面看到1.jsp這個web資源里面的內容的呢?
瀏覽器和服務器做了以下幾個操作:
1、瀏覽器根據主機名"www.gacl.cn"去操作系統的Hosts文件中查找主機名對應的IP地址。
2、瀏覽器如果在操作系統的Hosts文件中沒有找到對應的IP地址,就去互聯網上的DNS服務器上查找"www.gacl.cn"這台主機對應的IP地址。
3、瀏覽器查找到"www.gacl.cn"這台主機對應的IP地址后,就使用IP地址連接到Web服務器。
4、瀏覽器連接到web服務器后,就使用http協議向服務器發送請求,發送請求的過程中,瀏覽器會向Web服務器以Stream(流)的形式傳輸數據,告訴Web服務器要訪問服務器里面的哪個Web應用下的Web資源,如下圖所示:
這就是瀏覽器向Web服務器發請求時向服務器傳輸的數據,解釋一下"GET /JavaWebDemo1/1.jsp HTTP/1.1"這里面的內容,
GET:告訴Web服務器,瀏覽器是以GET的方式向服務器發請求。
/JavaWebDemo1/1.jsp:告訴Web服務器,瀏覽器要訪問JavaWebDemo1應用里面的1.jsp這個Web資源。
HTTP/1.1:告訴Web服務器,瀏覽器是以HTTP協議請求的,使用的是1.1的版本。
5、瀏覽器做完上面4步工作后,就開始等待,等待Web服務器把自己想要訪問的1.jsp這個Web資源傳輸給它。
6、服務器接收到瀏覽器傳輸的數據后,開始解析接收到的數據,服務器解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的內容時知道客戶端瀏覽器要訪問的是JavaWebDemo1應用里面的1.jsp這個Web資源,然后服務器就去讀取1.jsp這個Web資源里面的內容,將讀到的內容再以Stream(流)的形式傳輸給瀏覽器,如下圖所示:

這個就是Web服務器傳輸給瀏覽器的數據。
7、瀏覽器拿到服務器傳輸給它的數據之后,就可以把數據展現給用戶看了,如下圖所示:
看到的這個"JavaWebDemo1"就是瀏覽器解析服務器發送回來的數據后的效果
服務器發送回來的數據:
1 HTTP/1.1 200 OK 2 Server: Apache-Coyote/1.1 3 Content-Type: text/html;charset=ISO-8859-1 4 Content-Length: 102 5 Date: Mon, 19 May 2014 14:25:14 GMT 6 7 <html> 8 <head> 9 <title>JavaWebDemo1</title> 10 </head> 11 <body> 12 JavaWebDemo1 13 14 </body> 15 </html>
這就是瀏覽器和服務器的交互過程。

