Java Web應用程式用于建立動态網站
Java通過servlet和jsp提供對web應用程式的支援
兩種體系結構
C/S(Client/Server),用戶端伺服器體系結構
B/S(Browser/Server),浏覽器伺服器體系結構
- 開發維護成本: C/S開發維護成本高于B/S,因為需要對客戶機上的每個軟體進行更新維護,而B/S隻需要維護伺服器程式即可
- 用戶端負載: C/S負載大, 因為用戶端不僅負責與使用者互動,而且需要向服務端發送請求等,B/S将事務邏輯處理都放在了伺服器,用戶端隻負責顯示。
- 安全性: C/S安全性高,B/S由于使用人數多,不固定,安全性低
- 作用範圍: C/S适用于區域網路,B/S适用于廣域網
Web Server 與 Web Client
Web伺服器是一種可以處理用戶端請求并将響應發送回用戶端的軟體,它在某些實體計算機上運作,并在特定端口上偵聽用戶端請求。如Apache,Tomcat等。
Web用戶端是一種與伺服器通信的軟體。一些使用最廣泛的Web用戶端是Firefox,Google Chrome,Safari等。當我們通過
URL
向伺服器請求某些内容時,Web用戶端會負責建立請求并将其發送到伺服器,然後解析伺服器響應并将其呈現給使用者。
HTTP,HTML,URL
HTTP與HTML
Web伺服器和Web用戶端是兩個單獨的軟體,是以需要使用某種通用語言和通用的通信協定進行通信。
HTML(超文本标記語言)
是伺服器和用戶端之間的通用語言。
HTTP(超文本傳輸協定)
是伺服器和用戶端之間的通信協定,
HTTP:
- 工作于C/S架構上,從網際網路(WWW:World Wide Web )伺服器傳輸超文本到本地浏覽器(用戶端)。
- 基于TCP/IP通信協定
常用傳輸協定:
- http 超文本傳輸協定,除了傳遞文本,還可以傳遞媒體資源檔案(或者流檔案)及XML格式資料,預設端口号80
- https 更加安全的http,一般涉及支付的網站都要采用https協定(多的s:ssl 加密傳輸),預設端口号443
- ftp 檔案傳輸協定(一般應用于把本地資源上傳到伺服器端),預設端口号21
URL
URL,Universal Resource Locator統一資源定位符,用于定位伺服器和資源。網絡上的每一種資源都有自己獨特的位址。拿個假URL示例:
-
https://space.bilibili.com:443/20692606/favlist?fid=80026506&ftype=create
-
– 通信協定https://
-
– 域名,由DNS伺服器負責解析為IP位址space.bilibili.com
-
– 端口号的取值範圍0~65535,用端口号來區分同一台伺服器上的不同項目:443
-
– 請求資源路徑名稱/20692606/favlist
-
– 問号傳參資訊?fid=80026506&ftype=create
-
– HASH值,也能充當資訊傳輸的方式,錨點定位,基于HASH實作路由管控(不同的HASH值,展示不同的元件和子產品)#zhenyu
HTTP工作步驟
在浏覽器輸入URL之後
- 浏覽器向 DNS 伺服器請求解析該 URL 中的域名所對應的 IP 位址;
- 解析出 IP 位址後,根據該 IP 位址和端口号,和伺服器建立TCP套接字連接配接;
- 浏覽器發出讀取檔案(URL 中域名後面部分對應的檔案)的HTTP 請求,該請求封包作為 TCP三向交握的
封包的資料發送給伺服器,一個請求封包由請求行、請求頭部、空行和請求資料4部分組成;第三個
- Web伺服器解析請求,定位請求資源。伺服器将資源複本寫到TCP套接字,由用戶端讀取。一個響應由狀态行、響應頭部、空行和響應資料4部分組成。
- 釋放 TCP 連接配接,若connection 模式為close,則伺服器主動關閉 TCP 連接配接,用戶端被動關閉連接配接; 若connection 模式為keepalive,則該連接配接會保持一段時間,在該時間内可以繼續接收請求;
- 用戶端浏覽器首先解析狀态行,檢視表明請求是否成功的狀态代碼。然後解析每一個響應頭,響應頭告知以下為若幹位元組的HTML文檔和文檔的字元集。用戶端浏覽器讀取響應資料HTML,根據HTML的文法對其進行格式化,并在浏覽器視窗中顯示。
HTTP封包
請求封包由請求行(request line)、請求頭部(header)、空行和請求資料四個部分組成。
響應封包也由四個部分組成,分别是:狀态行、消息報頭、空行和響應正文。