热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mr.JHTTP学习笔记(二)URL详解

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

URL组件

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


://:@:/;?#



主机名

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

PURL?

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


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
author-avatar
光陆光陆光陆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有