https到底做了什么登渣?

從計算機說起

計算機最開始其實是用于高速計算的機器嘉抓,慢慢的后來才出現(xiàn)了多媒體功能。

互聯(lián)網(wǎng)

一臺計算機能做的事情其實很有限刘离,互聯(lián)網(wǎng)是將不同功能的計算機連接起來實現(xiàn)資源共享的系統(tǒng)睹簇。

服務器&終端:服務器、手機寥闪、PC其實都屬于計算機的一種太惠,而一般來說,個人PC和手機的處理能力遠遠不如一個服務器集群的疲憋,所以說服務器和這些終端存在大量數(shù)據(jù)交互凿渊,這個數(shù)據(jù)交互就是依靠互聯(lián)網(wǎng)。

TCP

互聯(lián)網(wǎng)好啊缚柳,互聯(lián)網(wǎng)能把所有的“計算機”都連接在一起埃脏,那么,在如此大量的信息交互中秋忙,傳輸數(shù)據(jù)的目標性彩掐、完整性和安全性怎么保證呢?
Transmission Control Protocol灰追,簡稱TCP堵幽,中文譯名:傳輸控制協(xié)議。TCP是一種面向連接的弹澎、可靠的朴下、基于字節(jié)流的傳輸層通信協(xié)議。
TCP傳輸是由專門的TCP傳輸實體負責的苦蒿,這個實體殴胧,可能是一個類,也可能是一個工具庫佩迟,實體主要管理TCP和IP層之間的接口团滥。

TCP/IP:

TCP將需要傳輸?shù)臄?shù)據(jù)分段,然后通過IP層(發(fā)送方)發(fā)送和(接收方)接收报强,IP層是不會在乎數(shù)據(jù)傳輸?shù)捻樞蚝屯暾缘木逆ⅲ訲CP還需要保證接收數(shù)據(jù)的完整性和順序。
那么躺涝,TCP是如何工作的呢厨钻?

建立連接——三次握手

  1. 客戶端發(fā)送SYN(SEQ=x)報文給服務器端扼雏,進入SYN_SEND狀態(tài)。
  2. 服務器端收到SYN報文夯膀,回應一個SYN (SEQ=y)ACK(ACK=x+1)報文诗充,進入SYN_RECV狀態(tài)。
  3. 客戶端收到服務器端的SYN報文诱建,回應一個ACK(ACK=y+1)報文蝴蜓,進入Established狀態(tài)。

三次握手完成俺猿,TCP客戶端和服務器端成功地建立連接茎匠,可以開始傳輸數(shù)據(jù)了。

斷開連接——四次揮手

  1. 某個應用進程首先調(diào)用close押袍,稱該端執(zhí)行“主動關閉”(active close)诵冒。該端的TCP于是發(fā)送一個FIN分節(jié),表示數(shù)據(jù)發(fā)送完畢谊惭。
  2. 接收到這個FIN的對端執(zhí)行 “被動關閉”(passive close)汽馋,這個FIN由TCP確認。
    注意:FIN的接收也作為一個文件結束符(end-of-file)傳遞給接收端應用進程圈盔,放在已排隊等候該應用進程接收的任何其他數(shù)據(jù)之后豹芯,因為,F(xiàn)IN的接收意味著接收端應用進程在相應連接上再無額外數(shù)據(jù)可接收驱敲。
  3. 一段時間后铁蹈,接收到這個文件結束符的應用進程將調(diào)用close關閉它的套接字。這導致它的TCP也發(fā)送一個FIN众眨。
  4. 接收這個最終FIN的原發(fā)送端TCP(即執(zhí)行主動關閉的那一端)確認這個FIN握牧。

HTTP

HTTP,是Hyper Text Transfer Protocol的縮寫围辙,翻譯過來是超文本傳輸協(xié)議我碟,它建立在TCP協(xié)議之上,最初出現(xiàn)的時候就是解決網(wǎng)頁內(nèi)容傳輸問題的姚建,HTTP在連接成功的TCP通道中傳輸數(shù)據(jù)包。

