Web開發系列知識彙總
發表時(shí)間:2018-7-13
發布人(rén):融晨科技
浏覽次數:43
目錄
一. 定義
二. 網絡結構模式
三. 客戶端-浏覽器Browser
四. Web服務器端
五. Cookie
六. HTTP協議
1. HTTP簡介
2. HTTP方法
3. 各種協議與HTTP協議的(de)關系
七. TCP/IP通信傳輸流
一. 定義
1. Web:World Wide Web, 其内容以(yǐ)頁面的(de)形式表現。
- 超文本(Hypertext):一個(gè)頁面指向另一個(gè)頁面。用戶單擊一個(gè)鏈接就(jiù)可以(yǐ)來(lái)到(dào)該鏈接所指向的(de)頁面。
- 超媒體(Hypermedia):超文本和(hé / huò)多媒體的(de)結合。用戶可以(yǐ)在(zài)頁面激活一段聲音,顯示一個(gè)圖形,甚至播放一段視頻。
- 超文本傳輸協議(HTTP) :Web浏覽器向一個(gè)或多個(gè)Web服務器發送請求,服務器以(yǐ)頁面的(de)内容作爲(wéi / wèi)響應。這(zhè)裏的(de)“請求-響應”協議,即HTTP協議基于(yú)文本協議,運行于(yú)TCP之(zhī)上(shàng)。
2. 浏覽器:顯示頁面的(de)程序。
3. 統一資源定位符(URL,Uniform Resource Locator):用類标識每個(gè)頁面。包含三部分:協議,域名,路徑。如:
http(協議)://www.cs.washington.edu(域名)/index.html(頁面的(de)路徑)
4. Web的(de)體系結構
(圖片來(lái)源自Andrew S.Tanenbaum與David J.Wetherall的(de)《計算機網絡(第五版)》)
圖中Web浏覽器向三個(gè)服務器(youtube.com, www.cs.washington.edu, google-analytics.com)發送請求,從而(ér)獲得了(le/liǎo)兩個(gè)頁面。來(lái)自不(bù)同服務器的(de)内容集成在(zài)一起通過浏覽器顯示。www.cs.washington.edu服務器提供了(le/liǎo)主頁面,youtube.com服務器提供了(le/liǎo)一段嵌入的(de)視頻,google-analytics.com服務器沒有提供任何用戶可見的(de)内容,但它追蹤訪問網站的(de)用戶。
二. 網絡結構模式
1. C/S(Client/Server)
- 客戶端/服務器端架構,典型的(de)兩層結構。
- 客戶端:一個(gè)或多個(gè)在(zài)用戶電腦上(shàng)運行的(de)程序。
- 服務器端
1. 數據庫服務器端:客戶端通過數據庫連接訪問服務器端的(de)數據
2. Socket服務器端:服務器端的(de)程序通過Socket與客戶端的(de)程序通信
2. B/S(Browser/Server)-這(zhè)裏主要(yào / yāo)介紹該模式
- 浏覽器/服務器架構,三層結構
- Browser客戶端 :負責處理顯示邏輯
- Web服務器 :負責處理事務邏輯
- 數據庫服務器
(圖片來(lái)源于(yú):http://www.ltesting.net/html/84/n-141684.html)
三. 客戶端-浏覽器Browser
1. 一個(gè)浏覽器是(shì)一個(gè)應用程序,負責将用戶選擇的(de)web資源呈現出(chū)來(lái)。
2. 浏覽器的(de)組成
主要(yào / yāo)組件:
- 用戶界面 - 包括地(dì / de)址欄、後退/前進按鈕、書簽目錄等
- 浏覽器引擎 (Browser engine)- 用來(lái)查詢及操作渲染引擎的(de)接口
- 渲染引擎 (Rendering engine)- 浏覽器的(de)内核,負責将網頁代碼轉化成可見的(de)頁面
- 網絡 - 完成網絡調用
- UI後端 - 用來(lái)繪制類似組合選擇框及對話框等基本組件,底層使用操作系統的(de)用戶接口
- JS解析器 - 用來(lái)解釋執行JS代碼
- 數據存儲 - 浏覽器在(zài)用戶磁盤中保存類似于(yú)Cookie的(de)各種數據。HTML5定義了(le/liǎo)一種輕量級的(de)客戶端存儲技術Web Database技術
3. 當用戶點擊一個(gè)超鏈接時(shí),浏覽器執行的(de)系列步驟
(1)浏覽器确定URL
(2)浏覽器請求DNS查詢www.cs.washington.edu服務器的(de)IP地(dì / de)址
(3)DNS返回128.208.3.88
(4)浏覽器與128.208.3.88機器的(de)80端口建立一個(gè)TCP連接(80端口是(shì)HTTP協議的(de)默認端口)
(5)浏覽器發送HTTP報文,請求/index.html頁面
(6)www.cs.washington.edu服務器向浏覽器響應頁面,如發送文件/index.html
(7)若該頁面包括需要(yào / yāo)顯示的(de)URL,浏覽器通過相同的(de)處理過程獲取其他(tā)URL。該例子(zǐ)中,URL包括多個(gè)取自www.cs.washington.edu的(de)内嵌圖像,一段取自youtube.com的(de)内嵌視頻和(hé / huò)一個(gè)取自google-analytics.com的(de)腳本。
(8)浏覽器渲染顯示頁面/index.html
(9)若短期内沒有向同一個(gè)服務器發送其他(tā)請求,釋放TCP連接。
四. Web服務器端
1. Web服務器的(de)工作流程
- 接受來(lái)自浏覽器的(de)TCP連接請求
- 獲取頁面的(de)路徑,即被請求文件的(de)名字
- 從磁盤中讀取文件
- 将文件内容響應給浏覽器
- 釋放該TCP連接
2. 爲(wéi / wèi)了(le/liǎo)解決文件訪問瓶頸,減少讀磁盤的(de)操作,會在(zài)内存中維護一個(gè)緩存,保存着n個(gè)最近使用過的(de)文件或者内容。服務器從磁盤讀取文件前,首先檢查緩存。
3. 爲(wéi / wèi)了(le/liǎo)解決一次隻能服務一個(gè)請求的(de)問題,将服務器設計成多線程(multithreaded)模式。
(圖片來(lái)源自Andrew S.Tanenbaum與David J.Wetherall的(de)《計算機網絡(第五版)》)
多線程服務器由一個(gè)前端模塊和(hé / huò)一個(gè)處理模塊組成。前端模塊接收所有入境請求; k+1個(gè)線程全部屬于(yú)同一個(gè)進程,所有處理模塊(線程)都可以(yǐ)訪問當前進程地(dì / de)址空間中的(de)緩存。
五. Cookie
- 小甜餅Cookie,一小段文本信息,由浏覽器存儲在(zài)客戶機磁盤Cookie目錄下
- Cookie隻是(shì)字符串,最多4KB,不(bù)是(shì)可執行程序,因而(ér)不(bù)存在(zài)病毒得以(yǐ)實際運行從而(ér)造成損害
六. HTTP協議
1. HTTP簡介
- HTTP協議(Hyper Text Transfer Protocol超文本傳輸協議),用于(yú)從萬維網(WWW:World Wide Web)服務器傳輸超文本到(dào)本地(dì / de)浏覽器。
- 應用層協議,請求-響應協議,運行在(zài)TCP之(zhī)上(shàng)。
- HTTP默認端口号爲(wéi / wèi)80。浏覽器通常與服務器的(de)80端口建立TCP連接。
- 無連接:每次連接隻處理一個(gè)請求。服務器處理完客戶端的(de)請求,并收到(dào)客戶端的(de)應答後,即斷開連接。節省傳輸時(shí)間。
- 無狀态:對事務處理沒有記憶能力,若後續處理需要(yào / yāo)前面的(de)信息,則必須重傳。
2. HTTP方法
方法描述GET請求服務器發送頁面(完成查詢操作)HEAD請求一個(gè)Web頁面的(de)消息頭POST向指定資源提交數據進行處理請求(例如提交表單或者上(shàng)傳文件)。數據被包含在(zài)請求體中。POST請求可能會導緻新的(de)資源的(de)建立和(hé / huò)/或已有資源的(de)修改。
(完成增删改操作)
PUT向服務器寫入一個(gè)Web頁面DELETE删除頁面TRACE回顯服務器收到(dào)的(de)請求,用于(yú)測試或診斷CONNECT通過代理連接OPTIONS一個(gè)頁面的(de)查詢選項3. 各種協議與HTTP協議的(de)關系
(來(lái)源于(yú)《圖解HTTP》)
七. TCP/IP通信傳輸流
(來(lái)源于(yú)《圖解HTTP》)