通過測試瀏覽器對網頁中元素請求,提出減少瀏覽器請求的建議


最近一直在學習linux網絡編程這一塊的內容,自己做了一個簡單web服務器,以前無法確切的瞭解web瀏覽器訪問網頁的的請求過程。現在有着樣的條件了,所以就自己實現一下看看過程了。

瀏覽器展示一個網頁的過程:(不涉及本地緩存,假設本地沒有緩存)

  1. 瀏覽器向服務發送請求,請求一個頁面。

  2. 服務器響應請求,向瀏覽器發送頁面。

  3. 瀏覽器加載頁面,如果有外部文件,轉向4步,沒有結束

  4. 瀏覽器依次生成進程,分別請求所需文件。

  5. 服務器響應請求,向瀏覽器發送外部文件。

  6. 瀏覽器加載外部文件。

下面是我測試得到的結果的截圖。(此網頁中有外部的css、js、圖片)

瀏覽器結果(本代碼和結論只經過本人的簡單測試,可能存在問題。請相信自己的能力,敢於質疑。歡迎提供更好的、更快、更簡潔的代碼或者方法和指出錯誤。在ubuntu12.04使用gcc4.6.3版本編譯,在vc中如出現錯誤,請諒解。)

請求網頁的效果圖:



得到瀏覽器請求的結果:

 


看完測試結果後,大家發現瀏覽器先請求了頁面,依次請求了外部文件所需要的文件。由於我寫的是單線程的服務端,大家可能會看到瀏覽器發送請求的文件的順序,如果你看了網頁的源代碼,你會發現web瀏覽器請求的順序正好是網頁中的書寫順序。我可以將想要優先顯示的內容書寫到代碼考前的部位。

通過以上信息對於web開發者的建議:

  1. 將內容少的jscss直接嵌入網頁中,從而減少瀏覽器的對web服務器的請求次數。減少web服務器的負擔。

  2. 減少外部文件,將可以合併的文件放到一個文件中,從而減少瀏覽器的對web服務器的請求次數。減少web服務器的負擔。(可以選擇在發佈時合併文件,便於開發。通常是css和js文件)

  3. 見多個小圖表合併到一起,統一請求文件。
  4. 將優先顯示的外部文件代碼書寫到前面。將不重要的文件放到最好請求。

  5. 同一個外部文件網頁只會請求一次。

如果針對本頁面來說,js爲空,css內容也很少,如果直接嵌入網頁頁面中,將會只有兩次web瀏覽器請求的。

代碼和測試主頁、makefile等文件:測試文件按文件地址

blog:http://blog.csdn.net/rentiansheng/article/details/8274489




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章