http协议和file协议的区别
1、http协议和file协议:https://blog.csdn.net/m0_46278037/article/details/113881347
URL的一般格式: <协议>://<主机>:<端口>/<路径>
- File协议:
FIle协议也叫 本地文件传输协议 ,主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件或者通过右键单击‘打开’一样。即 File协议是访问你本机的文件资源。
要使用File协议,基本的格式如下:file:///文件路径。
例如:file:///D:/mywebproject/bigwatermelon/index.html
- HTTP协议:
http协议是HyperText Transfer Protocol,即超文本传送协议的缩写。是用来从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议来传输数据。http协议工作于客户端-服务器架构上,浏览器作为http客户端通过url向http服务器端发送请求,服务器接收到请求后,向客户端发送请求
http://127.0.0.1:5500/bigwatermelon/index.html
2、浏览器通过file:///访问文件和http://访问文件的区别: https://segmentfault.com/q/1010000006554881/a-1020000006557772
【本地直接打开 html文件 就是 通过file://协议打开的】
- file协议只能在本地访问,file无法实现跨域,file协议对应有一个类似http的远程访问,就是ftp协议,即文件传输协议。本地搭建http服务器开放端口后他人也可以通过http访问到你电脑中的文件,但是file协议做不到。
【反应到web上就是:其实就是跨域问题,其它的没什么区别。在浏览器上运行的程序和http协议是一样的】 - http访问本地的html文件,相当于将本机作为了一台http服务器,然后通过主机访问的是你自己电脑上的本地服务器,再通过http服务器去访问你本机的文件资源。断网就打不开了。
- file只是简单请求了本地文件,将其作为一个服务器未解析的静态文件打开,断网也可以打开。而http是在本地搭建了一个服务器再通过服务器去动态解析拿到文件。
总结:
- 在web静态文件的解析上,无论是 file协议 还是 http协议,浏览器对它的解析都是一样的。
- 有很多壳技术,就是通过 file协议 实现的 桌面应用,如electron、混合app。一般的壳上也都是实现了可跨域功能的,所以和http协议访问都是一样的。
谷歌浏览器也提供了file文件跨域请求的配置,参考https://www.cnblogs.com/huangshuqiang/p/13667860.html。
【壳子和web程序都是在本地的应用,也只能通过file协议才能访问html文件】
http协议细讲:https://www.cnblogs.com/suizhikuo/p/8493362.html
一、HTTP 请求报文
1、HTTP 请求报文由4部分组成(有内容的就3部分):请求行 + 请求头 + 空行 + 请求体 参考:https://baijiahao.baidu.com/s?id=1632338894380251715&wfr=spider&for=pc 或 https://www.jianshu.com/p/eb3e5ec98a66
2、请求行:包含三个信息,请求方法 + 请求url + http协议版本。如下 实际的请求行
POST /api1/hzeg-biz-service/unite/005007 HTTP/1.1
3、请求头:包含的字段信息比较多,如下介绍几个字段 (好像请求头的字段是可以添加,没有试过。下面只讲一下常用的)
a、host 请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
b、Accept 客户端可识别的内容类型列表,用于指定客户端接收那些类型的信息
c、User-Agent 发送请求的浏览器类型、操作系统等信息【这个值和js中 navigator.userAgent 的值是一样的】
4、请求体:post请求才有的。就是请求参数,这里就不介绍了。
二、HTTP 响应报文
1、HTTP 响应报文和请求报文一样也是由4部分组成:响应行 + 响应头 + 空行 + 响应体
2、响应行:包含3个信息,http协议版本 + 状态码 + 状态文字描述。如下
HTTP/1.1 200 OK
3、响应头:我们一般都不去使用,这里不讲
4、响应体:接口返回的信息。这个很常用,就不用讲了
扩展:服务器 重定向url:https://www.cnblogs.com/tongongV/p/10944414.html