勇敢的小明6星評(píng)價(jià)
2021-07-21 17:42:58
由Tim Berners-Lee開(kāi)發(fā)的HTTP(超文本傳輸協(xié)議)是當(dāng)今使用最廣泛的協(xié)議,HTTP對(duì)于互聯(lián)網(wǎng)來(lái)說(shuō),是數(shù)據(jù)通信的基礎(chǔ),也是用戶瀏覽網(wǎng)絡(luò)底層協(xié)議以及客戶端——服務(wù)器范式的協(xié)議支柱。
HTTP發(fā)明于1991年,于1996年被Web瀏覽器采用,從根本上確定了消息如何在互聯(lián)網(wǎng)上傳輸,以及瀏覽器應(yīng)如何響應(yīng)命令和服務(wù)器處理請(qǐng)求。
HTTP取得了成功,并幫助互聯(lián)網(wǎng)達(dá)到了如今的宏偉階段,但20多年過(guò)去了,也逐漸暴露出一些問(wèn)題。新技術(shù)的不斷涌現(xiàn),對(duì)改革和分布式基礎(chǔ)架構(gòu)的需求已變得愈來(lái)愈多。
在當(dāng)前的HTTP實(shí)現(xiàn)中,出現(xiàn)了如下問(wèn)題:
越來(lái)越多的用戶請(qǐng)求數(shù)據(jù):HTTP占用了大量可用帶寬,以便向用戶提供數(shù)據(jù),即使請(qǐng)求數(shù)據(jù)的人很近,考慮到海量數(shù)據(jù),效率也很低。每次從單個(gè)服務(wù)器下載文件也會(huì)導(dǎo)致內(nèi)容交付效率低下。
內(nèi)容損壞/失效:HTTP鏈接不是特別可靠,它們經(jīng)常會(huì)損壞或失效。如果內(nèi)容被刪除,那么它將永遠(yuǎn)丟失。
HTTP是集中化的:這給了少數(shù)擁有數(shù)據(jù)的個(gè)人/企業(yè)巨大的權(quán)力,可以很容易地限制用戶對(duì)數(shù)據(jù)的訪問(wèn)。
IPFS
IPFS是星際文件系統(tǒng)(Interplanetary File System)的縮寫(xiě),它是一種開(kāi)源的、點(diǎn)對(duì)點(diǎn)的分布式超媒體協(xié)議,旨在為所有計(jì)算設(shè)備提供一個(gè)無(wú)處不在的文件系統(tǒng)。IPFS的某些特性使它脫穎而出,有潛力成為未來(lái)的Web協(xié)議。
IPFS嘗試通過(guò)新穎的P2P文件共享系統(tǒng)解決客戶端——服務(wù)器模型和HTTP Web的缺陷,這是一個(gè)復(fù)雜且雄心勃勃的項(xiàng)目,對(duì)互聯(lián)網(wǎng)的未來(lái)發(fā)展和結(jié)構(gòu)有著深遠(yuǎn)的影響。
IPFS解決的是圍繞著與互聯(lián)網(wǎng)當(dāng)前HTTP協(xié)議相關(guān)的問(wèn)題,提供了互聯(lián)網(wǎng)實(shí)現(xiàn)其真正潛力所需要的分布式存儲(chǔ)和文件系統(tǒng),綜合了以前的點(diǎn)對(duì)點(diǎn)系統(tǒng)(包括DHT、BitTorrent、Git和SFS)的成功構(gòu)想。在IPFS中,不是從中央服務(wù)器中下載文件,而是要求網(wǎng)絡(luò)中的節(jié)點(diǎn)提供文件的路徑,這可以實(shí)現(xiàn)高效率的大量數(shù)據(jù)分發(fā)。
一個(gè)人的戰(zhàn)爭(zhēng)7星評(píng)價(jià)
2021-07-19 11:45:55
HTTP是一個(gè) 客戶端和 服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP)。客戶端是終端用戶,服務(wù)器端是網(wǎng)站。通過(guò)使用 Web瀏覽器、 網(wǎng)絡(luò)爬蟲(chóng)或者其它的工具,客戶端發(fā)起一個(gè)到服務(wù)器上指定端口(默認(rèn) 端口為80)的HTTP請(qǐng)求。(我們稱這個(gè)客戶端)叫用戶代理(user agent)。應(yīng)答的服務(wù)器上存儲(chǔ)著(一些)資源,比如HTML文件和圖像。(我們稱)這個(gè)應(yīng)答服務(wù)器為源服務(wù)器(origin server)。在用戶代理和源服務(wù)器中間可能存在多個(gè)中間層,比如代理,網(wǎng)關(guān),或者隧道(tunnels)。盡管 TCP/IP協(xié)議是互聯(lián)網(wǎng)上最流行的應(yīng)用,HTTP協(xié)議并沒(méi)有規(guī)定必須使用它和(基于)它支持的層。事實(shí)上,HTTP可以在任何其他互聯(lián)網(wǎng)協(xié)議上,或者在其他網(wǎng)絡(luò)上實(shí)現(xiàn)。HTTP只假定(其下層協(xié)議提供)可靠的傳輸,任何能夠提供這種保證的協(xié)議都可以被其使用。
通常,由HTTP客戶端發(fā)起一個(gè)請(qǐng)求,建立一個(gè)到服務(wù)器指定端口(默認(rèn)是 80端口)的TCP連接。HTTP服務(wù)器則在那個(gè)端口監(jiān)聽(tīng)客戶端發(fā)送過(guò)來(lái)的請(qǐng)求。一旦收到請(qǐng)求,服務(wù)器(向客戶端)發(fā)回一個(gè)狀態(tài)行,比如"HTTP/1.1 200 OK",和(響應(yīng)的)消息,消息的消息體可能是請(qǐng)求的文件、錯(cuò)誤消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在于(打開(kāi))一個(gè)網(wǎng)頁(yè)必須傳送很多數(shù)據(jù),而TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù),和錯(cuò)誤糾正。
通過(guò)HTTP或者HTTPS協(xié)議請(qǐng)求的資源由統(tǒng)一資源標(biāo)示符(Uniform Resource Identifiers)(或者,更準(zhǔn)確一些,URLs)來(lái)標(biāo)識(shí)。
IPFS ( InterPlanetary File System,星際文件系統(tǒng)),是一種相對(duì)模糊的傳輸協(xié)議,它旨在創(chuàng)建持久且分布式存儲(chǔ)和共享文件的網(wǎng)絡(luò)傳輸協(xié)議。在 IPFS 網(wǎng)絡(luò)中的節(jié)點(diǎn)將構(gòu)成一個(gè)分布式文件協(xié)同,用于訪問(wèn)分散或?qū)彶閮?nèi)容的點(diǎn)對(duì)點(diǎn)協(xié)議。
IPFS 作為一款開(kāi)源項(xiàng)目,于 2015 年發(fā)布,它的誕生將從根本上改變互聯(lián)網(wǎng)的工作方式,也有不少業(yè)界人士將其解讀為取代傳統(tǒng)互聯(lián)網(wǎng)協(xié)議 HTTP。
簡(jiǎn)單來(lái)說(shuō),HTTP 是專為互聯(lián)網(wǎng)的瀏覽器而設(shè)計(jì)的,用于訪問(wèn)服務(wù)器上信息,而 IPFS 在分時(shí)節(jié)點(diǎn)的網(wǎng)絡(luò)上對(duì)其進(jìn)行訪問(wèn)。
在 HTTP 協(xié)議被廣泛應(yīng)用的當(dāng)下,它面臨著中心化成本高昂、Web 文件常被刪除等缺點(diǎn),IPFS 允許用戶托管分布在成百上千個(gè)系統(tǒng)中的內(nèi)容,這些內(nèi)容可以是公共 IPFS 網(wǎng)關(guān)或私有 IPFS 節(jié)點(diǎn)。想要訪問(wèn)任何此內(nèi)容的用戶必須輸入ipfs:// {content_hash_ID} 形式的 URL。
IPFS 是一種超媒體文本傳輸協(xié)議,由此構(gòu)成一個(gè)點(diǎn)對(duì)點(diǎn)的分布式文件系統(tǒng),目標(biāo)是代替目前互聯(lián)網(wǎng)的HTTP協(xié)議,構(gòu)建一個(gè)更自由、更開(kāi)放、更強(qiáng)大的網(wǎng)絡(luò),那么你可能會(huì)問(wèn)HTTP 協(xié)議是什么?為什么要取代它呢?HTTP就是用來(lái)定義互聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)和分布的協(xié)議,它是中心化的,我們現(xiàn)在使用的互聯(lián)網(wǎng),都是基于HTTP協(xié)議的互聯(lián)網(wǎng),比如說(shuō)我們?cè)隍v訊視頻平臺(tái)上,搜索一個(gè)視頻,我們會(huì)發(fā)現(xiàn)幾乎所有網(wǎng)站 都是以http開(kāi)頭的,這個(gè)就是使用http協(xié)議的網(wǎng)絡(luò)標(biāo)識(shí),通過(guò)這個(gè)網(wǎng)站,我們可以找到存儲(chǔ)視頻所在的服務(wù)器,用戶點(diǎn)擊視頻,網(wǎng)絡(luò)會(huì)發(fā)送觀看視頻的請(qǐng)求命令,服務(wù)器根據(jù)請(qǐng)求響應(yīng)要求。
但萬(wàn)一哪天服務(wù)器壞了、數(shù)據(jù)被盜了又或者被刪改了,那豈不是很糟糕嗎?如果同一時(shí)間很多人要打開(kāi)這個(gè)視頻,網(wǎng)絡(luò)就會(huì)延遲,系統(tǒng)就會(huì)崩潰,體驗(yàn)非常不好,這些都是http協(xié)議中心化存儲(chǔ)的大BUG,于是一個(gè)叫胡安的美國(guó)人,提出了IPFS 協(xié)議構(gòu)想,希望通過(guò)IPFS協(xié)議,構(gòu)建一個(gè)分布式存儲(chǔ)網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中呢,它有以下優(yōu)點(diǎn):第一,數(shù)據(jù)存儲(chǔ)安全可靠;第二,文件下載速度更快;第三,避免依賴主干網(wǎng),造成網(wǎng)絡(luò)擁堵;第四,節(jié)約帶寬和存儲(chǔ)成本等優(yōu)勢(shì)。
IPFS分布式存儲(chǔ)的原理是怎樣的呢?用戶存儲(chǔ)視頻,這個(gè)視頻上傳到IPFS網(wǎng)絡(luò),將自動(dòng)被分割成若干片段,每個(gè)片段大小為256K,這個(gè)視頻可能被分割成20個(gè)片段,也可能是30個(gè)片段,具體由視頻大小而定,分割完之后呢,會(huì)隨機(jī)分發(fā)到網(wǎng)絡(luò)上的各個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)就是接入IPFS網(wǎng)絡(luò)上的計(jì)算機(jī)了,那么你可能會(huì)問(wèn),視頻被分割成那么多片段,那視頻打開(kāi)和下載豈不是會(huì)很麻煩嗎?這一點(diǎn)完全不用擔(dān)心,因?yàn)樯蟼鞯絀PFS網(wǎng)絡(luò)的文件,IPFS 網(wǎng)絡(luò)會(huì)通過(guò)算法給文件進(jìn)行加密,生成一個(gè)哈希值地址,就像一串字符一樣,那么上傳的文件,IPFS 網(wǎng)絡(luò)會(huì)將它切割成若干片段,每個(gè)小片段都會(huì)賦予唯一的哈希值,然后將每一個(gè)哈希值按照一定的次序排成哈希列表,這份文件中除了視頻的片段、哈希值列表,還包含一個(gè)內(nèi)容摘要,當(dāng)用戶想要下載視頻的時(shí)候,只需要搜索這份文件的哈希值,就可以打開(kāi)視頻,或者下載視頻,有朋友可能會(huì)問(wèn),這串哈希值這么長(zhǎng),怎么記得住呢?而且用起來(lái)也很麻煩,不利于傳播啊?答案是不會(huì),因?yàn)楣V挡蝗菀子洃?,就像IP地址一樣不容易記憶,所以IPFS項(xiàng)目的協(xié)議實(shí)驗(yàn)室使用IPFS 這樣的域名命名系統(tǒng),將哈希值映射為容易記的名字,使用起來(lái)就非常方便啦!
隨著IPFS技術(shù)的發(fā)展成熟,未來(lái)IPFS網(wǎng)絡(luò)就像是現(xiàn)在的互聯(lián)網(wǎng)一樣,只不過(guò)網(wǎng)址前面的HTTP協(xié)議改成了IPFS協(xié)議。