一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

這可能是我見過把HTTP解釋的最通俗易懂的文章!

 剩礦空錢 2019-02-23

本文通過比喻的方式介紹了什么是HTTP,并闡述了從HTTP/1.0 到HTTP/3各個版本的區(qū)別和特點,值得一看。以下是原文:

周末一大早,我正在電腦前面瀏覽一些技術(shù)網(wǎng)站,突然女朋友大喊起來:哇,杭州又下大雪啦,快來看啊。我并沒有理她,于是她跑過來拉我。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

? 圖,雪后杭州

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

由這次下雪將要介紹的HTTP和RPC也有點關(guān)系,都是通信方式。

什么是HTTP協(xié)議

HTTP是HyperText Transfer Protocol的縮寫,中文翻譯為超文本傳輸協(xié)議。他是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應用層協(xié)議。HTTP是萬維網(wǎng)的數(shù)據(jù)通信的基礎。

說的簡單點,其實HTTP協(xié)議主要就是用來進行客戶端和服務器之間進行通信的標準協(xié)議。HTTP主要規(guī)定了客戶端如何與服務器建立鏈接、客戶端如何從服務器請求數(shù)據(jù)、服務器如何響應請求,以及最后連接如何關(guān)閉。

當我們在瀏覽器中輸入一個url,如http://www.taobao.com ,然后按下回車,一直到頁面顯示淘寶網(wǎng)的首頁的過程就是一次HTTP的網(wǎng)絡通信。

這次通信過程中,我們查看淘寶使用的電腦就是客戶端,而搭建淘寶網(wǎng)的那些計算機機器就是服務器。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?這個過程有點像老板通過電話給員工下達命令。當我們在瀏覽器輸入網(wǎng)址并按下回車之后,共發(fā)生了以下四件事:

1、建立連接:老板撥通手下員工的電話

2、進行請求:老板提出自己的要求

3、響應:員工應答老板的請求

4、關(guān)閉連接:掛斷電話

建立連接

老板找出自己公司的總機電話號并撥通,員工接聽電話的過程就是建立連接。

根據(jù)用戶輸入的URL地址,通過DNS、負載均衡等技術(shù)找到一臺服務器,客戶端與服務器的80端口建立一個TCP鏈接。

進行請求

電話被接通之后,老板可能要求某個具體員工來進行接聽,并且會對該員工下達一些命令,比如幫他取個快遞,幫他預訂個酒店,幫他收購一家公司等。這個過程就進行請求(request)。

客戶端向服務器發(fā)送消息,請求URL中指定的頁面,要求執(zhí)行指定的操作。

老板對員工下達的命令中,可以分為很多種,比如有些命令只是簡單的事情詢問、而有些命令則要求員工執(zhí)行某些決定,如收購公司等。

同樣的,HTTP的請求方法也有很多種,主要的有GET、POST、HEAD等。

響應

員工在接收到老板下單的命令后,需要對該命令做出回應。比如直接告知老板他接下來的行程,幫老板預訂好酒店后告訴他已經(jīng)預訂成功等。這個過程就是響應(response)

服務器向客戶端發(fā)送響應。響應以狀態(tài)碼開頭。常見的狀態(tài)碼有:200、302、404、500等。

HTTP狀態(tài)碼由三個十進制數(shù)字組成,第一個十進制數(shù)字定義了狀態(tài)碼的類型,后兩個數(shù)字沒有分類的作用。HTTP狀態(tài)碼共分為5種類型:

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

關(guān)閉連接

老板在下達完命令,并且員工給予響應之后,雙方會掛斷電話。這個過程就是關(guān)閉連接。

客戶端或服務端都可以關(guān)閉連接。每個請求都是用一個單獨的網(wǎng)絡連接。

特別的是:服務器不回記憶前面一次連接或者其結(jié)果,這種不記憶過去請求的協(xié)議被稱為無狀態(tài)(stateless)協(xié)議。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?上圖就是一次淘寶網(wǎng)的HTTP請求的過程。其中顯示了request(請求)和response(響應)的所有信息。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

HTTP協(xié)議的迭代

前面我們把HTTP通信比喻成打電話,嚴格一點來說,HTTP/2更像是現(xiàn)在的打電話。HTTP協(xié)議主要的版本有3個,分別是HTTP/1.0、HTTP/1.1和HTTP/2。

HTTP/1.0

1996年5月,HTTP/1.0 版本發(fā)布,為了提高系統(tǒng)的效率,HTTP/1.0規(guī)定瀏覽器與服務器只保持短暫的連接,瀏覽器的每次請求都需要與服務器建立一個TCP連接,服務器完成請求處理后立即斷開TCP連接,服務器不跟蹤每個客戶也不記錄過去的請求。

這種方式就好像我們打電話的時候,只能說一件事兒一樣,說完之后就要掛斷,想要說另外一件事兒的時候就要重新?lián)艽螂娫挕?/p>

HTTP/1.0中瀏覽器與服務器只保持短暫的連接,連接無法復用。也就是說每個TCP連接只能發(fā)送一個請求。發(fā)送數(shù)據(jù)完畢,連接就關(guān)閉,如果還要請求其他資源,就必須再新建一個連接。

我們知道TCP連接的建立需要三次握手,是很耗費時間的一個過程。所以,HTTP/1.0版本的性能比較差。

HTTP/1.1

為了解決HTTP/1.0存在的缺陷,HTTP/1.1于1999年誕生。相比較于HTTP/1.0來說,最主要的改進就是引入了持久連接。所謂的持久連接即TCP連接默認不關(guān)閉,可以被多個請求復用。

由于之前打一次電話只能說一件事兒,效率很低。后來人們提出一種想法,就是電話打完之后,先不直接掛斷,而是持續(xù)一小段時間,這一小段時間內(nèi),如果還有事情溝通可以再次進行溝通。

客戶端和服務器發(fā)現(xiàn)對方一段時間沒有活動,就可以主動關(guān)閉連接?;蛘呖蛻舳嗽谧詈笠粋€請求時,主動告訴服務端要關(guān)閉連接。

HTTP/1.1版還引入了管道機制(pipelining),即在同一個TCP連接里面,客戶端可以同時發(fā)送多個請求。這樣就進一步改進了HTTP協(xié)議的效率。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?

也就是說,現(xiàn)在打電話,一個電話里面可以吩咐多件事兒了。但是對于執(zhí)行者來說,還是需要按照順序,先執(zhí)行完一件事兒以后再執(zhí)行另外一件事兒。

有了持久連接和管道,大大的提升了HTTP的效率。但是服務端還是順序執(zhí)行的,效率還有提升的空間。

HTTP/2

HTTP/2 是 HTTP 協(xié)議自 1999 年 HTTP 1.1 發(fā)布后的首個更新,主要基于 SPDY 協(xié)議。

HTTP/2 為了解決HTTP/1.1中仍然存在的效率問題,HTTP/2 采用了多路復用。即在一個連接里,客戶端和瀏覽器都可以同時發(fā)送多個請求或回應,而且不用按照順序一一對應。能這樣做有一個前提,就是HTTP/2進行了二進制分幀,即 HTTP/2 會將所有傳輸?shù)男畔⒎指顬楦〉南⒑蛶╢rame),并對它們采用二進制格式的編碼。

也就是說,老板可以同時下達多個命令,員工也可以收到了A請求和B請求,于是先回應A請求,結(jié)果發(fā)現(xiàn)處理過程非常耗時,于是就發(fā)送A請求已經(jīng)處理好的部分, 接著回應B請求,完成后,再發(fā)送A請求剩下的部分。A請求的兩部分響應在組合到一起發(fā)給老板。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?

而這個負責拆分、組裝請求和二進制幀的一層就叫做二進制分幀層。

除此之外,還有一些其他的優(yōu)化,比如做Header壓縮、服務端推送等。

Header壓縮就是壓縮老板和員工之間的對話。

服務端推送就是員工事先把一些老板可能詢問的事情提現(xiàn)發(fā)送到老板的手機(緩存)上。這樣老板想要知道的時候就可以直接讀取短信(緩存)了。

目前,主流的HTTP協(xié)議還是HTTP/1.1 和 HTTP/2。并且各大網(wǎng)站的HTTP/2的使用率也在逐年增加。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

HTTP-over-QUIC

據(jù)國際互聯(lián)網(wǎng)工程任務組(The Internet Engineering Task Force,簡稱 IETF )消息,HTTP-over-QUIC 實驗性協(xié)議將被重命名為 HTTP/3,并有望成為 HTTP 協(xié)議的第三個正式版本。

QUIC (Quick UDP Internet Connections)是 Google 推出的一個項目,旨在降低基于 TCP 通訊的 Web 延遲。QUIC 非常類似 TCP TLS SPDY ,但是基于 UDP 實現(xiàn)的。

這種通信方式有點像現(xiàn)在我們使用的微信語言,在通話之前,老板和下屬之間并沒有直接的建立可靠連接,即不需要撥通電話,而是拿起微信,直接通過語音直接下達了命令。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?HTTP/3使用UDP代替了TCP,UDP是一個非連接的協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接。 UDP信息包的標題很,對系統(tǒng)資源的要求比TCP要低。并且UDP是使用最大努力交付,即不保證可靠交付。

我們經(jīng)常使用的“ping”命令的原理就是向?qū)Ψ街鳈C發(fā)送UDP數(shù)據(jù)包,然后對方主機確認收到數(shù)據(jù)包, 如果數(shù)據(jù)包是否到達的消息及時反饋回來,那么網(wǎng)絡就是通的。

至于,這種基于QUIC的HTTP協(xié)議究竟未來發(fā)展如何,目前只能拭目以待了。

下面是一張大圖,通過圖解來介紹HTTP/1.0、HTTP/1.1、HTTP/2.0(SDPY)和HTTP over QUIC(HTTP/3)

這可能是我見過把HTTP解釋的最通俗易懂的文章!

?

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

HTTPS

HTTPS是Hypertext Transfer Protocol Secure的縮寫,翻譯為超文本傳輸安全協(xié)議。HTTPS經(jīng)由HTTP進行通信,但利用SSL/TLS來加密數(shù)據(jù)包。

HTTPS就像是加密電話,通過一些手段來加密通話內(nèi)容的。他是基于普通電話的,但是又不是普通的電話,更不是普通電話的升級版。

所以,HTTP和HTTPS是兩個不同的協(xié)議。

HTTP的URL是由“http://”起始與默認使用端口80,而HTTPS的URL則是由“https://”起始與默認使用端口443。

HTTP不是安全的,而且攻擊者可以通過監(jiān)聽和中間人攻擊等手段,獲取網(wǎng)站帳戶和敏感信息等。HTTPS的設計可以防止前述攻擊,在正確配置時是安全的。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

這可能是我見過把HTTP解釋的最通俗易懂的文章!

美國民主與技術(shù)中心 CDT 首席技術(shù)專家 Joseph Hall 表示: '使用 HTTPS,你的互聯(lián)網(wǎng)服務供應商不會知道你在網(wǎng)站上干了些什么,即使是政府和間諜也不能辦到。'

這可能是我見過把HTTP解釋的最通俗易懂的文章!

所以,目前已經(jīng)有很多網(wǎng)站都在使用HTTPS協(xié)議了,包括全球最大的程序員交友網(wǎng)站:github!我說的是github,不是pornhub哦,雖然他也是https的。

這可能是我見過把HTTP解釋的最通俗易懂的文章!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美一区二区黑人在线| 国产黄色高清内射熟女视频| 五月婷婷缴情七月丁香| 国产一级二级三级观看| 精品日韩欧美一区久久| 91精品国自产拍老熟女露脸| 91日韩欧美国产视频| 日韩精品视频免费观看| 欧美有码黄片免费在线视频| 日本不卡一区视频欧美| 东北老熟妇全程露脸被内射| 久久大香蕉精品在线观看| 果冻传媒精选麻豆白晶晶| 国产二级一级内射视频播放| 青青操在线视频精品视频| 日韩人妻毛片中文字幕| 日本三区不卡高清更新二区| 日韩精品综合福利在线观看| 日韩国产亚洲欧美另类| 欧美一区二区三区在线播放| 中文字幕91在线观看| 亚洲丁香婷婷久久一区| 国产不卡视频一区在线| 精品香蕉国产一区二区三区| 又黄又色又爽又免费的视频| 亚洲一区二区欧美在线| 亚洲黄色在线观看免费高清| 翘臀少妇成人一区二区| 欧美黑人在线精品极品| 老司机精品视频在线免费看| 亚洲国产色婷婷久久精品| 日韩欧美一区二区亚洲| 日本高清视频在线播放| 欧美一区日韩一区日韩一区| 好吊视频一区二区在线| 亚洲高清亚洲欧美一区二区| 久久精品免费视看国产成人| 亚洲中文字幕高清视频在线观看| 国产精品伦一区二区三区四季| 中文字幕高清不卡一区| 婷婷亚洲综合五月天麻豆|