? ? ?針對于快遞接口http://www.kuaidi100.com/query?type=yuantong&postid=11111111111進行訪問分析。從表面上看來這個一個http協議的超鏈接,url=www.kuaidi100.com/,后邊跟著參數type,postid兩個參數,以及對應的參數值。Type參數表示屬于哪類快遞是“申通”,還是圓通,postid代表的是訂單號。我用網頁打開是這樣的:
? ? 從這個頁面顯示我可以分析出,訪問的地址是以html格式頁面展現出來的,沒有任何js,css和響應的圖片,頁面顯示比較簡單粗糙。對于瀏覽器的工作原理是這樣的:
?? ? 1、用戶訪問網頁,發送一個http請求request到應用服務器。2、應用服務器解析請求,發送請求給數據庫服務器。3、數據庫處理請求返回數據給應用服務器,應用服務器解析數據并生成html,放入http相應response中,返回給瀏覽器。4、瀏覽器解析Http response、html。5、瀏覽器創建DOM(回流和重繪)樹。6、瀏覽器下載CSS,并應用到DOM樹上,進行渲染。7、瀏覽器下載JS,解析并執行JS。8、最后顯示網頁內容。
?? ? 但是此網頁知識到了第四步就結束了,顯示的頁面是html頁面。從大致的分析上來看,是個查詢快遞的跟蹤明細,表現的有時間,相應的時間快遞所在的位置,快遞從派送到收到快遞的全過程,頁面展示就是這么多的信息。
? ? ? 在網頁中,用F12的Network查看可以清楚的看到這個請求對應的響應信息,不像其他網站顯示過多的響應,首先收到兩條響應,這兩條響應都是以get方式發送的請求,返回的狀態都是200,返回狀態正常,可以看出發送www.kuaidi100.com的網址,DNS自動解析出IP地址為118.89.213.194,端口號為80,第一條響應返回的是查詢快遞的信息,第二條響應返回的是網址上邊的標題中的圖標。
? ? ? 從第一個響應中,可以看出這個的URL的具體地址,以及請求方法get,返回的狀態碼200ok,和具體的ip地址和對應的端口號,端口號應該是在請求地址的最后以“:80”的形式展示出來,但是在實際的地址里卻沒有顯示,這是因為http協議具有容錯性,就算忘記“:80”他也會自動填補正確,然后發送請求,這也是http協議的優點之一。因為get請求方式是沒有body的所以上述圖標中都顯示得是header信息,根據header信息可以分析出連接方式,緩存機制,web服務器支持的返回內容壓縮編碼類型。返回內容的MIME類型,原始服務器消息發出的時間,web服務器軟件名稱nginx,文件傳輸編碼等。一般我們聽到的web服務器都是apache,和tomcat,這里的服務器確是nginx。Nginx?("engine x")是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。Nginx是一個很強大的高性能Web和反向代理服務器,它具有很多非常優越的特性:能夠支持高達50,000個并發連接數的響應這是他最終要的特點。這里解釋一下,瀏覽器的工作原理以及上述發送請求的一個流程。1、用戶訪問網頁,發送一個http請求request到應用服務器。2、應用服務器解析請求,發送請求給數據庫服務器。3、數據庫處理請求返回數據給應用服務器,應用服務器解析數據并生成html,放入http相應response中,返回給瀏覽器。但是對于商業網站來說,服務器在同一時間接受大量的請求,如果直接與tomcat這樣的web服務器直接相連接,有可能大量的請求導致tomcat掛掉無法繼續工作,但是nginx反向代理卻可以能夠支持高達50,000個并發連接數的響應。Nginx使用簡單的輪巡算法,把接收到的連接數按照算法分發到對應的tomcat服務器上,是tomcat服務器來繼續完成下邊的工作,并解決并發數特別多的問題。解釋圖如下:
? ? 通過分析這個請求的案例,使我體會到Nginx的優點,想想雙十一,Nginx起到了非常重要的作用,以致大家同時在天貓搶購時,支付時,沒有出現服務器的崩潰,沒有出現支付不成功的現象,天貓在服務器的選擇與應用上用的恰到好處。本次發送請求只是單純的html,沒有js和css的渲染與展示,所以頁面上表現的很簡單,通過這個展示可以看出js和css對于頁面好不好看,吸引不吸引大家的眼球卻起到關鍵的作用。