程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 浏覽器-服務器-請求與響應,浏覽器響應

浏覽器-服務器-請求與響應,浏覽器響應

編輯:JAVA綜合教程

浏覽器-服務器-請求與響應,浏覽器響應


  浏覽器訪問服務器,本質就是請求資源。
  比如請求靜態資源:index.html,我們在浏覽器地址欄輸入:www.a.com/index.html,浏覽器為了支持HTTP協議,發送的數據必須符合HTTP協議數據的格式,也就是這樣:

  GET /index.html HTTP/1.1   Accept-Language:zh-cn   Connection:Keep-Alive   Host:www.a.com   User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)   Accept-Encoding:gzip,deflate


  這些信息就成了請求信息,浏覽器利用Socket,通過網絡IO流發往服務器。如果做個比喻的話,浏覽器比作男生,服務器比作女生,我想表達的意思是,浏覽器是主動鏈接,並且主動請求數據,也就是想要的資源,而服務器存在資源,她只會等待浏覽器主動請求她,她才會做出響應。

  此時服務器必須已經開啟,因為她要監聽某一個端口才能知道有人給她發信息了,這裡比如是 80 端口。服務器監聽80端口,有點類似於事件驅動編程的感覺,服務器利用ServerSocket,得到請求信息。服務器解析請求信息,得到需要請求的資源。這裡先簡單一分為二:


1 請求靜態資源:

  服務器將會去服務器實現定義好的工作目錄下,也是我們網站發布打包後的文件存放的地方,尋找a.html文件,若找到使用IO流,將文件加載到內存中,設置狀態碼為200,再輸出到網絡IO流,發送給浏覽器,浏覽器接收到響應信息,截取響應體,使用渲染引擎(所謂的內核)進行渲染。若找不到文件,則服務器設置響應頭為404,我們可以自定義一句話來說明原因,大多數服務器返回404 File Not Found。這就是我們加載靜態文件的流程。

 

2 請求動態資源servlet:

  先說說動態語言,即運行時才能得知變量的類型。而動態資源,就是未執行的.class文件,得到浏覽器的請求信息,服務器執行一系列的事先定義好的.class文件,得到一個動態的結果返回給浏覽器。

  做個比喻,好比靜態資源就是你要買一輛普通的車,你就直接到車店,發送請求給車店,車店得到請求,解析它,知道你要買哪輛,然後返回給你汽車(有些癡人說夢哈)。動態資源呢,就是,你要私人定制一個豪華車,然後你就去汽車廠,發送請求給汽車廠,汽車廠得到請求之後,解析它,獲得一些有用信息:車大小,裡面配置,外表裝飾等等,請注意,這裡沒有現成的車直接返回,而是得通過一系列的生產車間動態生成,等到生產完成,返回定制汽車,連接關閉。

  比喻打完,開始說正常流程。服務器得到浏覽器發來的請求信息之後,解析它,得到了要執行的類名。這裡就用到了【反射】,個人感覺反射技術很偉大,雖然確實降低性能,但是降低了類與類之間的耦合,就好比動態資源,我不清楚如果沒有反射,我們將如何獲得動態資源。得到想要的類名,利用反射,得到該類的對象,執行想要的方法,然後返回結果。

 

  注:此文章針對Java應用服務器Tomcat,至於其它服務器的請求和響應原理,我沒做考證,所以我沒將猜測說出來。

 

 

 

                                                                                                                                                                                2016-08-31 09:02:16

                                                                                                                                                                                    欲戴王冠,必承其重

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved