URL与资源

Posted 空方块

tags:

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

1.概念

#1:统一资源标识符(URI ,Uniform Resource Identifier):世界范围内唯一标识并定位信息资源。

#2:统一资源定位符(URL,Uniform Resource Locator):描述一台特定服务器上某资源的特定位置。URI的子集。

#3:统一资源名(URN,Uniform Resource Name):作为特定内容的唯一名称使用,URI的子集。

2.URL语法

大多数的URL语法都建立在这个由9部分构成的通用格式上:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
通用URL组件:
组件描述默认值
方案(scheme)访问服务器以获取资源时要使用的协议
用户(user)某些方案访问资源时需要用户名匿名
密码(password)用户名后面可能要包含的密码<E-mail>地址
主机(host)资源宿主服务器的主机名或点分IP地址
端口(port)资源宿主服务器正在监听的端口。默认80方案特有
路径(path)服务器上资源的本地名
参数(params)某些方案会用这个组件来指定输入参数。参数为名/值对。使用;分割
查询(query)某些方案会用这个组件传递参数以激活应用程序(比如数据库、公告板、搜索引擎以及其他因特网网关)
片段(frag)一小片或一部分资源的名字。引用对象时,不会将frag字段传送给服务器,这个字段是在客户端内部使用。

2.1.方案----协议

#1:规定如何访问指定资源的主要标识符,告诉负责解析URL的应用程序应该使用什么协议。

#2:方案名大小写无关,因此"http://www.dawn.com"和"HTTP://www.dawn.com"是等价的。

2.2.用户名和密码

很多服务器都要求输入用户名和密码才会允许用户访问数据。FTP服务器就是一个常见的实例。例子:

ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous@ftp.prep.ai.mit.edu/pub/gnu
 
 

ftp://anonymous:my_password@ftp.prep.ai.mit.edu/pub/gnu
http://joe:joespassword@www.joes-hardware.com/sales_info.txt

 #1:第一个例子没有用户名和密码。如果某应用程序使用的URL方案要求输入用户名和密码,比如FTP,但是用户没有提供,通常会插入一个默认的用户名和密码(FTP URL,没有指定用户名和密码,会以anonymous(匿名用户)作为用户名,IE会以IEUser作为密码)。 

2.3.主机和端口

#1:主机组件标识了因特网能够访问资源的宿主机器。可以使用域名或者IP来表示主机名。

#2:端口组件标识了服务器正在监听的网络端口。对于下层使用TCP协议的HTTP来说,默认端口80。

2.4.路径

路径组件说明资源位于服务器的什么地方。

http://www.joes-hardware.com:80/seasonal/index-fail.html
这个例子的路径为/seasonal/index-fail.html

2.5.参数

有些方案,单靠主机名和路径是不足的,需要更多的信息才能工作。负责解析URL的应用程序需要这些协议参数来访问资源。否则服务器不提供服务或者提供错误服务。

ftp://prep.ai.mit.edu/pub/gnu;type=d
http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
例子1:有一个参数type=d,参数名type,值为d。

例子2:有俩个路径段,hammers和index.html。hammers段有参数sale值为false,index.html有参数graphisc值为true。

2.6.查询字符串

很多资源,都是可以通过提问或进行查询来缩小所请求资源类型范围的。

http://www.joes-hardware.com/inventory-check.cgi?item=12731&color=blue
例子中查询组件有俩个名/值对:item=12731&color=blue

2.7.片段

有些资源类型,除了资源级外,还可以做进一步的划分。为了引用部分资源或资源的一个片段,URL支持使用片段组件来表示一个资源内部的片段。

http://www.joes-hardware.com/tools.html#drills
例子中,片段drills引用了/tools.html的一个部分,这个部分叫drills。

HTTP服务器稚嫩刚处理整个对象(资源级),而不是对象的片段,因此客户端不能将片段传送给服务器,只是内部使用。

3.URL快捷方式

URL的俩种方式:绝对和相对。

3.1.相对URL

相对URL是一种便捷缩略记法。要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个,被称为基础的URL进行解析。

<a href="./hammers.html">hammers</a>
这是http://www.dawn.com/tools.html的HTML文档的一部分。

相对URL"./hammers.html"解析为"http://www.dawn.com/hammers.html"。


3.2.自动扩展URL

#1:主机名扩展

