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. MVC中用NPOI导出Excel相关问题

    情形1:可以直接带参数 前端页面: @.ActionLink("导出Excel", "DownLoadExcel", new { 参数名= '参数值' }, n ...

  2. MySQL存储过程和临时表

    MySQL创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...

  3. eclipse 实用快捷键(最全)

    注释: (1)Ctrl+Space  说明:内容助理.提供对方法,变量,参数,javadoc等得提示,  应运在多种场合,总之需要提示的时候可先按此快捷键.  注:避免输入法的切换设置与此设置冲突 ( ...

  4. WCF安全 z

    WCF custom authentication using ServiceCredentials The generally accepted way of authenticating a us ...

  5. 【Leetcode】【Medium】Minimum Path Sum

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  6. Mysql学习---SQL测试题之表结构

    创建表结果和数据准备[直接执行即可] /* Navicat MySQL Data Transfer Source Server : ftl1012 Source Server Version : 50 ...

  7. iframe加载顺序导致数据访问出现问题

    背景: 一个页面A内有一个iframe,src指向了B页面. 问题: 页面A通过Ajax获取服务器数据,并赋值给了页面A的全局变量gData,页面B要用到页面A的数据gData.那么问题来了当B访问g ...

  8. Dispatch groups 与任务同步

    https://developer.apple.com/library/content/documentation/General/Conceptual/ConcurrencyProgrammingG ...

  9. UVa 1626 - Brackets sequence(区间DP)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. 两个List中的补集

    /** * 获取两个List的不同元素 * @param list1 * @param list2 * @return */ private static List getDiffrent(List ...