【file】关于file协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【file】关于file协议相关的知识,希望对你有一定的参考价值。

参考技术A 中文释义:本地文件传输协议

 注解:File协议主要用于访问本地计算机中的文件,就如同在Windows资源管理器中打开文件一样。

应用:要使用File协议,基本的格式如下:file:///文件路径,比如要打开D盘images文件夹中的 pic.gif 文件,那么可以在资源管理器或IE地址栏中键入: file:///D:/images/pic.gif    然后回车。

UNC(Universal Naming Convention)

为了迎合网络化的趋势, Windows的地址风格(C:\ABC\def\ghi及\\计算机名\文件夹\文件) 向网络地址风格作了一次兼容变换:

://后面是机器的网络地址(IP地址)

/后面是文件夹(目录)和文件名

整体形如:

file://机器的IP地址/目录/文件

对于本地机器,机器的IP地址变成127.0.0.1或localhost或干脆什么也不写。

对于本地机器,根目录下的目录是Windows下的盘符,如“C:”、“D:”等。

file://127.0.0.1/C:/       本地C盘

file://localhost/D:/        本地D盘

file:///E:/                       本地E盘

需要注意的是,最后面的/是必不可少的,且file协议,通常只能在Windows Explorer和Micosoft IE中使用!

UNC(Universal Naming Convention):通用命名规则,也称通用命名规范、通用命名约定。

 UNC为网络(主要指局域网)上资源的完整Windows名称。

 格式:\\servername\sharename,其中servername是服务器名,sharename是共享资源的名称。

 目录或文件的UNC名称可以包括共享名称下的目录路径,格式为: \\servername\sharename\directory\filename 。

 首先创建文件夹,右键共享,高级共享。在以上选项可选时依次执行。

 访问该文件夹,在同网络中,输入\\ + 对方的ip或+对方的主机名即可访问对方共享的文件夹

共享文件的功能基于445号端口,如果在\\+主机名的形式访问,还需要Netbios-ns137 、138以及TCP139端口。

 关闭139端口的方法:“网络连接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT(NetBIOS over TCP/IP)

 关闭445端口的方法:防火墙阻塞445端口或者禁用server服务都可以。

定义:一系列以编号排定的文件

用途:收集有关互联网相关信息

所有关于Internet的正式标准都以RFC(Request for Comment)文档出版。另外,大量的RFC并不是正式的标准,出版的目的只是为了提供信息。

RFC的篇幅从1页到2 0 0页不等,每一项都用一个数字来标识,如RFC 1122,数字越大说明RFC的内容越新。

FIle协议与Http协议及区别

https://www.cnblogs.com/lishanlei/p/9327646.html

The "file" URI Scheme

https://tools.ietf.org/html/rfc8089

file URI scheme

https://en.wikipedia.org/wiki/File_URI_scheme

file 协议导致的跨域问题以及解决方案

https://cloud.tencent.com/developer/article/1534714

file协议

https://da7uran0ir.github.io/2018/07/24/php%E6%94%AF%E6%8C%81%E7%9A%84%E5%8D%8F%E8%AE%AE/file%E5%8D%8F%E8%AE%AE

URL 缩短:重定向到 'file://' 目标(文件协议目标)

【中文标题】URL 缩短:重定向到 \'file://\' 目标(文件协议目标)【英文标题】:URL shortening: redirection to a 'file://' target (file protocol target)URL 缩短:重定向到 'file://' 目标(文件协议目标) 【发布时间】:2010-12-27 12:32:49 【问题描述】:

我正在尝试一个 URL 缩短器的简单实现,例如 tinyurl.com 或 bit.ly。目前我在我的 servlet 中做了一个response.sendRedirect(targetURL) - 它适用于 http/ftp 目标 URL。

但是,我在重定向到 file:///c:/temp 等目标时遇到问题(c:\temp 当然是在本地/客户端系统上)。

在 Firefox 地址栏输入 file:///c:/temp 有效,但来自服务器的重定向似乎无济于事。

出于某种安全原因,这是不可能的吗?还是我在这里做错了什么?

提前致谢!

【问题讨论】:

P.S. Raj 很高兴接受我的第二个答案,因为它更好地解释了事情。我之所以这么问,是因为您接受的答案过去常常贴在顶部,以便为其他读者提供帮助。因此,在这种情况下,它不会提供任何帮助。这个答案是为了娱乐。谢谢。 【参考方案1】:

这对于某些安全性来说是不可能的吗 原因?还是我做错了什么 在这里?

是的。

【讨论】:

【参考方案2】:

不想通过解释事情来破坏我第一个答案的美感。因此,我决定,应该在这里进行解释。

好吧,首先,您怎么能想到访问您客户的本地驱动器。它确实是一个安全问题。就像那样,您无权访问客户的文件系统。

您似乎没有这样做的要求。如果出于某种奇怪的原因必须这样做,那么您可以考虑一个签名的小程序或其他东西,我相信。

就您的困惑而言,它正在您的 Firefox 上运行。这是因为您可以访问自己的机器,并且 URL 对 firefox 来说是可以理解的。但是,在 servlet 中,您不能这样做。阅读sendRedirect() 的文档,上面写着

如果位置是相对的,没有 前导 '/' 容器解释 它相对于当前请求 URI。如果位置是相对的 容器解释的前导“/” 它相对于 servlet 容器根目录。

【讨论】:

谢谢 - 这是有道理的。但是,在 IE 中,重定向适用于“某些”目标。重定向到本地磁盘“C:\foo.doc”似乎不起作用,但“D:\foo.doc”可以 - 其中“D”是网络驱动器。 D 是网络驱动器,它已安装。确实,这会起作用,为什么它不应该。不确定使用 IE 访问 C 驱动器的问题。顺便说一句,你收到什么信息? 你确定,你的C 驱动器中有 foo.doc 吗?如果是,那么肯定有一些关于 Windows 主分区或 NTFS 分区或类似的东西。不确定,不能肯定地说。从来没有遇到过这个,因为我没有 Windows。 ;)

以上是关于【file】关于file协议的主要内容,如果未能解决你的问题,请参考以下文章

16.关于 file API 和 formdata

关于变量类型FILE简要说明C

关于变量类型FILE简要说明C

关于Android Assets读取文件为File对象

关于File 文件操作

Java 关于File使用