URL组件

大多数 URL 方案的 URL 语法都建立在这个由 9 部分构成的通用格式上:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

主机名

主机组件标识了因特网上能够访问资源的宿主机器。 可以用主机名, 或者IP地址来表示主机名。

比如, 下面两个URL就指向同一个资源——第一个URL是通过主机名, 第二个是通过 IP 地址指向服务器的:

  • http://www.joes-hardware.com:80/index.html
  • http://161.58.228.45:80/index.html

端口组件标识了服务器正在监听的网络端口。 对下层使用了 TCP 协议的 HTTP 来说, 默认端口号为 80。

路径

URL 的路径组件说明了资源位于服务器的什么地方。 路径通常很像一个分级的文件系统路径。 比如:

localhost:80/seasonal/index.html

这个 URL 中的路径为 /seasonal/index.html, 很像 UNIX 文件系统中的文件系统路径。

参数

为了向应用程序提供它们所需的输入参数, 以便正确地与服务器进行交互, URL 中有一个参数组件。 这个组件就是 URL 中的名值对列表, 由字符“;” 将其与 URL 的余部分(以及各名值对) 分隔开来。 它们为应用程序提供了访问资源所需的所有附加信息。 比如:

ftp://prep.ai.mit.edu/pub/gnu;type=d

在这个例子中, 有一个参数 type=d, 参数名为 type, 值为d。

查询字符串

例如上面的wd=word 表示在bing搜索中搜索的关键字是word。在这里看到的 & 符号,很多网关都希望查询字符串以一系列“名 / 值” 对的形式出现, 名值对之间用字符“&” 分隔,例如名 / 值对:q=word   qs=n   form=QBLH   sp=-1

自动扩展URL

主机名扩展

在主机名扩展中, 只要有些小提示, 浏览器通常就可以在没有帮助的情况下, 将你输入的主机名扩展为完整的主机名

历史扩展

浏览器用来节省用户输入 URL 时间的另一种技巧是, 将以前用户访问过的 URL历史存储起来

URL字符

URL字符集

US-ASCII 使用 7 位二进制码来表示英文打字机提供的大多数按键和少数用于文本格式和硬件通知的不可打印控制字符。
有些 URL 中还会包含任意的二进制数据。 认识到对完整性的需求之后, URL的设计者就将转义序列集成了进去。 通过转义序列, 就可以用 US-ASCII 字符集的有限子集对任意字符值或数据进行编码了, 这样就实现了可移植性和完整性。

编码字符

字符限制

常见的方案格式

http 超文本传输协议方案,除了没有用户名和密码之外,与通用的 URL 格式相符。如果省略了端口,就默认为 80。基本格式:
http://<host>:<port>/<path>?<query>#<frag>
https 方案 https 与方案 http 是一对。唯一的区别在于方案 https 使用了网景的 SSL,SSL 为HTTP 连接提供了端到端的加密机制。其语法与 HTTP 的语法相同,默认端口为 443。基本格式:
https://<host>:<port>/<path>?<query>#<frag>
mailto Mailto URL 指向的是 E-mail 地址。由于 E-mail 的行为与其他方案都有所不同(它并不指向任何可以直接访问的对象),所以 mailto URL 的格式与标准 URL 的格式也有所不同。因特网 E-mail 地址的语法记录在 RFC 822 中。基本格式:
mailto:<RFC-822-addr-spec>
ftp 文件传输协议 URL 可以用来从 FTP 服务器上下载或向其上载文件,并获取 FTP 服务器上的目录结构内容的列表。在 Web 和 URL 出现之前 FTP 就已经存在了。Web 应用程序将 FTP 作为一种数据访问方案使用。URL 语法遵循下列通用格式。基本格式:
ftp://<user>:<password>@<host>:<port>/<path>;<params>
rtsp,rtspu RTSP URL 是可以通过实时流传输协议(Real Time Streaming Protocol)解析的音 / 视频媒体资源的标识符。
方案 rtspu 中的 u 表示它是使用 UDP 协议来获取资源的。基本格式:
rtsp://<user>:<password>@<host>:<port>/<path>
rtspu://<user>:<password>@<host>:<port>/<path>
file 方案 file 表示一台指定主机(通过本地磁盘、网络文件系统或其他一些文件共享系统)上可直接访问的文件。各字段都遵循通用格式。如果省略了主机名,就默认为正在使用URL 的本地主机。基本格式:
file://<host>/<path>
news 根据 RFC 1036 的定义,方案 news 用来访问一些特定的文章或新闻组。news URL 自身包含的信息不足以对资源进行定位。news URL 中缺乏到何处获取资源的信息——没有提供主机名或机器名称。
新闻资源可以从多台服务器中获得。它们被称为位置无关的,因为对它们的访问不依赖于任何一个源服务器。
news URL 中保留了字符“@”,用来区分指向新闻组的 news URL 和指向特定新闻文章的news URL。基本格式:
news:<newsgroup>
news:<news-article-id>
telnet 方案 telnet 用于访问交互式业务。它表示的并不是对象自身,而是可通过 telnet 协议访问的交互式应用程序(资源)。基本格式:
telnet://<user>:<password>@<host>:<port>/

