2.1 URI与URL、URN

  1. URL是浏览器寻找信息时所需的具体位置。URl是人们对HTTP和其他协议的常用访问点:浏览器指向一个URL,浏览器就会发送适当的协议报文向服务器获取内容。
  2. URI是一类更通用的资源标识符,URL是它的子集,URI的两个主要子集:URL、URN。
  3. URL是通过描述资源的位置来获取资源,而URN是通过资源的名字来获取资源(与所处位置无关)。
  4. URL由三部分组成:
    • 第一部分:协议类型、方案
    • 第二部分:服务器名称、位置
    • 第三部分:所需获取资源的具体路径

    例:http://www.yahoo.com/image/logo.gif

    上例中:第一部分:http://

        第二部分:www.yahoo.com

        第三部分:image/logo.gif

2.2 URL的语法

       URL基本由九部分组成:方案、用户、密码、主机、端口、路径、参数、查询、片段

  • 方案

    方案实际上就是规定如何访问资源的主要标识符,负责告诉解析URL的应用程序使用的是什么协议。

    方案组件必须以字母符号开始,且在URL中由第一个:将其与主体部分分开。

  • 主机与端口

    在URL中主机可以是类似“www.baidu.com”这种服务器名称,也可以是“192.168.1.3”这种IP地址,主要标识的是URL访问的具体服务器

    端口组件标识了服务器正在监听的网络端口。

  • 用户名和密码

    很多服务器是需要用户名和密码才可以登录访问数据的,举例如下:

      ftp://ftp.prep.ai.edu/pub/gnu        

        该例没有用户名和密码部分,只是标准的方案、主机和路径,如果所访问的服务器需要用户名和密码而用户没有主动填写,它通常会自动添加默认用户名(anonymous)和密码(IE会设置为IEUser)。

      ftp://anonymous@ftp.prep.ai.edu/pub/gnu         

        该例是anonymous为用户名,用@将用户名和其他部分隔离开。

      ftp://anonymous:password@ftp.prep.ai.edu/pub/gnu

        该例和上例类似,只是增加了密码组件部分,用户名和密码之间用“:”隔开。

  • 路径

    路径是URL访问服务器资源时寻找资源的具体位置的路径,其标识用“/”将各路径段连接在一起,组成完整路径。

  • 参数

    对很多方案来说,只有简单的用户名、密码、路径等信息是不足够的,还需要某些参数,负责解析URL的应用程序可以根据这些参数来访问资源。

    比如FTP协议有两种传输模式,二进制和文本形式,在具体使用总,如何选择传输模式就是靠参数组件来设置了。

    其格式为:由“;”将其与其他部分分隔开,例:ftp://ftp.prep.ai.edu/pub/gnu;type=d

  • 查询字符串

    访问某些资源时可能其内容过于庞大,而访问所需资源是某些小部分内容,此时需要查询字符串。

    例:访问数据库。假如数据库内有物品清单,并可以对清单内物品进行查看是否有货,则可以用下列URL访问

      查看编号为12341的物品:http://www.sqlwp.com/store?item=12341

      其格式为:用符号“?”将其与其他组件部分隔开,如需多个参数则在参数与参数间用符号“&”隔开。

    例:http://www.sqlwp.com/store?item=12341&color=blue

  • 片段

    有些资源类型,比如HTML,除资源级可以划分外,还可以做进一步划分。

    比如访问资源是一个大型带有章节的文档,理想的情况时访问某个章节,此时需要使用片段组件。

    片段组件挂在URL的右手边,最前面加个符号#与其他部分分割。

    例:http://www.sqlwp.com/store#color=blue

2.3 方案

  • http:超文本传输协议方案,除没有用户名和密码外,与通用URL格式相符,默认端口80.

    格式:http://host:port/path?query#frag

    示例:http://localhost.com:80/index.html

  • https:与http相似,唯一区别为添加了网景SSL,为http提供了加密机制,默认端口443.

    格式:https://host:port/path?query#frag

    示例:https://localhost.com:80/index.html

  • mailto:URL指向的是E-mail地址,

    格式:mailto:RCF-822-addr-spec

    示例:mailto:joe@joes-hard.com

  • ftp:文件传输协议,可用于上传及下载文件方面等用途。

    格式:ftp://user:password@host:port/path;param

    示例:ftp://anonymous:password@ftp.prep.ai.edu/pub/gnu

  • rtsp、rtspu:RTSP是可以通过实时流传输协议解析的音视频媒体资源的标识符。

    格式:rtsp://user:password@host:port/path

    示例:rtsp://www.joes-hard.com:554/video

  • file:访问服务器的文件资源,如省略主机名,则访问默认正在使用的本地主机。

    格式:file://host/path

    示例:file://localhost/words/111.doc

  • news:我也没懂,也没地用到
  • telnet:用于访问交互式业务,可通过telnet协议访问的交互式应用协议。

    格式:telnet://user:password@host:port/

    示例:telnet://www.joes-hard.com:554/

      

  

    

  

