美文网首页
HTTP协议:URL与资源

HTTP协议:URL与资源

作者: wayyyy | 来源:发表于2017-10-28 19:18 被阅读0次

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

相关文章

  • HTTP协议:URL与资源

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

  • HTTP 协议总结

    一、HTTP 协议概念简述 HTTP 协议请求的是 Resource 资源;资源由 URL (统一资源定位符:Un...

  • http协议及nginx基础

    一、http协议补充 1.1 URL与URI URL:统一资源定位符(网址)URI:统一资源标识符(范围更广)im...

  • Linux运维-day46-综合架构-http协议补充及ngin

    一、http协议补充 1.1 URL与URI URL:统一资源定位符(网址)URI:统一资源标识符(范围更广) 1...

  • 前端跨域

    http协议 Resource,URL,Request,Response,Headers http 请求的是资源R...

  • 从url输入到页面展示发生了什么?

    基本概念 URL URL (Uniform resource locator)统一资源定位符,对应协议(http,...

  • HTTP常见概念整理

    基础TCP/IPTCP协议IP协议DNS协议URI与URL HTTP协议HTTP报文HTTP方法HTTP状态码 名...

  • Web基础

    TCP/IP通信传输流 各种协议与HTTP协议的关系 URI和URL的关系 URI标志一个资源,它是唯...

  • 从URL输入到页面展现

    一、在浏览器输入URL(统一资源定位符,用于定位互联网上的资源) URL对应有HTTP协议、https协议、(ht...

  • 任务一主线

    从URL输入到页面展现 URL:统一资源定位符,用于定位互联网上的资源对应协议、端口号、信息协议:http(找到网...

网友评论

      本文标题:HTTP协议:URL与资源

      本文链接:https://www.haomeiwen.com/subject/viuspxtx.html