HTTP之URL与资源

1. URL,URN, URI的区别

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

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

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

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://anonymous@ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu
http://joe:joespasswd@www.joes-hardware.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。

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值