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是在本地搭建了一个服务器再通过服务器去动态解析拿到文件。

 

总结:

  1. 在web静态文件的解析上,无论是 file协议 还是 http协议,浏览器对它的解析都是一样的
  2. 有很多壳技术,就是通过 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

 

posted @ 2018-10-12 14:08  吴飞ff  阅读(1572)  评论(0编辑  收藏  举报