Http與Https簡要

什么是Http協(xié)議

協(xié)議是指計算機通信網(wǎng)絡中兩臺計算機之間進行通信所必須共同遵守的規(guī)定或規(guī)則,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議币励,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器子姜。

HTTP協(xié)議是無狀態(tài)的

http協(xié)議是無狀態(tài)的,同一個客戶端的這次請求和上次請求是沒有對應關系,對http服務器來說习柠,它并不知道這兩個請求來自同一個客戶端蒜焊。 為了解決這個問題倒信, Web程序引入了Cookie機制來維護狀態(tài)。HTTP 的無狀態(tài)特性簡化了服務器的設計泳梆,使服務器更容易支持大量并發(fā)的HTTP 請求鳖悠。

HTTP消息的結構

Request結構圖


image.png

request.png
request.png
  • 第一部分叫請求行,

請求行由方法字段榜掌、URL 字段 和HTTP 協(xié)議版本字段 3 個部分組成,他們之間使用空格隔開乘综。常用的 HTTP 請求方法有 GET憎账、POST、HEAD卡辰、PUT鼠哥、DELETE、OPTIONS看政、TRACE朴恳、CONNECT

  • 第二部分叫請求頭

請求頭部由關鍵字/值對組成,每行一對允蚣,關鍵字和值用英文冒號“:”分隔

  • 第三部分是body. header和body之間有個空行

請求體不在 GET 方法中使用于颖,而是在POST 方法中使用。POST 方法適用于需要客戶填寫表單的場合嚷兔。與請求包體相關的最常使用的是包體類型 Content-Type 和包體長度 Content-Length;

Response結構圖

image.png
image.png

HTTP/version-number表示HTTP協(xié)議的版本號森渐, status-code 和message

工作原理

HTTP 協(xié)議采用請求/響應模型∶拔客戶端向服務器發(fā)送一個請求報文同衣,服務器以一個狀態(tài)作為響應。

以下是 HTTP 請求/響應的步驟:

  • 客戶端連接到web服務器:HTTP 客戶端與web服務器建立一個 TCP 連接;
  • 客戶端向服務器發(fā)起 HTTP 請求:通過已建立的TCP 連接壶运,客戶端向服務器發(fā)送一個請求報文;
  • 服務器接收 HTTP 請求并返回 HTTP 響應:服務器解析請求耐齐,定位請求資源,服務器將資源副本寫到 TCP 連接蒋情,由客戶端讀取;
  • 釋放 TCP 連接:若connection 模式為close埠况,則服務器主動關閉TCP 連接,客戶端被動關閉連接棵癣,釋放TCP 連接;若connection 模式為keepalive辕翰,則該連接會保持一段時間,在該時間內可以繼續(xù)接收請求;
  • 客戶端瀏覽器解析HTML內容:客戶端將服務器響應的 html 文本解析并顯示;
    例如:在瀏覽器地址欄鍵入URL狈谊,按下回車之后會經歷以下流程:
    1喜命、瀏覽器向 DNS 服務器請求解析該 URL 中的域名所對應的 IP 地址;
    2、解析出 IP 地址后河劝,根據(jù)該 IP 地址和默認端口 80壁榕,和服務器建立 TCP 連接;
    3、瀏覽器發(fā)出讀取文件(URL 中域名后面部分對應的文件)的HTTP 請求丧裁,該請求報文作為 TCP 三次握手的第三個報文的數(shù)據(jù)發(fā)送給服務器;
    4护桦、服務器對瀏覽器請求作出響應,并把對應的 html 文本發(fā)送給瀏覽器;
    5煎娇、釋放 TCP 連接;
    6二庵、瀏覽器將該 html 文本并顯示內容;

HTTP 持久連接

HTTP1.0 使用的是非持久連接贪染,主要缺點是客戶端必須為每一個待請求的對象建立并維護一個新的連接,即每請求一個文檔就要有兩倍RTT(Round-Trip Time: 往返時延催享,在計算機網(wǎng)絡中它也是一個重要的性能指標杭隙,它表示從發(fā)送端發(fā)送數(shù)據(jù)開始,到發(fā)送端收到來自接收端的確認(接收端收到數(shù)據(jù)后便立即發(fā)送確認)因妙,總共經歷的時延;) 的開銷痰憎。因為同一個頁面可能存在多個對象,所以非持久連接可能使一個頁面的下載變得十分緩慢攀涵,而且這種短連接增加了網(wǎng)絡傳輸?shù)呢摀吃拧TTP1.1 使用持久連接keepalive,所謂持久連接以故,就是服務器在發(fā)送響應后仍然在一段時間內保持這條連接蜗细,允許在同一個連接中存在多次數(shù)據(jù)請求和響應,即在持久連接情況下怒详,服務器在發(fā)送完響應后并不關閉TCP 連接炉媒,而客戶端可以通過這個連接繼續(xù)請求其他對象。

Https是什么

