Web開發系列知識彙總

目錄

一. 定義

二. 網絡結構模式

三. 客戶端-瀏覽器Browser

四. Web服務器端

五. Cookie

六. HTTP協議

1. HTTP簡介

2. HTTP方法

3. 各種協議與HTTP協議的關係

七. TCP/IP通信傳輸流


 


一. 定義

1. Web:World Wide Web, 其內容以頁面的形式表現。

  • 超文本(Hypertext):一個頁面指向另一個頁面。用戶單擊一個鏈接就可以來到該鏈接所指向的頁面。
  • 超媒體(Hypermedia):超文本和多媒體的結合。用戶可以在頁面激活一段聲音,顯示一個圖形,甚至播放一段視頻。
  • 超文本傳輸協議(HTTP) :Web瀏覽器向一個或多個Web服務器發送請求,服務器以頁面的內容作爲響應。這裏的“請求-響應”協議,即HTTP協議基於文本協議,運行於TCP之上。

2. 瀏覽器:顯示頁面的程序

3. 統一資源定位符(URL,Uniform Resource Locator):用類標識每個頁面。包含三部分:協議,域名,路徑。如:

       http(協議)://www.cs.washington.edu(域名)/index.html(頁面的路徑)

4. Web的體系結構

    

        (圖片來源自Andrew S.Tanenbaum與David J.Wetherall的《計算機網絡(第五版)》)

  圖中Web瀏覽器向三個服務器(youtube.com, www.cs.washington.edu, google-analytics.com)發送請求,從而獲得了兩個頁面。來自不同服務器的內容集成在一起通過瀏覽器顯示。www.cs.washington.edu服務器提供了主頁面,youtube.com服務器提供了一段嵌入的視頻,google-analytics.com服務器沒有提供任何用戶可見的內容,但它追蹤訪問網站的用戶。

 

二. 網絡結構模式

1. C/S(Client/Server)

  • 客戶端/服務器端架構,典型的兩層結構
  • 客戶端:一個或多個在用戶電腦上運行的程序。
  • 服務器端

      1. 數據庫服務器端:客戶端通過數據庫連接訪問服務器端的數據

      2. Socket服務器端:服務器端的程序通過Socket與客戶端的程序通信

2. B/S(Browser/Server)-這裏主要介紹該模式

  • 瀏覽器/服務器架構,三層結構
  • Browser客戶端 :負責處理顯示邏輯
  •  Web服務器 :負責處理事務邏輯
  •  數據庫服務器

(圖片來源於:http://www.ltesting.net/html/84/n-141684.html

 

三. 客戶端-瀏覽器Browser

1. 一個瀏覽器是一個應用程序,負責將用戶選擇的web資源呈現出來。

2. 瀏覽器的組成

    

主要組件:

  • 用戶界面 - 包括地址欄、後退/前進按鈕、書籤目錄等
  • 瀏覽器引擎 (Browser engine)- 用來查詢及操作渲染引擎的接口
  • 渲染引擎 (Rendering engine)- 瀏覽器的內核,負責將網頁代碼轉化成可見的頁面
  • 網絡 - 完成網絡調用
  • UI後端 - 用來繪製類似組合選擇框及對話框等基本組件,底層使用操作系統的用戶接口
  • JS解析器 - 用來解釋執行JS代碼
  • 數據存儲 -  瀏覽器在用戶磁盤中保存類似於Cookie的各種數據。HTML5定義了一種輕量級的客戶端存儲技術Web Database技術 

3. 當用戶點擊一個超鏈接時,瀏覽器執行的系列步驟

   

(1)瀏覽器確定URL

(2)瀏覽器請求DNS查詢www.cs.washington.edu服務器的IP地址

(3)DNS返回128.208.3.88

(4)瀏覽器與128.208.3.88機器的80端口建立一個TCP連接(80端口是HTTP協議的默認端口)

(5)瀏覽器發送HTTP報文,請求/index.html頁面

(6)www.cs.washington.edu服務器向瀏覽器響應頁面,如發送文件/index.html

(7)若該頁面包括需要顯示的URL,瀏覽器通過相同的處理過程獲取其他URL。該例子中,URL包括多個取自www.cs.washington.edu的內嵌圖像,一段取自youtube.com的內嵌視頻和一個取自google-analytics.com的腳本。

(8)瀏覽器渲染顯示頁面/index.html

(9)若短期內沒有向同一個服務器發送其他請求,釋放TCP連接

 

四. Web服務器端

1.  Web服務器的工作流程

  • 接受來自瀏覽器的TCP連接請求
  • 獲取頁面的路徑,即被請求文件的名字
  • 從磁盤中讀取文件
  • 將文件內容響應給瀏覽器
  • 釋放該TCP連接

2.  爲了解決文件訪問瓶頸,減少讀磁盤的操作,會在內存中維護一個緩存,保存着n個最近使用過的文件或者內容。服務器從磁盤讀取文件前,首先檢查緩存。

3.  爲了解決一次只能服務一個請求的問題,將服務器設計成多線程(multithreaded)模式。

   

                (圖片來源自Andrew S.Tanenbaum與David J.Wetherall的《計算機網絡(第五版)》)

多線程服務器由一個前端模塊和一個處理模塊組成。前端模塊接收所有入境請求; k+1個線程全部屬於同一個進程,所有處理模塊(線程)都可以訪問當前進程地址空間中的緩存。

 

五. Cookie

  • 小甜餅Cookie,一小段文本信息,由瀏覽器存儲在客戶機磁盤Cookie目錄下
  • Cookie只是字符串,最多4KB,不是可執行程序,因而不存在病毒得以實際運行從而造成損害

 

六. HTTP協議

1. HTTP簡介

  • HTTP協議(Hyper Text Transfer Protocol超文本傳輸協議),用於從萬維網(WWW:World Wide Web)服務器傳輸超文本到本地瀏覽器。
  • 應用層協議,請求-響應協議,運行在TCP之上。
  • HTTP默認端口號爲80。瀏覽器通常與服務器的80端口建立TCP連接
  • 無連接:每次連接只處理一個請求。服務器處理完客戶端的請求,並收到客戶端的應答後,即斷開連接。節省傳輸時間。
  • 無狀態:對事務處理沒有記憶能力,若後續處理需要前面的信息,則必須重傳。

2. HTTP方法

方法 描述
GET 請求服務器發送頁面(完成查詢操作)
HEAD 請求一個Web頁面的消息頭
POST

向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。

(完成增刪改操作)

PUT 向服務器寫入一個Web頁面
DELETE 刪除頁面
TRACE 回顯服務器收到的請求,用於測試或診斷
CONNECT 通過代理連接
OPTIONS 一個頁面的查詢選項

3. 各種協議與HTTP協議的關係

(來源於《圖解HTTP》)

 

七. TCP/IP通信傳輸流

(來源於《圖解HTTP》)

 

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