HTTP权威指南笔记-2.URL与资源的更多相关文章

  1. HTTP 权威指南 第二章 URL 与资源

    前言 这一章节讲述了关于 URL 的相关知识,主要包括下面的内容: URL 语法 URL 快捷方式 URL 编码与字符规则 常见的 URL 方案 URL 的未来——URN URL 语法 一般格式(九个 ...

  2. Struts2权威指南笔记

    Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也 ...

  3. Hadoop权威指南:从Hadoop URL读取数据

    [TOC] Hadoop权威指南:从Hadoop URL读取数据 使用java.net.URL对象从Hadoop文件系统读取文件 实现类似linux中cat命令的程序 文件名 HDFSCat.java ...

  4. Http权威指南笔记(一) URI URL URN 关系

    定义 URI:统一资源标识符(Uniform Resource Indentifier)用来标识服务器上的资源. URL:统一资源定位符(Uniform Resouce Locator)是资源标识符最 ...

  5. HTTP权威指南笔记-1.概述

    1.1 通讯 Web内容是存储在服务器上的,Web服务所使用的是HTTP协议,所以经常称为HTTP服务器.通讯过程为客户端(正常我们所使用的)发出请求,服务端根据客户端的HTTP请求响应相应数据,这就 ...

  6. javascript权威指南笔记

    最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...

  7. Http权威指南笔记(二) Http状态码大全

    100~199—信息状态码 200~299—成功状态码 客户端发请求时,这些请求通常都是成功的. 300~399—重定向状态码 重定向状态码告知客户端使用代替位置来访问他们所感兴趣的资源. 400~4 ...

  8. Android编程权威指南笔记2:解决R文件爆红问题和SDK概念

    在android studio中会遇到R文件的丢失,所以遇见这问题怎么解决呢? 重新检查资源文件中xml文件 最近一次编译时如果未生成R.java文件,项目中资源引用的地方都会出错.通常,这是某个xm ...

  9. Android编程权威指南笔记

    学习android开发,你需要对java语言,包括类,对象,接口,监听器,包,内部类,匿名内部类有所了解. android studio 的下载与安装 可以从android开发者网站下载android ...

随机推荐

  1. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  2. NSPredicate 过滤功能

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self contains[cd] %@", i ...

  3. 北京全景视频外包公司:长年承接VR全景视频外包

    北京动点飞扬软件,从事外包业务五年,长年承接全景VR视频,全景普通视频外包. 以下是全景VR视频案例(可操作,人不动景物不动,人移动,景物跟随) 欢迎联系我们QQ:372900288 TEL:1391 ...

  4. 关于Exception

    Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]"   1.java.lang ...

  5. python 获取当前目录下文件(转)

    今天继续整理原来写的 python 代码,下面是获取文件信息的 python 处理代码. 获取指定目录下文件的文件名以及文件的数量,然后列出其中还存在的目录名称: #!/usr/bin/env pyt ...

  6. 读写hdfs文件(工作笔记)

    import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.Map; ...

  7. 爬虫之scrapy框架

    解析 Scrapy解释 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓 ...

  8. 服务器未能识别 HTTP 标头 SOAPAction 的值

    SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址.SOAP发送并不限制格式.URI特征或其必须可解析,那么在这种情况下,发送一个 ...

  9. 普通B/S架构模式同步请求与AJAX异步请求区别(个人理解)

    在上次面试的时候有被问到过AJAX同步与异步之间的概念问题,之前没有涉及到异步与同步的知识,所以特意脑补了一下,不是很全面... 同步请求流程:提交请求(POST/GET表单相似的提交操作)---服务 ...

  10. 思考力——提升企业竞争力的核心因素

    如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 · 思考力就是竞争力:在这个科技飞跃进步的时代,很多事物是我们未曾经历也难以预料的. ...