我们目前需要上网时都要在网址栏里输入“http://”前缀才能进行访问页面。而“http://”究竟是什么呢?IPFS跟“http://”又有什么联系呢?
一、解密HTTP
其实HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
简单来说,假设用户A在电脑上操作将文件上传至浏览器,而用户B需要从浏览器下载这个文件,那么这之间会经历这样的过程。首先TCP程序会把A要发送的文件分解成很多数据,然后压缩成多个压缩包。这些压缩包又统统被装进一个IP里通过URL[ URL, 全称是Uniform Resource Locator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。向HTTP服务端即WEB服务器发送请求。Web服务器根据接收到的请求后,向客户端发送响应信息,于是A的文件上传成功。
而用户B下载这个文件时,需要输入IP地址或者域名,好让电脑知道去哪里找到对应信息(基于位置的寻址Location based addressing)。之后电脑上会向WEB服务器发送请求,TCP会将发下载的压缩后的数据按序还原。如果接收TCP发现部分文件受损,会请求再发送一次。这样的话,就会有以下一些问题:
1) 在互联网中,所有数据都会被存储在一个中心服务器上。无论用户是上传/下载文件或者是浏览网页,都需要一次一次从服务器上获取资料。一旦服务器出现故障、被限制或是被攻击,就会出现文件丢失或者网页无法打开的情况(错误404)。
2) 基于位置的寻址方式也存在不确定性。比如,一旦IP被删,或者服务器关闭,那么用户将无法下载该文件。
3) 如果这个文件是很多人都需要的,那么每个人都得去下载才能使用,造成很大的存储空间浪费问题。
二、IPFS与HTTP
HTTP的好处显而易见集中了所有的资源、所有的数据和路径,但当网络中心一旦被攻破或者出现BUG时,就会瞬间瘫痪。IPFS的诞生就是为优化并解决现有中心化网络的不足之处,IPFS虽在构建信息交换这一点上与目前互联网方式很像,但不同的是,IPFS是基于去中心化的网络构建,IPFS没有一个中心服务器,这就让IPFS不会出现息丢失或者被篡改的问题。并且IPFS可以实现文件共享,从而节省存储空间。
同样作为信息价值交换的基础,用户在IPFS上传或者使用文件时,不再是基于位置的寻址(Location based addressing),而是基于内容的寻址(Content based addressing)。也就是把“去哪找信息”的指令换成“想找什么内容”的指令。
在互联网内,下载文件或者浏览信息需要一个IP地址或者域名,而在IPFS内,每个文件都有自己的哈希值,并且一个哈希值只对应一个文件。不存在一个文件有多个哈希值,或者多个哈希值对应同一个文件的问题。因而,用户只需在IPFS内输入需要文件的哈希值,系统就会出现对应的文件。
三、IPFS的优势
哈希值(信息摘要)是给信息通过一定的方法赋予一个简化的代号,简化后的代号就是这段信息的哈希值。类似于让一个居民获得身份证号码。居民的名字就是信息本身,身份证编号的方式就是哈希函数,而身份证号就是这段信息的哈希值。
在IPFS中,信息可以存储进IPFS系统中的块(block)里,这些块可以存储最多256kb的数据,它们还可以链接其他IPFS块。也就是说,存储小于256kb的文件时,只需将这个文件放进一个块内就可以了。而大于256kb的文件会被分成多个256kb然后放进块中,之后IPFS将创建一个空块,该块将链接到文件的所有其他部分。这个空块就像一个大信封,里面会涵盖整个文件的所有部分。
系统会给同一个文件的每一个块计算一次哈希值a,所有块的哈希值a计算完毕之后,会将所有的哈希值a拼凑成一个数组b,再计算一次哈希值,从而得到最终的哈希值c。最后把最终的哈希值c和原文件捆绑起来,组成一个对象,从而形成一个索引结构d。把块和最终的索引结构d上传至IPFS节点,文件便同步到网络了。
可见IPFS在分布式存储文件的同时达到了去中心化的目的。另外,对于相同的文件,IPFS只创建一个文件夹,系统也会自动删除重复的文件,并修改的版本历史记录,这样可以大大节省存储空间,保证整个系统的运行速度,并保证存储文件的安全,和使用的便捷。
总的来说,不再依赖主干网或中心化服务器,整个IPFS系统是一个分布式的文件存储系统,在下载相关数据的时候将从多个节点同时下载,相比于HTTP从中心服务器的下载速度要快得多。IPFS所有的访问将会被分散到不同的节点,有效避免因大量的访问请求从四面八方涌来时服务器瘫痪的问题。在未来,IPFS不仅仅是为了加速web,而是为了最终取代HTTP协议,使互联网更加美好。
本文地址: https://www.xiguacaijing.com/news/guandian/2019/5779.html
赞助商