HTTPS(Secure Hypertext Transfer Protocol)安全超文本傳輸協(xié)議 它是一個安全通信通道昆烁,它基于HTTP開發(fā)吊骤,用于在客戶計算機和服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換静尼,簡單來說它是HTTP的安全版白粉。 它是由Netscape開發(fā)并內置于其瀏覽器中,用于對數(shù)據(jù)進行壓縮和解壓操作茅郎,并返回網(wǎng)絡上傳送回的結果蜗元。HTTPS實際上應用了Netscape的安 全全套接字層(SSL)作為HTTP應用層的子層或渤。(HTTPS使用端口443系冗,而不是象HTTP那樣使用端口80來和TCP/IP進行通信。)SSL使 用40 位關鍵字作為RC4流加密算法薪鹦,這對于商業(yè)信息的加密是合適的掌敬。HTTPS和SSL支持使用X.509數(shù)字認證,如果需要的話用戶可以確認發(fā)送者是誰池磁。

https原理初識

Https與Http主要區(qū)別

  • 協(xié)議基礎不同:Https在Http下加入了SSL層奔害,
  • 通訊方式不同:Https在數(shù)據(jù)通信之前需要客戶端、服務器進行握手(身份認證)地熄,建立連接后华临,傳輸數(shù)據(jù)經過加密,通信端口443端考。Http傳輸數(shù)據(jù)不加密雅潭,明文揭厚,通信端口80。

SSL協(xié)議基礎

SSL協(xié)議位于TCP/IP協(xié)議與各種應用層協(xié)議之間扶供,本身又分為兩層:
SSL記錄協(xié)議(SSL Record Protocol):建立在可靠傳輸層協(xié)議(TCP)之上筛圆,為上層協(xié)議提供數(shù)據(jù)封裝、壓縮椿浓、加密等基本功能太援。
SSL握手協(xié)議(SSL Handshake Procotol):在SSL記錄協(xié)議之上,用于實際數(shù)據(jù)傳輸前扳碍,通訊雙方進行身份認證提岔、協(xié)商加密算法、交換加密密鑰等笋敞。

SSL協(xié)議通信過程

(1) 瀏覽器發(fā)送一個連接請求給服務器;服務器將自己的證書(包含服務器公鑰S_PuKey)唧垦、對稱加密算法種類及其他相關信息返回客戶端;
(2) 客戶端瀏覽器檢查服務器傳送到CA證書是否由自己信賴的CA中心簽發(fā)。若是液样,執(zhí)行4步;否則振亮,給客戶一個警告信息:詢問是否繼續(xù)訪問。
(3) 客戶端瀏覽器比較證書里的信息鞭莽,如證書有效期坊秸、服務器域名和公鑰S_PK,與服務器傳回的信息是否一致澎怒,如果一致褒搔,則瀏覽器完成對服務器的身份認證。
(4) 服務器要求客戶端發(fā)送客戶端證書(包含客戶端公鑰C_PuKey)喷面、支持的對稱加密方案及其他相關信息星瘾。收到后,服務器進行相同的身份認證惧辈,若沒有通過驗證琳状,則拒絕連接;
(5) 服務器根據(jù)客戶端瀏覽器發(fā)送到密碼種類,選擇一種加密程度最高的方案盒齿,用客戶端公鑰C_PuKey加密后通知到瀏覽器;
(6) 客戶端通過私鑰C_PrKey解密后念逞,得知服務器選擇的加密方案,并選擇一個通話密鑰key边翁,接著用服務器公鑰S_PuKey加密后發(fā)送給服務器;
(7) 服務器接收到的瀏覽器傳送到消息翎承,用私鑰S_PrKey解密,獲得通話密鑰key符匾。
(8) 接下來的數(shù)據(jù)傳輸都使用該對稱密鑰key進行加密叨咖。
上面所述的是雙向認證 SSL 協(xié)議的具體通訊過程,服務器和用戶雙方必須都有證書。由此可見甸各,SSL協(xié)議是通過非對稱密鑰機制保證雙方身份認證仰剿,并完成建立連接,在實際數(shù)據(jù)通信時通過對稱密鑰機制保障數(shù)據(jù)安全性

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末痴晦,一起剝皮案震驚了整個濱河市南吮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌誊酌,老刑警劉巖部凑,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碧浊,居然都是意外死亡涂邀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門箱锐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來比勉,“玉大人,你說我怎么就攤上這事驹止『屏” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵臊恋,是天一觀的道長衣洁。 經常有香客問我,道長抖仅,這世上最難降的妖魔是什么坊夫? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮撤卢,結果婚禮上环凿,老公的妹妹穿的比我還像新娘。我一直安慰自己放吩,他們只是感情好智听,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屎慢,像睡著了一般瞭稼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腻惠,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音欲虚,去河邊找鬼集灌。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的欣喧。 我是一名探鬼主播腌零,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唆阿!你這毒婦竟也來了益涧?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤驯鳖,失蹤者是張志新(化名)和其女友劉穎闲询,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅辙,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡扭弧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了记舆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸽捻。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泽腮,靈堂內的尸體忽然破棺而出御蒲,到底是詐尸還是另有隱情,我是刑警寧澤诊赊,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布删咱,位于F島的核電站,受9級特大地震影響豪筝,放射性物質發(fā)生泄漏痰滋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一续崖、第九天 我趴在偏房一處隱蔽的房頂上張望敲街。 院中可真熱鬧,春花似錦严望、人聲如沸多艇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峻黍。三九已至,卻和暖如春拨匆,著一層夾襖步出監(jiān)牢的瞬間姆涩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工惭每, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骨饿,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像宏赘,于是被迫代替她去往敵國和親绒北。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內容