特點

  1. 一次性:每次HTTP請求是即時連接并且在單次請求吱殉、響應完成之后就關閉的
  2. 單向性:只能是請求方主動向接收方發(fā)出請求并連接的(這個也是TCP的特點)

請求方式

HTTP規(guī)定了一些請求方式掸冤,使用不同請求做不同的事。

  1. GET友雳,請求指定的頁面信息稿湿,并返回實體主體。
  2. HEAD押赊,類似于 GET 請求饺藤,只不過返回的響應中沒有具體的內(nèi)容,用于獲取報頭
  3. POST,向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)涕俗。數(shù)據(jù)被包含在請求體中罗丰。POST 請求可能會導致新的資源的建立和/或已有資源的修改。
  4. PUT再姑,從客戶端向服務器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容萌抵。
  5. DELETE,請求服務器刪除指定的頁面昙沦。
    6.CONNECT泌参,HTTP/1.1 協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務器乖阵。
  6. OPTIONS,允許客戶端查看服務器的性能讨永。
  7. TRACE,回顯服務器收到的請求遇革,主要用于測試或診斷住闯。
  8. PATCH,是對 PUT 方法的補充澳淑,用來對已知資源進行局部更新 比原。

請求狀態(tài)

HTTP規(guī)定了一系列code,表示每次HTTP請求的響應狀態(tài)杠巡。

1xx 信息量窘,服務器收到請求,需要請求者繼續(xù)執(zhí)行操作
2xx 成功氢拥,操作被成功接收并處理
3xx 重定向蚌铜,需要進一步的操作以完成請求
4xx 客戶端錯誤,請求包含語法錯誤或無法完成請求
5xx 服務器錯誤嫩海,服務器在處理請求的過程中發(fā)生了錯誤

更詳細的狀態(tài)碼在這里

HTTPS

終于進入重點了...
HTTP請求基于TCP冬殃,內(nèi)容都是明文傳輸,信息沒有加密叁怪,如果使用HTTP傳輸敏感數(shù)據(jù)审葬,那這些敏感數(shù)據(jù)很容易被截獲盜取。所以Netscape 公司制定了HTTPS協(xié)議奕谭,將內(nèi)容進行加密傳輸涣觉。
HTTPS(Hypertext Transfer Protocol Secure) = HTTP+SSL/TLS,在HTTP和TCP之間加入一層安全協(xié)議層血柳,就是HTTPS

SSL/TLS
SSL:Secure Sockets Layer官册,安全套接字層
TLS:Transport Layer Security,傳輸層安全

HTTP 原理

① 客戶端的瀏覽器首先要通過網(wǎng)絡與服務器建立連接难捌,該連接是通過TCP 來完成的膝宁,一般 TCP 連接的端口號是80鸦难。 建立連接后,客戶機發(fā)送一個請求給服務器员淫,請求方式的格式為:統(tǒng)一資源標識符(URL)合蔽、協(xié)議版本號,后邊是 MIME 信息包括請求修飾符满粗、客戶機信息和許可內(nèi)容辈末。

② 服務器接到請求后,給予相應的響應信息映皆,其格式為一個狀態(tài)行挤聘,包括信息的協(xié)議版本號、一個成功或錯誤的代碼捅彻,后邊是 MIME 信息包括服務器信息组去、實體信息和可能的內(nèi)容。

HTTPS 原理

① 客戶端將它所支持的算法列表和一個用作產(chǎn)生密鑰的隨機數(shù)發(fā)送給服務器步淹;

② 服務器從算法列表中選擇一種加密算法从隆,并將它和一份包含服務器公用密鑰的證書發(fā)送給客戶端;該證書還包含了用于認證目的的服務器標識缭裆,服務器同時還提供了一個用作產(chǎn)生密鑰的隨機數(shù)键闺;

③ 客戶端對服務器的證書進行驗證,并抽取服務器的公用密鑰澈驼;然后辛燥,再產(chǎn)生一個稱作 pre_master_secret 的隨機密碼串,并使用服務器的公用密鑰對其進行加密(參考非對稱加 / 解密)缝其,并將加密后的信息發(fā)送給服務器挎塌;

