http 学习 1-2 chapter2-URL与资源
URL是因特网资源的标准化名称。URL指向每一条电子信息,告诉他们位于何处,以及如何与之进行交互。
- URL语法,以及各种URL组件的含义及其所做的工作。
- 很多Web客户端都支持额URL快捷方式,包括相对URL和自动扩展URL
- URL编码和字符规则
- 支持各种因特网信息系统的常见URL方案
- URL的未来,包括URN—这种框架可以在对象从一处搬移到另一处时,保持稳定的访问名称。
2.1 浏览因特网资源
URL是浏览器寻找信息是所需的资源位置。通过URL,人类和应用程序才能找到、使用并共享因特网上大量的数据资源。
URI是一类更通用的资源标识符,有URL和URN组成。URL通过描述资源的位置来标识资源,RUN通过名字来识别资源,与他们当前所处位置无关。
HTTP应用程序处理的知识URI的URL子集。URL分一下三部分
- URL的第一部分(htp)是URL的方案。方案可以告知Web客户端怎样访问资源
- URL的第二部分指的是服务器的位置。这部分告知Web客户端资源位于何处
- URL的第三部分是资源路径,路径说明了请求的是服务器上那个特定的本地资源
URL可以通过HTTP之外的其他协议来访问资源。他们可以指向因特网上的任意资源,比如个人的E-mail账户
Maito: president@whirehouse.gov
或者其他协议。比如通过文件传输协议(File Transfer Protocol ,FTP)才能获取的各种文件。
ftp://ftp.lots-o-books.com/pub/complete-preice-list.xls
或者从流视频服务器上希在电影:
rtsp: //www.joes-hardware.com:554/interview/cto_video
URL提供了一种统一的资源命名方式。
URL为用户及他们的浏览器提供了找到信息所需的所有条件。URL定义了用户所需的特定资源,他位于何处以及如何获取他。。
2.2 URL的语法
URL提供了一种定位因特网上任意资源的手段,但这些资源师可以通过各种不同的方法来访问的,随着方案不同有所不同。
大部分URL遵循通用的URL语法,大多数方案的URL语法都建立再这个有9个部分构成的通用格式上。
<scheme>://<user>:<password>@<host>:<port>/<path>:<param>?<query>#<frag>
方案、用户、密码、主机、端口、路径、参数、查询、片段
几乎没有哪个URL中包含了所有这些组件,URL最重要的3个部分是方案(scheme),主机(host)和路径(path)。
2.2.1 方案---是用什么协议
方案实际上是规定如何访问指定资源的主要标识符,他会告诉负责间隙URL的应用程序应该使用什么协议。
语法: 方案组件必须以一个字母符号开始,由第一个‘:’,符号将其与URL的其余部分分割开来。方案名是大小写无关的。
2.2.2 主机与端口
URL主机和端口号组件提供了 装载了资源的机器位置和目标资源服务器的具体机器位置。主机组件标识了因特网上能够访问资源的宿主机器,可以用上述主机名或者IP地址来表示主机名。端口组件表示了服务器正在监听的网络端口,对下层使用了TCP协议的HTTP来说,默认端口是80。
2.2.3 用户名和密码
用户和密码组件,很多服务器都要求输入用户名和密码才会允许用户访问数据。FTP服务器就是这样一个常见的实例。
ftp;//anonymous:my_password@ftp.prep.ai.mit.edu/pub/gnu
用‘@’将用户和密码组件与URL的其余部分分隔开。2
2.2.4 路径
URL的路径组件说明了资源位于服务器的什么地方。路径通常很像一个分级的文件系统路径。可以用字符‘/’将HTTP URL的路径组件划分成一些路径短(path segment)。每个路径短都有自己的参数(param)组件
2.2.5 参数
为了向应用程序提供他们所需的输入参数,以便正确的与服务器进行交互,URL中有一个参数组件。这个组件上就是URL中的名值对列表,由字符‘:’将其余URL的其余部分分隔开。
http://www.joes-hardware.com/hammers:sale=false/index.html:graphics=true
2.2.6 查询字符串
很多资源比如数据库服务都是可以通过提问题或进行查询来缩小所请求资源来缩小范围的。
http://www.joes-hardware.com/inventory-check.cgi?item=12731
(?)右边的内容是查询组件,URL的查询组件和标识网关资源的URL路径组件一起被发送给网关资源。
查询组件的格式没什么要求。按照常规,很多网关都希望查询字符串以一系列“名/值”对形式出现,名值对之间用“&”分隔:
http://ww.joes-hardware.com/inventory-check.cgi?item=12731&color=blue
2.2.7 片段
为了引用部分资源或资源的一个片段。URL支持使用片段(frag)组件来表示一个资源内部的片段。
http;//ww.joes-hardware.com/tools.html#drils
HTTP服务器通常处理完整的对象,而不是对象的片段。客户端能不能将片段传送给服务器,浏览器从服务器获得咧真个归元之后,会根据片段来显室你感兴趣的那部分资源。
(感觉就像html中的锚)
2.3 URL快捷方式
Web客户端可以理解并使用几种URL快捷方式,相对URL是在某资源内部指定一个资源的便捷缩略方式。很多浏览器还支持URL的‘自动扩展’,也就是用户输入URL的一个关键部分,然后由浏览器将其余部分填充起来。
2.3.1 相对URL
URL有两种方式:绝对的和相对的。绝对URL中包含访问资源所需的全部信息。相对URL是不完整的,要从相对URL中获取访问资源所需的全部信息,就必须相对于另一个被称为其基础(base)的URL进行解析。
相对URL只是URL的片段或一小部分。处理URL的应用程序要能够在相对和绝对URL之间进行转换。为保持一组资源的便携性提供了一种便捷方式。如果使用的是相对URL,就可以在搬移一组文档的同时,仍然保持连接的有效性,因为相对URL都是相对于新基础进行解释的,这样就可以实现在其他服务器上提供镜像内容之类的功能了。
- 1. 基础URL
转换处理的第一步就是找到基础URL,基础URL是作为相对URL的参考点使用的。
l 在资源中显式提供
l 封装资源的基础URL
l 没有基础URL
- 2. 解析相对引用
要将相对URL转换为一个绝对URL,下一步要做的就是将相对URL和基础URL划分成组件段。
实际上,这样只是在解析URL,这种做法会将其划分成一个个组件,因此通常会称作分解(decomposing)URL。基础和相对URL划分成组件,就可以应用算法完成转换。
2.3.2 自动扩展URL
有些浏览器会在用户提交URL之后,或者在用户输入的时候阐释自动扩展URL。有两种方式:
- 主机名扩展
举例: 输入baidu,浏览器自动在主机名中插入www.和.com。
- 历史扩展
将以前用户访问过的URL历史存储起来
2.4 各种令人 的字符
URL是可移植的(portable)。他要同意的命名因特网上所有的资源,设计URL使其可以通过任意因特网协议安全的传输是 很重要的。
2.4.1 URL字符集
默认的计算机系统字符集通常都倾向于以英语为中心。从历史上来看,很多计算机应用程序使用的都是US-ASCII字符集。US-ASCII使用7位二级制码来表示英文打字机提供的多数按键和少数用于文本格式和硬件通知的不可答应控制字符。
URL的设计者就将转义序列集成了进去,通过转义序列,就可以用US-ASCII字符集的有限自己对任意字符值或数据进行编码了,这样就实现了可移植性和完整性。
2.4.2 编码机制
为了避开安全字符集表示法带来的限制。人们设计了一种编码机制,用来表示URL中各种不安全的字符。通过一种‘转义’方法表示不安全字符的。包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。
2.4.3 字符限制
在URL总,有几个字符白保留起来,有这特殊的含义。有些字符不在定义的US-ASCII可打印字符集中,还有些字符会与某些因特网网关和协议产生混淆,因此不赞成还是用。
2.4.4 另外一点说明
应用程序要按照一定规范工作。客户端应用程序再想其他应用程序发送任意URL之前,最好把所有不安全或首先自付都惊醒转换。只要对所有不安全字符都进行了编码,这个URL就是可在个应用程序之间共享的鬼发型师,野牛无需操心其他应用程序会被字符的任何特殊含义所迷惑了。
2.5 方案的世界
- Http
- https (使用了网景的SSL,SSL为HTP链接提供了端到端的加密机制。默认端口:443)
- mailto
- ftp
- rtsp,rtspu
- file
- news
- telnet
2.6 未来展望
URL是一种强有力的工具,他可以用来命名所有的现存对象而且可以很方便的包含已写信格式,URL还提供了一种可以在各种因特网协议间共享的统一命名机制。
但URL并不完美,他们表示的是实际的地址而不是准确的名字。
URN 无论对象搬移到什么地方,URN都能为对象提供一个稳定的名称。】、
永久统一资源定位符(persistent uniform resource locators,PURL)使用URL来实现URN功能的一个例子。
http 学习 1-2 chapter2-URL与资源的更多相关文章
- 《HTTP权威指南》学习笔记——URL和资源
URL与资源 URL是互联网资源的标准化名称 1.浏览互联网资源 URL是浏览器寻找信息时所需的资源位置 URI是一类更通用的资源标识符,URL是它的子集. URI的两个子集:URL和URN URL提 ...
- HTTP学习之URL与资源
URL是因特网资源的标准化名称,该字符串指向一条电子信息片段,定义服务端应用程序在什么位置以及客户端要如何与其交互 一条完整的URL由多个片段组成. 通用URL组件 方案 以哪种协议访问服务器 用户 ...
- http协议进阶(二)URL与资源
一.URL的语法 URL是互联网资源的标准化名称 URL提供了一种定位互联网上任意资源的手段,但这些资源要通过不同方案(协议:比如http.ftp.smtp)来访问,因此URL语法会略有差异 大部分 ...
- HTTP权威指南笔记-2.URL与资源
2.1 URI与URL.URN URL是浏览器寻找信息时所需的具体位置.URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容. URI是一类 ...
- URL与资源
资源推荐 1.HTTP权威指南. <HTTP权威指南>由古尔利所著,<HTTP权威指南>详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程 ...
- HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解
一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...
- 学习 Python 编程的 19 个资源 (转)
学习 Python 编程的 19 个资源 2018-01-07 数据与算法之美 编译:wzhvictor,英文:codecondo segmentfault.com/a/119000000418731 ...
- HTTP权威指南-URL与资源
URL与资源 URL是URI的子集 方案(http),主机(www.baidu.com),路径(/home/logo.png) 方案,其实有很多,HTTP.HTTPS.FTP,SMTP等等. http ...
- 第二章、URL与资源
1 URL统一资源定位符 URL 是浏览器寻找信息时所需的资源位置.通过 URL,人类和应用程序才能找到.使用并共享因特网上大量的数据资源.URL是作为URI的一个子集,URI是一类更通用的资源标识符 ...
- HTTP权威指南之URL与资源
前言 web基础中介绍了URI.URL与URN: URI是一类更通用的资源标识符,URL是它的一个子集: URI是一个通用的概念,它主要由URL与URN组成: URL是通过描述资源的位置来标识资源的, ...
随机推荐
- HDU 5010 Get the Nut(2014 ACM/ICPC Asia Regional Xi'an Online)
思路:广搜, 因为空格加上动物最多只有32个那么对这32个进行编号,就能可以用一个数字来表示状态了,因为只有 ‘P’ 'S' 'M' '.' 那么就可以用4进制刚好可以用64位表示. 接下去每次就 ...
- solaris tar 命令exclude使用
压缩时需要排除指定目录,不知道什么原因在solaris中 tar cvf a.tar a --exclude=a/b/log --exclude = a/c/mm7log不生效, 最后使用了如下方法 ...
- [转]Objective-c中@interface、@implementation、@protocal
原处:http://blog.csdn.net/l271640625/article/details/8393531 以下Objective-c简称OC 从事java开发的程序员们都知道,在java中 ...
- A Brief Review of Supervised Learning
There are a number of algorithms that are typically used for system identification, adaptive control ...
- freeCAD预选项编辑器
freeCAD的预选项系统在 Edit 目录 -> Preferences. freecad的功能分成不同的模块,每一模块负责一个特定的工作台工作.freecad还使用了一个概念叫晚加载,这意味 ...
- Python的平凡之路(12)
一.数据库介绍 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...
- asp.net C#获取程序文件相关信息
代码如下 复制代码 using System.Reflection;using System.Runtime.CompilerServices; //// 有关程序集的常规信息是通过下列// 属性集控 ...
- 关于ssh调用远程后台命令挂住的解释
目前看到的最详细最全面的解释: http://www.snailbook.com/faq/background-jobs.auto.html
- 有关attribute和property,以及各自对select中option的影响
这个问题老生常谈,但是直到现在我依旧时常会把它搞混.下面列一些各自的特性. attribute property 设置方法 option.setAttribute('selected', true ...
- 如何在Form++开源组态平台添加硬件采集接口
E-Form++是一套值得推荐的高品质开源C++矢量图形库,C++编程之所以异常困难,主要就是没有很专业的C++基础架构库有关.E-Form++的出现一定程度上填补了这个空白.是开发工控.监控.建模与 ...