http协议基础之URL
更新日期:
http协议之URL
URI(Uniform Resource Identifier) 统一资源标识符
URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。
URL 统一资源定位符
是资源标识符的最常见形式,是URI的一个子集(另一个是URN)。URL描述了一台特定服务器上某资源的特定位置。它们可以说明如何从一个精确、固定的位置获取资源。
URL遵循的标准格式
- URL的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。如http://
- 第二部分给出了服务器的因特网地址
- 其余部分制定了Web服务器上的某个资源
现在几乎所有的URI都是URL
URL语法
|
|
- 方案:使用的协议,不区分大小写
- 用户:访问某些资源需要用户名
- 密码:用户对应的密码 中间用:分割
- 主机:服务器的主机名或IP地址
- 端口:服务器正在监听的端口号
- 路径:服务器资源的本地名,路径组件的语法是与服务器和方案有关
- 参数:某些方案会用这个组件来指定输入参数。参数为名/值对。URL中可以包含多个参数字段
- 查询:传递的参数,用”?”将其与URL的其余部分分隔开
- 片段:一小片或一部分资源的名字,这个字段是在客户端内部使用的,通过字符”#”与URL其他部分分隔开来
用户名和密码
很多服务器都要求输入用户名和密码才允许用户访问资源。常见的有FTP服务器。
例如:
参数
为了向应用程序提供它们所需的输入参数,以便正确地与服务器进行交互,URL中有一个参数组件。这个就是URL中的名值对列表,由字符”;”与其他部分分隔。
如:
查询字符串
很多资源都可以通过提问题或者查询来缩小所请求资源类型的范围。
如:
经常使用的http get请求传递的参数就是查询字符串
片段
有些资源,比如html,除了资源级之外,还可以进一步划分。比如,对一个带有章节的大型文本文档来说,资源的URL会指向整个文档,但有时我们希望能够指定资源中的某些章节。
片段组件用来表示一个资源内部的片段。如一个特定的图片或小节
片段挂在URL的右边,前面用一个”#”与其他部分分隔。
HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传给服务器,浏览器从服务器获取整个资源后,会根据片段来显示部分资源。
URL快捷方式
URL有两种方式:绝对URL和相对URL,相对URL只是URL的片段或一部分。处理URL的程序(如浏览器)能够在相对和绝对URL之间进行转换。相对URL有利于资源的迁移,因为相对URL都是相对于新基础进行解释的。这样可以实现在其他服务器上提供镜像内容之类的功能。
基础URL
转换处理的第一步就是找到基础URL。基础URL是作为相对URL的参考点使用的。有以下几种方式:
- 在资源中显示提供 如html中的
标签 - 封装资源的基础URL 如果在一个没有显示指定基础URL的资源中发现一个相对URL,可以将它所属资源的URL作为基础
自动扩展URL
浏览器一般都提供自动扩展URL的功能
主要的扩展方式:
- 主机名扩展 如在浏览器中输入 google.com ,浏览器会自动扩展为http://google.com
- 历史扩展 对浏览器历史记录进行匹配查询
URL编码
使用一种”转义”表示法来表示各种不安全的字符(保留及受限字符)。
如:~ 空格 %等
常见的URL方案(协议)
- http 超文本传输协议 默认端口80
- https 加密的http,使用SSL进行安全加密 默认端口443
- mailto 指向Email地址,如mailto:wustrive2008@gmail.com
- ftp 文件传输协议,用来从ftp服务器上传或下载文件
- rtsp,rtspu 通过实时流传输协议解析音/视频媒体资源的标识符
- file 从一台共享主机上直接访问文件
- news 用来访问一些特定的文章或新闻组
- telnet 用户访问交互式业务