URL是因特网资源的标准化名称,该字符串指向一条电子信息片段,定义服务端应用程序在什么位置以及客户端要如何与其交互

一条完整的URL由多个片段组成。

通用URL组件

方案 以哪种协议访问服务器
用户 某些方案访问资源时需要用户名
密码 用户名之后可能需要密码
主机 资源宿主服务器的主机名或IP地址
端口 资源宿主服务器正在监听的端口号
路径 服务器上资源的本地名,由一个斜杠(/)将其与前面的URL组件分开。路径组件的语法是服务器和方案有关
参数 某些方案会用参数组件来指定输入参数。参数由名/值对组成且可以有一个或多个(多个参数用;分开)
查询 用字符?将其与其他组件分开。某些方案用于这个组件传递参数以激活应用程序,比如查询数据库
片段 一小片或一部分资源的名字。引用对象时,不会将frag字段传递给服务器,这个字段是在客户端内部使用的,通过#与其他组件分开

相对URL

  URL有两种,一种是刚才见到的绝对URL(包含访问资源所需的全部信息),另外一种是相对URL。

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

  

转换处理的第一步就是找到基础的URL,基础URL是作为相对URL的参考点使用的,可以来自以下几个地方。

  1:在资源中查询:有些资源会显式的指定基础URL,比如在HTML里定义<base>标签

  2:封装资源的基础URL:如果在没有显式指定基础URL的资源中发现了一个相对URL,可以将他所属资源的URL作为基础。

  3:没有基础URL:某些情况下,没有基础URL,这通常意味着你又一个绝对URL;但也有可能只是一个损坏了的不完整的URL。

解析相对引用

  了解了URL的组件和语法之后,就可以使用以下方案算法将相对URL转换成绝对URL

  

    

字符集和编码

  由于URL需要统一命名因特网上的所有资源,也就意味着要通过不同的协议来传送这些资源。这些协议在传送资源时使用了不同的机制。不同的机制会有不同的保留字符作为关键字。所以URL在作为资源传送的纽带,只能使用一些相对较小、通用的安全字符组成能够各种协议所能识别的URL,URL不仅能被所有传输协议所使用外,还希望URL是人类可阅读的。因此,即使不可见,不可打印的字符能够程序传送,也不能在URL中使用。另外URL还必须是完整的。URL不仅使用通用的安全字符组成URL表达式,还会使用二进制数据或者字符。因此需要使用一种转义机制。能够将不安全的字符编码为安全字符,再进行传输。

  总结:URL的组成需要满足三个条件

      一:具有通用,能被各种协议使用

      二:具有可读性

      三:安全性,字符编码

字符集

  URL默认使用US-ASCII作为字符集。US-ASCII使用7位二进制码来表示英文打字机提供的大多数按键和少数用于文本格式和硬件通知的不可打印控制字符

字符编制

  通过使用“转义”表示法来表示不安全字符,转义包含一个百分号%,后面跟两个表示字符ASCII的十六进制数。

 编码示例

字符 ASCII码 示例URL
~ 126(0X7E) http://www.joes-hardware.com/%7Ejoe

限制使用的一些字符

  由于有的字符在使用中有特殊含义被作为保留字使用且有的字符不在定义的US-ASCII可打印字符集中,除此以外还有字符会与某些因特网网关和协议产生混淆。所以在定义URL时应避免使用这些字符。