浏览器通常可以在没有帮助的情况下,将主机名扩展为完整的主机名,比如yahoo会自动构建为www.yahoo.com。如果找不到与yahoo匹配的站点,有些浏览器会在放弃之前尝试几种扩展方式。浏览器通过简单的技巧来节省你的时间,减少找不到的可能。

#2:历史扩展:

浏览器将以前用户访问过的URL历史存储起来,当输入的URL与历史记录的前缀匹配,就会提供一些完整的选项供你选择。如输入http://joes-,浏览器就可能建议使用http://www.joes-hardware.com的URL了。

4.URL字符

4.1.URL字符集

使用US-ASCII字符集,US-ASCII使用7位二进制码来表示英文打字机提供的大多数按键和少数用于文本格式和硬件通知的不可打印控制字符。

URL的设计者将转义序列集成了进去。通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符值或数据进行编码了,实现可移植性和完整性。

4.2.编码机制

编码机制通过"转义"来表示不安全字符。转义表示法包含一个百分号(%),后面跟俩个表示字符ASCII的十六进制数。

例子:

字符ASCII码示例URL
~126(0x7E)http://www.dawn.com/%7Ejoe
空格32(0x20)http://www.dawn.com/more%20tools.html
%37(0x25)http://www.dawn.com/100%25satisfaction.html

4.3.字符限制

保留及受限的字符:

字符保留/受限
%保留作为编码字符的转义标志
/保留作为路径组件中分隔路径段的定界符
.保留在路径组件中使用
..保留在路径组件中使用
#保留作为片段定界符使用
保留作为查询字符串定界符使用
;保留作为参数定界符使用
:保留作为方案,用户/口令,以及主机/端口组件的定界符使用
$ , +保留
@ & =在某些方案的上下文中有特殊的含义,保留
| \\ ^ ~ [ ] '各种传输的Agent代理
< > "不安全,这些字符在URL范围之外通常是有意义的,比如URL的定界
0x00 ~ 0x1F,0x7F受限,US-ASCII不可打印的区间内
>0x7F受限,不在US-ASCII字符集的7个二进制范围内

5.方案

方案描述
http超文本传输协议方案,没有用户名和密码。默认端口80.
基础格式:http://<host>:<port>/<path>;<params>?<query>#<frag>
https方案https与方案http是一对。唯一的区别是https使用了SSL(Secure Sockets Layer,端到端的加密机制),默认端口443。
基础格式:https://<host>:<port>/<path>;<params>?<query>#<frag>
mailtomailto URL指向E-mail地址。
基础格式:mailto:<RFC-822-addr-spec>
例子:mailto:joe@joes-hardware.com
ftp文件传输协议URL可以用于从FTP服务器上下载或向其上载文件,并获取FTP服务器上的目录结构内容的列表。
基础格式:ftp://<user>:<password>@<host>:<port>/<path>;<params>
rtsp,rtspuRTSP URL是可以通过实时流传输协议(Real Time Streaming Protocol)解析的音/视频媒体资源的标识符。
方案rtspu的u是表示使用udp协议来获取资源的。
基础格式:
rtsp://<user>:<password>@<host>:<port>/<path>
rtspu://<user>:<password>@<host>:<port>/<path>
file方案file表示一台指定主机上可直接访问的文件。如果省略了主机名,就默认为正在使用URL的本地主机。
基础格式:file://<host>/<path>
newsnews://<newsgroup>根据RFC 1036的定义,方案news用来访问一些特定的文章或新闻组。它有一个很独特的性质:news URL 自身包含的信息不足以对资源进行定位。新闻资源可以从多态服务器中获得,它们呗成为位置无关的,因为对它们的访问不依赖于任何一个资源服务器。
基础格式:
news://<newsgroup>
news://<news-atricle-id>
示例:
news:rec.arts.startrek
telnet用于访问交互式业务。
基础格式:
telnet://<user>:<password>@<host>:<port>/

以上是关于URL与资源的主要内容,如果未能解决你的问题,请参考以下文章

Docker拷贝宿主机与容器中的文件

简述IP地址、域名、URL地址的结构及其相互关系

docker宿主机卡顿,docker垃圾清理

VirtualBox 虚拟机内操作系统与宿主操作系统共享文件夹的方法

VirtualBox 虚拟机内操作系统与宿主操作系统共享文件夹的方法

Hyper-V虚拟机和宿主机内网外局域网互通配置