Advertisement

HTTP权威指南------URL与资源

阅读量:

目录

URL标准格式

URL快捷方式

动扩展URL

字符

方案详解


web基础中介绍了URI、URL与URN;

URI是一类更通用的资源标识符,URL是它的一个子集;

URI是一个通用的概念,它主要由URL与URN组成;

URL是通过表示位置来标识资源的另一方面, 而URN则以名称作为依据来进行资源识别

URL标准格式

例如以下链接:如果有人想访问该URL,则该URL通常由三个组成部分组成。

该方案指示客户端如何通过指定协议获取所需资源;URL格式并不局限于HTTP协议, 例如FTP、RTSP以及电子邮件相关的技术也是允许的

第二部分:地址,服务器的地址,可以是域名也可以是IP地址

第三部分:资源路径,路径说明了请求的是服务器上面的那部分资源

复制代码
 # 方案;需注意,协议是不区分大小写的

    
 http://www.baidu.com
    
 HTTP://www.baidu.com
    
  
    
 # 主机与端口;主机指向服务器,端口指向服务
    
 http://www.baidu.com:80
    
  
    
 # 用户名与密码;
    
 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.baidu.com/Images/index.html
    
  
    
 # 参数;这个例子有两个路径段,hammers和index.html。hammers路径段参数有sale,其值为false;index.html段有参数graphics,其值为true。
    
 http://www.baidu.com/hammers;sale=false/index.html;graphics=true
    
  
    
 # 查询字符串;查看编号为12731的字段内容是否存在
    
 http://www.baidu.com/inventory-check.cgi?item=12731
    
  
    
 # 片段;片段组件用来表示一个资源内部的片段,比如URL指向HTML文档中一个特定的图片或者小节
    
 http://www.baidu.com/tools.html#drills
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-16/dy3IkUGD0s1K2YHwqOcapmR7SrjF.png)
  1. 查询组件包括URL中位于问号?后的键值对集合(key=value形式),这些键值对之间通过&分隔符连接起来,并与参数组件类似地存在特殊字符编码的问题。
  2. 主机既可以指定为域名也可以指定为IP地址。
  3. 端口是可选配置项,在未设置该字段时将默认采用对应协议的标准端口。

URL快捷方式

绝对URL:URL中包含访问资源所需的全部信息;如:http://www.163.com/new.html

基础URL:针对同一个网站来讲,其相同的url部分,如:http://www.163.com

相对地址(Relative URL):删除基本路径后剩下的路径即为相对地址;例如:"new.html"将完整呈现为"http://www.163.com/new.html"。相对地址仅包含一个地址的一部分或较小片段,在处理该地址的应用程序必须具备将该地址转换为绝对地址的能力。

实现相对url转换为绝对url的第一步就是找到基础url,怎么找基础url?

答:

  1. 在资源中明确指定时,在某些情况下会特意提供基础 URL 路径。例如,在 HTML 文档中可能包含一个定义基础 URL 的 HTML 标记 元素。
  2. 包装资源时的基础 URL 路径,在无法明确找到的情况下,则采用所属资源的 URL 作为基址路径。
  3. 没有明确基址的情况:仅限于存在相对 URL 地址,并且有时可能仅为不完整或损坏的 URL 地址。

动扩展URL

自动化处理:The automatic extension feature is commonly implemented in most browsers. This functionality ensures that users can easily access and share shortened URLs, enhancing their online experience.

自动扩展特URL特性

主机名扩展:如果有任何小提示或线索,网站浏览器通常能够自动完成这一任务。例如,在输入baidu时,系统会自动生成www.baidu.com;然而这种方法有时会导致其他http服务出现相关问题(例如代理服务器),后续内容将对此进行详细说明

历史扩展:将以前用户的访问记录中的URL存储起来,并每当一个新URL被输入时就将其与存储的历史记录中的所有前缀进行配对处理,在配对成功的情况下提供完整的选项供用户进一步选择

字符

URL作为互联网资源的标识必须具备通用性和完整性其含义在于一旦确定一个URL无论被如何复制粘贴其携带的信息不应发生丢失!然而由于URL采用了ASCII编码方案而无法直接支持中文字符(实际上这并非仅限于中文问题因为ASCII根本无法覆盖全部字符集合这才是根本性缺陷)。因此为了实现非ASCII字符的支持不得不引入其他编码机制这种机制本质上是一种转义方式即通过特定编码来表示不可直接显示的特殊符号(例如在URL中出现类似%7E这样的转义序列它代表的是~这个特殊符号)。此外还有一些保留字符类似于C语言中的关键字这些特殊符号在特定条件下具有特殊的含义为了避免混淆应在非保留场合外进行显式编码。以下列举了这些需特别处理的字符:

为什么需要转义机制?

  • 1. 某些协议采用的传输方式会剥离特定字符。
  • 2. 出于提高可读性的考虑,在确保URL易读的前提下可能会引入一些语义化符号。
  • 3. 为了容纳那些非安全符号到URL中, URL必须完整无缺.
  • 为了避免那些不具意义或敏感的信息被剥离, 在传输过程中, URL需将不可靠或危险的符号通过编码转义的方式转换为安全符号.

方案详解

全部评论 (0)

还没有任何评论哟~