PURL?

永久统一资源定位符(persistent uniform resource locators, PURL)是用 URL 来实现 URN 功能的一个例子。 其基本思想是在搜索资源的过程中引入另一个中间层,通过一个中间资源定位符(resource locator) 服务器对资源的实际 URL 进行登记和跟踪。 客户端可以向定位符请求一个永久URL, 定位符可以以一个资源作为响应,将客户端重定向到资源当前实际的 URL 上去。

Mr.J--HTTP学习笔记(二)-- URL详解相关推荐

  1. ELK学习笔记之Logstash详解

    0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining cap ...

  2. Java中大数据数组,Java基础学习笔记之数组详解

    摘要:这篇Java开发技术栏目下的"Java基础学习笔记之数组详解",介绍的技术点是"java基础学习笔记.基础学习笔记.Java基础.数组详解.学习笔记.Java&qu ...

  3. oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系

    天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...

  4. expect学习笔记及实例详解【转】

    1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的语法如下所示: 1.1 首行加上/usr/bin/expect 1.2 spawn: 后面加上需要执行的shell命令,比如说 ...

  5. CSS入门学习笔记(案例+详解)

    CSS入门学习笔记 一.CSS简介 1.什么是CSS? 2.为什么使用CSS? 3.CSS的作用 二.CSS语法 1.CSS基础语法 2.CSS注释语法 3.CSS应用方法 三.CSS选择器 1.元素 ...

  6. PyQt5学习笔记——一文详解QObject

    QObject详解笔记1 一.简介 QObject是所有Qt对象的基类 二.功能作用 2.1 对象名称.属性 2.1.1 API setObjectName("唯一名称") 给QT ...

  7. 【Python全栈100天学习笔记】Day37MySQL详解(sql语句基本操作含索引、视图、存储过程)

    SQL详解 基本操作 我们通常可以将SQL分为三类:DDL(数据定义语言).DML(数据操作语言)和DCL(数据控制语言).DDL主要用于创建(create).删除(drop).修改(alter)数据 ...

  8. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  9. shell入门学习笔记-12-命令详解: echo与printf

    系列目录与参考文献传送门: shell入门学习笔记-序章 命令详解 admindeMacBook-Pro:myshell admin$ type cd cd is a shell builtin ad ...

  10. CoAP学习笔记——CoAP格式详解

    0 前言 CoAP是受限制的应用协议(Constrained Application Protocol)的代名词.在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的.但是对于小型 ...

最新文章

  1. yarn架构——本质上是在做解耦 将资源分配和应用程序状态监控两个功能职责分离为RM和AM...
  2. 把Spring Boot项目打为可执行jar包
  3. java学习(82):静态代码块内部类
  4. 用xargs处理带空格文件名
  5. 【BZOJ1084】【codevs2454】最大子矩阵,DP
  6. 怎么知道eclipse的workspace的路径
  7. IOS开发中遇到的问题
  8. Linux学习入门--make学习总结
  9. ML_集成学习与Boosting模型
  10. JDBC常用API和使用
  11. Qcom WAPI方案
  12. js检测当前浏览器的flash版本
  13. 九宫八阵图之龙飞阵--异常流量管理系统
  14. .net core添加word水印
  15. 学生搭配问题数据结构报告c语言,数据结构课程设计_学生搭配问题.doc
  16. 001、【C语言编程题目】猴子吃桃问题
  17. 烽火2640路由器命令行手册-11-IP语音配置命令
  18. 软件测试工程师该如何规划自己的职业发展道路?
  19. 个人简历的1000+篇文章总结
  20. “无法访问此网站”的一些原因

热门文章

  1. 英特尔重磅开源OpenVINO™ !附送的预训练模型是最大亮点
  2. 【OpenCV】OpenCV实战从入门到精通图像的载入、显示与输出
  3. 2所“双一流”大学官宣:博士招生考试,延期!
  4. 如何解决anaconda出现CondaHTTPError问题
  5. 定量的方法如何能划分类别?
  6. hprose java 下载_Hprose Java|Hprose For Java下载v2017.2.0官方版 附使用教程 - 欧普软件下载...
  7. java控制台输出五行字符串_java五行代码导出Excel
  8. 漏洞payload 靶机_学生会私房菜【20200707期】Wordpress 4.6 任意命令执行漏洞
  9. 最常用的 HTTP 方法:GET 和 POST
  10. pycharm通过pytest运行报错:No test were found 解决