深入了解HTTP協議

2021-08-05 19:30:11 字數 2362 閱讀 3116

1.什麼是http協議

http是hypertext transfer protocol(超文字傳輸協議)的簡寫,它是tcp/ip協議的乙個應用層協議,用於定義web瀏覽器與web伺服器之間交換資料的過程。他用於界定客戶端向服務端鏈結時的通訊格式,目前有兩個版本:http1.0和http1.1

2.基於tcp/ip協議族實現的http

(1)tcp/ip協議族:是指網際網路相關聯的協議集合都叫tcp/ip協議族

(2)tcp/ip分層管理:應用層、傳輸層、網路層、資料層

(3)tcp/ip通訊傳輸流

第一步,客戶端在應用層發出想要看到某個web頁面的http請求。

第二步,http協議為傳輸方便,傳輸層利用tcp協議將從應用層處收集到的資料進行分割,並在各個報文上打上標記序號,及埠號**給網路層。

第三步,在網路層ip協議增加作為目的位址的mac位址**給鏈路層,這樣一來,發往網路的通訊請求就準備齊全了。

第四步,接收端的伺服器在鏈路層接收到資料,按層往上層傳送,一直到應用層。當傳輸到應用層,才算真正接收到由客戶端傳送過來的http請求。

傳送端在層與層之間傳輸資料時,每經過一層必定會被打上乙個該層所屬的首部資訊(http資料,tcp首部,ip首部,乙太網首部),這種把資料資訊包裝起來的做法稱為封裝

3.tcp協議、ip協議、dns服務的作用

沒人能全面掌握網際網路的傳輸狀況,因此每次傳輸需要經過多台計算機或網路裝置中轉才能到達對方,而通過arp協議,可以依據ip位址反查出對方的mac位址

4.http請求響應的完整過程

5.http中可使用的方法及用途

6.http的缺點及對應方法

(1)http的缺點:

(2)防竊聽—>加密處理

(3)遭遇對方身份的偽裝

(4)內容遭篡改–>使用數字簽名的方法

7.https:超文字安全傳輸協議

https是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。(即http首先和ssl建立通訊,再有ssl與tcp建立通訊)

https的安全通訊機制(以下主要涉及ssl通訊建立):

步驟1: _客戶端通過傳送client hello報文開始ssl通訊。報文中包含客戶端支援的ssl的指定版本、加密元件(cipher suite)列表(所使用的加密演算法及金鑰長度等)。

步驟2: _伺服器可進行ssl通訊時,會以server hello報文作為應答。和客戶端一樣,在報文中包含ssl版本以及加密元件。伺服器的加密元件內容是從接收到的客戶端加密元件內篩選出來的

步驟3: _之後伺服器傳送certificate報文。報文中包含公開金鑰證書

步驟4: 最後伺服器傳送server hello done報文通知客戶端,最初階段的ssl握手協商部分結束。

步驟5: ssl第一次握手結束(拿到伺服器的公鑰)之後,客戶端以client key exchange報文作為回應。報文中包含通訊加密中使用的一種被稱為pre-master secret的隨機密碼串。該報文已用步驟3中的公開金鑰進行加密

步驟6: 接著客戶端繼續傳送change cipher spec報文。該報文會提示伺服器,在此報文之後的通訊會採用pre-master secret金鑰加密

步驟7: 客戶端傳送finished報文。該報文包含連線至今全部報文的整體校驗值。這次握手協商是否能夠成功,要以伺服器是否能夠正確解密該報文作為判定標準。

步驟8: 伺服器同樣傳送change cipher spec報文。

步驟9: 伺服器同樣傳送finished報文。

步驟10:伺服器和客戶端的finished報文交換完畢之後,ssl連線就算建立完成。當然,通訊會受到ssl的保護。從此處開始進行應用層協議的通訊,即傳送http請求。

步驟11: 應用層協議通訊,即傳送http響應。

步驟12: 最後由客戶端斷開連線。斷開連線時,傳送close_notify報文。上圖做了一些省略,這步之後再傳送tcp fin報文來關閉與tcp的通訊。

https的缺點:處理速度會變慢,比http慢2-100倍

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解A

一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...

深入了解Dojo Data

譯自http www.sitepen.com blog 2010 10 13 dive into dojo data 使用dojo data有助於快速建立web應用的介面,且易於嵌入各種資料來源。它在使用者介面與底層資料之間提供了一層抽象層,使得使用者介面開發人員能夠專注於ui的開發,而無需擔心資料...