HTTP协议:URL与资源

URI (Uniform Resource Identifier 统一资源标识符)是一类通用的资源标识符。它有2个子集:

  • URL (Uniform Resource Location 统一资源定位符):通过描述资源的位置来表示资源的。
  • URN (Uniform Resource Name 统一资源名称):通过名字来识别资源。
URI.png

HTTP规范将更通用的概念 URI 作为其资源标识符。但实际上,HTTP应用程序处理的只是URI的子集URL。

URL

URL的第一部分是URL方案,第二部分是服务器的位置,第三部分是资源路径。

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

URL也可以通过HTTP之外的其他协议来访问资源。它们可以指向因特网上的任意资源或者个人的E-mail账户。

组件 用户 确认值
方案 访问服务器获取资源时使用的协议
用户 centered 匿名
密码 are neat <E-mail 地址>
主机 资源宿主服务器的主机名或IP地址
端口 资源宿主服务器正在监听的端口号 每个方案特有
路径 服务器上资源的本地名
参数
查询 are neat
片段 are neat
  • 方案-- 使用什么协议
    方案负责告诉负责解析URL的应用程序应该使用什么协议。方案名是大小写无关的,HTTP://www.baidu.comhttp://www.baidu.com是等价的。
  • 主机与端口
    主机组件标识了因特网上能够访问资源的宿主机器
  • 用户名和密码
    很多服务器要求输入用户名和密码才会允许用户访问数据,特别是FTP服务器。
    ftp::ftp.prep.ai.mite.edu/pub/gnu
    ftp::anonymous@ftp.prep.ai.mite.edu/pub/gnu
    ftp::anonymous:my_passwd@ftp.prep.ai.mite.edu/pub/gnu
    
    第一个例子没有用户名和密码,只有标准的方案,主机和路径。如果某些应用程序使用URL方案要求输入用户名和密码。比如FTP,但用户没有提供,它通常会插入一个默认的用户名和密码。
    第二个例子显示指定了一个anonymous用户名。
    第三个例子中,指定用户名和密码,两者之间由字符":"分隔。
  • 路径
    URL路径说明了资源位于服务器的什么地方。
  • 参数
    对于很多方案来说,只有简单的路径仍然不够。很多协议还需要其他更多的信息才能工作。比如,FTP协议有2种传输模式,二进制和文本形式。你肯定不会希望用文本形式传送图片。所以URL中有一个参数组件,这个组件就是URL中的名值对列表。由字符";"将其与URL的其余部分分隔开来
    ftp://prpe.ai.mit.edu/pub/gnu;type=d
    
    HTTP URL的路径组件可以分为若干路径段,每段都可以有自己的参数。
    http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true
    
  • 查询字符串
    http://www.joes-hardare.com/inventory-check.cgi?item=12731
    
  • 片段
    有些资源类型,比如HTML,除了资源以外,还可以做进一步划分。比如一个带有章节的大型文本,资源的URL可以指向整个文本外,还可以指向资源中的哪些章节。
    http://www.xxxx#xxx
    
    服务器通常只能处理整个对象,而不是对象的片段。浏览器从服务端获得整个资源后,会根据片段来显示你感兴趣的那部分资源。
URL快捷方式
相对URL

相对URL是不完整的。要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个,被称为基础的URL进行解析。

<A href="./hamers.html">hamers </A>

这个URL看起来是不完整的,但实际上是一个合法的URL。可以相对与它所在的文档的URL(基础URL)对其进行解释。

  • 解析相对引用
解析相对引用
自动扩展URL

浏览器会在用户提交URL之后,会尝试自动扩展URL。这种扩展有2种方式:

  • 主机名扩展
    比如在地址栏中输入yahoo,浏览器会自动在主机名中插入www和.com。
  • 历史扩展
    浏览器将用户访问过的URL历史存储起来,当你开始输入URL时,它们可以将你输入URL与历史记录中的URL的前缀进行匹配。
URN

URL并不完美,它们表示的是实际的地址,而不是准确的名字。这种方案的缺点就是,如果资源被移走了,URL也就不再有效了。那时,它就无法对对象进行定位。

为了应对这个问题,提出了统一资源名(unifrom resource name, URN)的概念。无论对象被搬移到了什么地方(在一个Web服务器内或是不同的Web服务器),URN都能为对象提供一个稳定的名称。

永久统一资源定位符(persistent uniform resource locators, PURL)是用URL来实现URN思想的一个例子,其基本做法是在搜索资源的过程中引入一个中间层,通过一个中间资源定位符服务器对资源的实际URL进行登记和追踪。客户端可以向定位符请求一个永久URL,定位符可以以一个资源作为相应,将客户端重定向到资源当前实际URL上去。

参考资料
《HTTP权威指南》[美] David Gourley,Brian Totty,Marjorie Sayer,Sailu Reddy,Ansbu Aggarwal

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容