web應用中http協議的三次握手及過濾器

1、JAVA WEB程序中http協議的三次握手

1、第一次握手:客戶端瀏覽器與服務器建立通信,通過uri訪問目標資源。
2、第二次握手:request與response建立握手,完成請求與應答的工作交接,
Request一直工作到目標頁面所有java代碼都執行完畢,此時用以客戶端顯示的html代碼在內存中生成完畢。此時request將工作流程交接給response,request生命週期結束。
Response叫應答對象,職責是將內存中的html向客戶端回寫。
3、第三次握手:服務器與客戶端瀏覽器再次握手,由response將內存中的html代碼向瀏覽器回傳:
服務器再次連接瀏覽器,由response將內存中的html代碼,向瀏覽器以io流的形式逐行回傳,客戶端瀏覽器接收一行,解釋一行,顯示一行。

URI和URL的區別:

URI 是統一資源標識符,而 URL 是統一資源定位符。因此,籠統地說,每個 URL 都是 URI,但不一定每個 URI 都是 URL。這是因爲 URI 還包括一個子類,即統一資源名稱 (URN),它命名資源但不指定如何定位資源。
舉個例子來看一下:
統一資源標誌符URI就是在某一規則下能把一個資源獨一無二地標識出來。
拿人做例子,假設這個世界上所有人的名字都不能重複,那麼名字就是URI的一個實例,通過名字這個字符串就可以標識出唯一的一個人。
現實當中名字當然是會重複的,所以身份證號纔是URI,通過身份證號能讓我們能且僅能確定一個人。
那統一資源定位符URL是什麼呢?也拿人做例子然後跟HTTP的URL做類比,就可以有:動物住址協議://地球/中國/浙江省/杭州市/西湖區/某大學/14號宿舍樓/525號寢/張三.人
可以看到,這個字符串同樣標識出了唯一的一個人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置來唯一確定一個人的。
在上文我們用身份證號也可以唯一確定一個人。對於這個在杭州的張三,我們也可以用:身份證號:123456789來標識他。所以不論是用定位的方式還是用編號的方式,我們都可以唯一確定一個人,都是URl的一種實現,而URL就是用定位的方式實現的URI。

2、過濾器的原理和執行順序

再次聽到老師講解過濾器,感覺老師的這一張圖很簡單的,一眼明瞭能看出一些東西,所以記了下來:

這張圖我們能看到request和response的交接點,在這個交接點的左邊是客戶端發送的request的執行,依次通過過濾器,然後來到servlet,之後response再去往客戶端的途中,再次反向依次通過每個過濾器,到達client。

執行順序:
在Servlet2.x的版本中,過濾器的執行順序是按照web.xml文件中的Filter-mapping的註冊順序來依次執行的。
在Servlet3.x的版本中,過濾器的執行順序,是按照Filter的name,按照字典序的順序來執行的。

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