什么是协议
协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。
协议往往分成几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层次的协议。
人与人之间交谈需要使用同一种语言,如果语言不同则需要翻译,否则两人之间无法沟通。计算机之间的通信过程和人与人之间的交谈过程非常相似,前者由计算机控制,后者由参加交谈的人控制。
总之规定你干啥他干啥我干啥,每个人不能乱来,和谐共处。
什么是File协议
字面意思:本地文件传输协议
什么是File:
file协议主要用于访问本地计算机中的文件,好比通过Windows的资源管理器中打开文件或者通过右键单击‘打开’一样。
使用格式
文件URI的形式为
file:// host / path
host是可以在其上访问路径的系统的标准域名
path是格式为directory / directory /…/ name的分层目录路径。
如果省略host
,则将其视为“ localhost ”
,即从其解释URL的计算机。 请注意,省略主机时,不会省略斜杠(尽管“ file:///foo.txt ”
有效,而“ file://foo.txt ”
无效,尽管某些解释器设法处理后者)。
如何使用:
file协议的基本格式如下:
file:///文件路径
比如需要打开E盘下txt目录中的index.txt,那么在资源管理器或者浏览器地址栏中输入:file:///E:/txt/index.txt
。用file:///+文件地址,其实等价于文件的地址。即:
file:///C:/Users/www
等价于:
C:/Users/www
多少个斜线?
URI中为什么本地文件file后面跟三个斜杠?
URI的结构为:
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
如果有host,前面需要加//,因此对于http或https等网络地址来说会写成:
https://blog.csdn.net/lishanleilixin/article/category/7191777
这样看上去很自然。如果是文件的话,文件没有host,所以中间的host部分就不要了,就变成了:
file:///lishanleilixin/article/category/7191777
因为如果没有host的话,第一个[]的内容就不存在了,这种同意的写法有一个标准叫CURIE。
文件后的//, //表示主机名或字面值localhost
将跟随 ,尽管该部分可以完全省略,也可以包含空的主机名。主机和路径之间的单斜杠表示URI的本地路径部分的开始,并且必须存在。因此,有效的文件URI必须以file:/path
, file:///path
或file://hostname/path
。
file://path (即两个斜杠,不带主机名)不正确,但经常使用。
在目录和子目录的分层系统中, 路径分隔的目录名中的进一步斜杠。 在这种用法中,斜线是一种通用的,独立于系统的方式来分隔各部分,并且在特定的主机系统中,它可以在任何路径名中(例如在Unix系统中)使用。
浏览器通过file://访问文件和http://访问文件的区别
file协议用于访问本地计算机中的文件,好比通过资源管理器中打开文件一样,需要主要的是它是针对本地的,即file协议是访问你本机的文件资源。
http访问本地的html文件,相当于将本机作为了一台http服务器,然后通过localhost访问的是你自己电脑上的本地服务器,再通过http服务器去访问你本机的文件资源。
再简单点就是file只是简单请求了本地文件,将其作为一个服务器未解析的静态文件打开。而http是在本地搭建了一个服务器再通过服务器去动态解析拿到文件。
其他区别:
- file协议只能在本地访问
- 本地搭建http服务器开放端口后他人也可以通过http访问到你电脑中的文件,但是file协议做不到
- file协议对应有一个类似http的远程访问,就是ftp协议,即文件传输协议。
- file协议无法实现跨域
只要是本地都用file协议加载
file协议有点
快,极致的快,因为打开的文件就在本地,不像http和https等需要去远程服务器加载