④ 客戶端與服務器端根據(jù) pre_master_secret 以及客戶端與服務器的隨機數(shù)值獨立計算出加密和 MAC密鑰;

⑤ 客戶端將所有握手消息的 MAC 值發(fā)送給服務器内边;

⑥ 服務器將所有握手消息的 MAC 值發(fā)送給客戶端榴都。

優(yōu)點

  1. 使用 HTTPS 協(xié)議可認證用戶和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器漠其;

  2. HTTPS 協(xié)議是由 SSL+HTTP構建的可進行加密傳輸嘴高、身份認證的網(wǎng)絡協(xié)議,要比 HTTP安全辉懒,可防止數(shù)據(jù)在傳輸過程中被竊取阳惹、改變,確保數(shù)據(jù)的完整性眶俩。

  3. HTTPS 是現(xiàn)行架構下最安全的解決方案,雖然不是絕對安全快鱼,但它大幅增加了中間人攻擊的成本颠印。

缺點

  1. 相同網(wǎng)絡環(huán)境下纲岭,HTTPS 協(xié)議會使頁面的加載時間延長近 50%,增加 10%到 20%的耗電线罕。此外止潮,HTTPS 協(xié)議還會影響緩存,增加數(shù)據(jù)開銷和功耗钞楼。

  2. HTTPS 協(xié)議的安全是有范圍的喇闸,在黑客攻擊、拒絕服務攻擊和服務器劫持等方面幾乎起不到什么作用询件。

  3. 最關鍵的是燃乍,SSL 證書的信用鏈體系并不安全。特別是在某些國家可以控制 CA根證書的情況下宛琅,中間人攻擊一樣可行刻蟹。

  4. 成本增加。部署 HTTPS 后嘿辟,因為 HTTPS 協(xié)議的工作要增加額外的計算資源消耗舆瘪,例如 SSL 協(xié)議加密算法和 SSL 交互次數(shù)將占用一定的計算資源和服務器成本。在大規(guī)模用戶訪問應用的場景下红伦,服務器需要頻繁地做加密和解密操作英古,幾乎每一個字節(jié)都需要做加解密,這就產(chǎn)生了服務器成本昙读。隨著云計算技術的發(fā)展召调,數(shù)據(jù)中心部署的服務器使用成本在規(guī)模增加后逐步下降,相對于用戶訪問的安全提升箕戳,其投入成本已經(jīng)下降到可接受程度某残。

注:以上內(nèi)容基本來自百度百科,只是做了綜述

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陵吸,一起剝皮案震驚了整個濱河市玻墅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壮虫,老刑警劉巖澳厢,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異囚似,居然都是意外死亡剩拢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門饶唤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徐伐,“玉大人,你說我怎么就攤上這事募狂“焖兀” “怎么了角雷?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長性穿。 經(jīng)常有香客問我勺三,道長,這世上最難降的妖魔是什么需曾? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任吗坚,我火速辦了婚禮,結果婚禮上呆万,老公的妹妹穿的比我還像新娘商源。我一直安慰自己,他們只是感情好桑嘶,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布炊汹。 她就那樣靜靜地躺著,像睡著了一般逃顶。 火紅的嫁衣襯著肌膚如雪讨便。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天以政,我揣著相機與錄音霸褒,去河邊找鬼。 笑死盈蛮,一個胖子當著我的面吹牛废菱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抖誉,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼殊轴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了袒炉?” 一聲冷哼從身側響起旁理,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎我磁,沒想到半個月后孽文,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡夺艰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年芋哭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郁副。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡减牺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烹植,我是刑警寧澤斑鸦,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布愕贡,位于F島的核電站草雕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏固以。R本人自食惡果不足惜墩虹,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憨琳。 院中可真熱鬧诫钓,春花似錦、人聲如沸篙螟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遍略。三九已至惧所,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绪杏,已是汗流浹背下愈。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蕾久,地道東北人势似。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像僧著,于是被迫代替她去往敵國和親履因。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容