HTTP学习之URL与资源的更多相关文章

  1. 《HTTP权威指南》学习笔记——URL和资源

    URL与资源 URL是互联网资源的标准化名称 1.浏览互联网资源 URL是浏览器寻找信息时所需的资源位置 URI是一类更通用的资源标识符,URL是它的子集. URI的两个子集:URL和URN URL提 ...

  2. HTTP学习笔记——URL与资源

    什么是URL? 所有的东西都有一个标准化的东西,公交有线路号,飞机有航班号,个人有身份证号,你坐出租车,告诉司机师傅我要到石牌华师,他就能明白你的意思了.URL就是因特网资源的标准化名称.URL指向一 ...

  3. http协议进阶(二)URL与资源

    一.URL的语法  URL是互联网资源的标准化名称 URL提供了一种定位互联网上任意资源的手段,但这些资源要通过不同方案(协议:比如http.ftp.smtp)来访问,因此URL语法会略有差异 大部分 ...

  4. HTTP权威指南笔记-2.URL与资源

    2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...

  5. URL与资源

    资源推荐 1.HTTP权威指南. <HTTP权威指南>由古尔利所著,<HTTP权威指南>详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程 ...

  6. Springboot学习02-webjars和静态资源映射规则

    Springboot学习01-webjars和静态资源映射规则 前言 1-以前我们在IDEA中创建一个项目,添加web依赖包,我们现在是一个web应用,应该在man目录下面有一个webapp文件夹,将 ...

  7. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

  8. 『NiFi 学习之路』资源 —— 资料汇总

    一.概述 由于 NiFi 是一个比较新的开源项目,国内的相关资料少之又少. 加之,大家都知道,国内的那么些个教程,原创都只是停留在初级使用阶段,没有更多深入的介绍. 再者,其余的文章不是东抄抄就是西抄 ...

  9. 学习WWDC的好资源!

    学习WWDC的好资源. 大家都知道.要看Apple每年一度的WWDC,仅仅要到它的Developer站点去就能够了.那里有每年的研讨会视频,并且还能够下载每一个视频的SD或HD视频文件,以及相关的演示 ...

随机推荐

  1. 如何使用Adobe Reader复制PDF文档上的文字

    PDF文档大家常用,但是有没有简单的方法能够提取PDF文档上的文字,然后使用呢?除了将PDF转换成Word,这里介绍一种更为简单实用的方法复制PDF文本文字,Adobe Reader是大家都常用的PD ...

  2. SchemaSpy

    SchemaSpy https://github.com/schemaspy/schemaspy/releases https://sourceforge.net/projects/schemaspy ...

  3. 智能指针之auto_ptr和scoped_ptr

    部分参考地址https://blog.csdn.net/yanglingwell/article/details/56011576 auto_ptr是c++标准库里的智能指针,但是具有以下几个明显的缺 ...

  4. SpringMVC 如何定义类型转换器

    举例说明, 将一个字符串转换成的 User 类型. 例如将字符串 1-zcd-1234-zcd@163.com-1999/12/12  转换成User 类型. 一.实体类 public class U ...

  5. pycharm 设置字体大写和显示代码行号

    打开pycharm,我们看到左边是没有行号显示的. 在工具栏中点击扳手的标志,打开.       找到 Ide-setting  ——>Editor ——>Apperance ——> ...

  6. ADF系列-1.EO的各个属性初探

    ADF中的EO可以看做关系型数据库中表的java展现形式. 1.Type 此处的Type是java的类型,而需要映射的是数据库的类型,两者之间存在一些差异,各个映射关系如下: 数据库列类型 BC 属性 ...

  7. yii2.0 在save保存之前的操作(放在模型model文件内)

    public function beforeSave($insert){ if(parent::beforeSave($insert)) { if($insert) { } else { } retu ...

  8. 两种方式(xml+代码)构建SqlSessionFactory+完整实现

    首先创建类.接口.数据库: entity包下Admin类: package com.wbg.springJavaConfig.entity; public class Admin { private ...

  9. Multicast Routing

    Multicasting Source S sends packets to multicast group G1 (and minimize the number of copies) Revers ...

  10. FastReport.net分组排序、打印顺序、分页、函数使用语法、数据块编辑

    本人使用的是FastReport.net1.0版,不涉及到任何代码,只是在FastReport中对打印模板的属性进行调整 1.设置打印顺序需要注意的属性 1)分组页眉中有个属性叫“condition” ...