1. 程式人生 > >JavaWeb-Web請求過程

JavaWeb-Web請求過程

客戶需求的轉變


從C/S架構往B/S架構遷移。

B/S架構特性:
  • 客戶端使用統一瀏覽器
  • 服務端基於統一的HTTP協議
HTTP請求過程:

從使用者瀏覽器輸入搜尋關鍵詞開始,頁面請求先讀取CSS、JS、圖片、Cookie等區域性快取,沒有快取的請求則通過域名地址去DNS域名服務查詢對應的IP地址,再去伺服器獲取資源。
一部分靜態資原始檔可能來自CDN的內容快取檔案,另一部分動態資料來自服務端系統(可能是一個負載均衡入口地址)。
服務端是業務邏輯程式碼和Web伺服器組成,開發語言有PHP、JAVA、NodeJS等,Web伺服器可能是Apache、Tomcat、Jetty,Nginx也算一個吧。
資料的來源可能來自資料庫(Myql、Oracle、Mpp等)和分散式快取系統(Redis等)。

HTTP協議


簡單說,Http協議分為三部分:請求頭、請求體、狀態碼。

請求頭:

請求頭是將客戶端的資訊傳遞給服務端。

  • Accept-Charset 字符集
  • Accept-Encoding 壓縮編碼
  • Accept-Language 資源所用語言
  • Host 主機和埠號
  • User-Agent 客戶端將它的作業系統、瀏覽器和其他屬性告訴服務端
  • Connection 保持連線
  • Cache-Control 快取控制
響應頭:

服務端根據請求頭的引數進行處理後返回的內容。

  • Server 使用的伺服器名稱
  • Content-Type 用來知名傳送給接受者的實體正文的媒體型別
  • Content-Encoding 壓縮編碼
  • Content-Language 資源所用語言
  • Content-Length 實體正文長度
  • Keep-Alive 保持連線時間
狀態碼:

200客戶端請求成功,302臨時跳轉,403服務端受到請求但是拒絕提供服務,404請求資源不存在等等。