1. 什么是B/S架構(gòu)?
B/S 架構(gòu):Browser/Server,瀏覽器/服務(wù)器 架構(gòu)模式,它的特點是,客戶端只需要瀏覽器,應(yīng)用程序的邏輯和數(shù)據(jù)都存儲在服務(wù)器端。瀏覽器只需要請求服務(wù)器,獲取Web資源,服務(wù)器把Web資源發(fā)送給瀏覽器即可。大家可以通過下面這張圖來回想下我們平常的上網(wǎng)過程:

- 打開瀏覽器訪問百度首頁,輸入要搜索的內(nèi)容,點擊回車或百度一下,就可以獲取和搜索相關(guān)的內(nèi)容
- 那么這些內(nèi)容從何而來?答案很明顯是從百度服務(wù)器返回給我們的
- 日常百度的小細(xì)節(jié),逢年過節(jié)百度的logo會更換不同的圖片,服務(wù)端發(fā)生變化,客戶端不需做任何事情就能獲取最新內(nèi)容
- 所以說B/S架構(gòu)的好處:易于維護(hù)升級:服務(wù)器端升級后,客戶端無需任何部署就可以使用到新的版
本。
2. 靜態(tài)資源
- 靜態(tài)資源主要包含HTML、CSS、JavaScript、圖片等,主要負(fù)責(zé)頁面的展示。
- 前端網(wǎng)頁制作 三劍客 (HTML+CSS+JavaScript),使用這些技術(shù)我們就可以制作出效果比較豐富的網(wǎng)頁,將來展現(xiàn)給用戶。但是由于做出來的這些內(nèi)容都是靜態(tài)的,這就會導(dǎo)致所有的人看到的內(nèi)容將是一模一樣。
- 在日常上網(wǎng)的過程中,我們除了看到這些好看的頁面以外,還會碰到很多動態(tài)內(nèi)容,比如我們常見的百度登錄效果:
比如登陸后看到我們自己的賬戶,或者我們每個人看到的網(wǎng)頁里的內(nèi)容是不一樣的,著各種效果,光靠靜態(tài)資源是無法實現(xiàn)的。
3. 動態(tài)資源
- 動態(tài)資源主要包含Servlet、JSP等,主要用來負(fù)責(zé)邏輯處理。
- 動態(tài)資源處理完邏輯后會把得到的結(jié)果交給靜態(tài)資源來進(jìn)行展示,動態(tài)資源和靜態(tài)資源要結(jié)合一起使用。
-
動態(tài)資源雖然可以處理邏輯,但是當(dāng)用戶來登錄的時候,就需要輸入 用戶名 和 密碼 ,這個時候我們就又需要解決的一個問題是,用戶在注冊的時候填入的用戶名和密碼、以及我們經(jīng)常會訪問到一些數(shù)據(jù)列表的內(nèi)容展示(如下圖所示),這些數(shù)據(jù)都存儲在哪里?我們需要的時候又是從哪里來取呢?(比如我進(jìn)到我的主頁看到的這些內(nèi)容)
image.png
4. 數(shù)據(jù)庫
數(shù)據(jù)庫主要負(fù)責(zé)存儲數(shù)據(jù)。
整個Web的訪問過程就如下圖所示:

(1) 瀏覽器發(fā)送一個請求到服務(wù)端,去請求所需要的相關(guān)資源;
(2)資源分為動態(tài)資源和靜態(tài)資源,動態(tài)資源可以是使用Java代碼按照Servlet和JSP的規(guī)范編寫的內(nèi)容;
(3)在Java代碼可以進(jìn)行業(yè)務(wù)處理也可以從數(shù)據(jù)庫中讀取數(shù)據(jù);
(4)拿到數(shù)據(jù)后,把數(shù)據(jù)交給HTML頁面進(jìn)行展示,再結(jié)合CSS和JavaScript使展示效果更好;
(5)服務(wù)端將靜態(tài)資源響應(yīng)給瀏覽器;
(6)瀏覽器將這些資源進(jìn)行解析;
(7)解析后將效果展示在瀏覽器,用戶就可以看到最終的結(jié)果。
在整個Web的訪問過程中,會設(shè)計到很多技術(shù),這些技術(shù)有已經(jīng)學(xué)習(xí)過的,也有還未涉及到的內(nèi)容,都有哪些還沒有涉及到呢?
5. HTTP 協(xié)議
HTTP協(xié)議:主要定義通信規(guī)則
瀏覽器發(fā)送請求給服務(wù)器,服務(wù)器響應(yīng)數(shù)據(jù)給瀏覽器,這整個過程都需要遵守一定的規(guī)則,TCP、UDP,這些都屬于規(guī)則,這里我們需要使用的是HTTP協(xié)議,這也是一種規(guī)則。
