欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTTP之URL与资源

程序员文章站 2024-02-29 08:54:40
...

1. URL,URN, URI的区别

URI是一类更通用的资源标识符,URL实际上是它的一个子集。URI是一个通用的概念,由两个主要的子集URL和URN构成,URL是通过描述资源的位置来标识资源的,而URN则是通过名字来识别资源的与它们当前所处位置无关。

对于URN, 得从URL的缺点说起:

如果资源被移走了,URL也就不再有效了。那时,它就无法对对象进行定位了。如果有了对象的准确名称,则不论其位于何处都可以找到这个对象,那该多完美啊。就像人一样,只要给定了资源的名称和其他一些情况,无论资源移到何处,你都能够追踪到它。为了应对这个问题,因特网工程任务组(InternetEngineeringTaskForce,IETF)已经对一种名为统一资源名(uniformresourcename,URN)的新标准做了一段时间的研究了。无论对象搬移到什么地方(在一个Web服务器内或是在不同的Web服务器间),URN都能为对象提供一个稳定的名称。

HTTP之URL与资源

2. URL各个组件含义及其示例

#方案
方案组件必须以一个字母符号开始,由第一个“:”符号将其与URL的其余部分分隔开来。
方案名是大小写无关的,因此URL“http://www.joes-hardware.com”和“HTTP://www.joes-hardware.com”是等价的。

#主机与端口
http://www.joes-hardware.com:80/index.html
http://161.58.228.45:80/index.html

#用户名和密码
ftp://aaa@qq.com/pub/gnu
ftp://anonymous:aaa@qq.com/pub/gnu
http://joe:aaa@qq.com/sales_info.txt

#路径
http://www.joes-hardware.com:80/seasonal/index-fall.html
URL中的路径为/seasonal/index-fall.html,

#参数
HTTPURL的路径组件可以分成若干路径段。每段都可以有自己的参数。比如:
http://www.joes-hardware.com/hammers;sale=false/index.html;
graphics=true这个例子就有两个路径段,hammers和index.html。
hammers路径段有参数sale,其值为false。index.html段有参数

#查询字符串
很多资源,比如数据库服务,都是可以通过提问题或进行查询来缩小所请求资源类型范围的。
http://www.joes-hardware.com/inventory-check.cgi?item=12731这个URL的大部分都与我们见过的其他URL类似。
只有问号(?)右边的内容是新出现的。这部分被称为查询(query)组件。
URL的查询组件和标识网关资源的URL路径组件一起被发送给网关资源。

#片段
对一个带有章节的大型文本文档来说,资源的URL会指向整个文本文档,
但理想的情况是,能够指定资源中的那些章节。为了引用部分资源或资源的一个片段,URL支持使用片段(frag)组件来表示一个资源内部的片段。
比如,URL可以指向HTML文档中一个特定的图片或小节。片段挂在URL的右手边,最前面有一个字符“#”。
http://www.joes-hardware.com/tools.html#drills
在这个例子中,片段drills引用了Joe的五金商店Web服务器上页面/tools.html中的一个部分。这部分的名字叫做drills。

HTTP之URL与资源

3.URL快捷方式?
相对URL是不完整的。要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个,被称为其基础(base)的URL进行解析。

 HTTP之URL与资源

 

相关标签: URL URL组件