http协议基础之URL

URI(Uniform Resource Identifier) 统一资源标识符

URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。

URL 统一资源定位符

是资源标识符的最常见形式,是URI的一个子集(另一个是URN)。URL描述了一台特定服务器上某资源的特定位置。它们可以说明如何从一个精确、固定的位置获取资源。

URL遵循的标准格式

  1. URL的第一部分被称为方案(scheme),说明了访问资源所使用的协议类型。如http://
  2. 第二部分给出了服务器的因特网地址
  3. 其余部分制定了Web服务器上的某个资源

现在几乎所有的URI都是URL

URL语法

://:@:/;?#
  1. 方案:使用的协议,不区分大小写
  2. 用户:访问某些资源需要用户名
  3. 密码:用户对应的密码 中间用:分割
  4. 主机:服务器的主机名或IP地址
  5. 端口:服务器正在监听的端口号
  6. 路径:服务器资源的本地名,路径组件的语法是与服务器和方案有关
  7. 参数:某些方案会用这个组件来指定输入参数。参数为名/值对。URL中可以包含多个参数字段
  8. 查询:传递的参数,用"?"将其与URL的其余部分分隔开
  9. 片段:一小片或一部分资源的名字,这个字段是在客户端内部使用的,通过字符"#"与URL其他部分分隔开来
用户名和密码

很多服务器都要求输入用户名和密码才允许用户访问资源。常见的有FTP服务器。
例如:

ftp://192.168.1.2
ftp://[email protected]
ftp://anonymous:[email protected]
参数

为了向应用程序提供它们所需的输入参数,以便正确地与服务器进行交互,URL中有一个参数组件。这个就是URL中的名值对列表,由字符";"与其他部分分隔。
如:

ftp://192.168.1.2;type=d
http://192.168.1.2/index.html;sale=false/login.html;id=true
查询字符串

很多资源都可以通过提问题或者查询来缩小所请求资源类型的范围。
如:

http://192.168.1.2/login.html?user=zhangsan&password=123456

经常使用的http get请求传递的参数就是查询字符串

片段

有些资源,比如html,除了资源级之外,还可以进一步划分。比如,对一个带有章节的大型文本文档来说,资源的URL会指向整个文档,但有时我们希望能够指定资源中的某些章节。
片段组件用来表示一个资源内部的片段。如一个特定的图片或小节
片段挂在URL的右边,前面用一个"#"与其他部分分隔。

HTTP服务器通常只处理整个对象,而不是对象的片段,客户端不能将片段传给服务器,浏览器从服务器获取整个资源后,会根据片段来显示部分资源。

URL快捷方式

URL有两种方式:绝对URL和相对URL,相对URL只是URL的片段或一部分。处理URL的程序(如浏览器)能够在相对和绝对URL之间进行转换。相对URL有利于资源的迁移,因为相对URL都是相对于新基础进行解释的。这样可以实现在其他服务器上提供镜像内容之类的功能。

基础URL

转换处理的第一步就是找到基础URL。基础URL是作为相对URL的参考点使用的。有以下几种方式:

  1. 在资源中显示提供 如html中的标签
  2. 封装资源的基础URL 如果在一个没有显示指定基础URL的资源中发现一个相对URL,可以将它所属资源的URL作为基础
自动扩展URL

浏览器一般都提供自动扩展URL的功能
主要的扩展方式:

  1. 主机名扩展 如在浏览器中输入 google.com ,浏览器会自动扩展为http://google.com
  2. 历史扩展 对浏览器历史记录进行匹配查询

URL编码

使用一种"转义"表示法来表示各种不安全的字符(保留及受限字符)。
如:~ 空格 %等

常见的URL方案(协议)

  1. http 超文本传输协议 默认端口80
  2. https 加密的http,使用SSL进行安全加密 默认端口443
  3. mailto 指向Email地址,如mailto:[email protected]
  4. ftp 文件传输协议,用来从ftp服务器上传或下载文件
  5. rtsp,rtspu 通过实时流传输协议解析音/视频媒体资源的标识符
  6. file 从一台共享主机上直接访问文件
  7. news 用来访问一些特定的文章或新闻组
  8. telnet 用户访问交互式业务

你可能感兴趣的:(http协议基础之URL)