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都能为对象提供一个稳定的名称。
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。
3.URL快捷方式?
相对URL是不完整的。要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个,被称为其基础(base)的URL进行解析。
推荐阅读
-
HTTP之URL与资源
-
Android开发之资源目录assets与res/raw的区别分析
-
iOS开发之获取系统相册中的图片与视频教程(内带url转换)
-
php之curl实现http与https请求的方法_PHP
-
iOS音频开发之资源(AVAsset)与元数据,解决获取资源属性问题(三)
-
php之curl实现http与https请求的方法,phpcurlhttps请求_PHP教程
-
Android开发之资源目录assets与res/raw的区别分析
-
iOS开发之获取系统相册中的图片与视频教程(内带url转换)
-
基于字符集、字符编码与HTTP编码解码之万象详解
-
基于字符集、字符编码与HTTP编码解码之万象详解