Http之资源

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/felix_wangq/article/details/51883186

1 概述

HTTP协议通过资源才能寻找到请求服务器位置,换句话说资源可以称为各种网络服务的资源地址。

2 URI

URI是通用的资源标示符,其包含URL和URN两个子集。其中URL是通过描述符的位置来标识资源的;URN是通过名字来标识资源的。

3 URL语法

基本语法格式如下

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
  1. : 访问服务器使用的协议,比如http代表HTTP协议。(必需)
  2. : 某些scheme访问时需要的用户名,默认为匿名。
  3. :用户名后面可能需要包含密码,用户名和密码中间用:分隔。
  4. :资源所在服务器的域名或者ip。所有用户名或密码则需要在host前加@。(必需)
  5. :资源所在服务器正在监听此服务的端口号,默认的HTTP端口号是80,HTTPS是443.
  6. :服务器上资源的本地路径,用/和之前部分区分开。(重要)
  7. :某些scheme可能需要这个组件来指定输入参数,参数为键值对。多个参数之间以;分隔,与前面的路径也是以;分隔
  8. :使用此参数传递参数以激活应用程序,用符号?跟之前的部分分隔开,查询组件之间用符号&分隔。
  9. :一小片或一部分资源的名字,引用对象时不会将frag字段传送给服务器;这个字段是在客户端内部使用的,通过符号#与其他部分Url分隔。

3.1 相对URL

相对URL时基于完整URL的缩写,其是基于基础URL,在基础URL上加上相对URL路径。其中基础URL可以通过以下途径获得:

  1. 首先,若资源中显式指定了基础URL,则直接使用。例如HTML中使用标记指定。否则
  2. 若当前资源存在URL,使用当前资源的URL作为基础URL。
  3. 否则,此URL为一个绝对URL,若不是则失败。

4 URL字符集

4.1 编码

编码机制就是通过一种“转义”表示法来表示不安全的字符。URL的转义有一个 % 后跟两个表示ASCII码的十六进制数表示。例如空格是%20

4.2 字符限制

一些特殊字符被保留起来,有着特殊含义,如下:

字符 含义
% 保留作为编码字符的转义标志
/ 保留作为路径组件中分隔路径段的定界符
. 保留在路径组件中使用
.. 保留在路径组件中使用
# 保留作为分段定界符
? 保留作为查询字符串定界符
保留作为参数定界符
保留作为scheme、user/password, host/port定界符
$, + 保留
@, &, = 在某些scheme中有特殊含义
{} \^~[]’
<>” 不安全,需要编码
0x00-0x1f,0x7f 首先,ASCII码中不可打印区域
>0x7f 受限,不在ASCII中

5 Scheme

常见的scheme说明如下:

  1. http 超文本传输协议,基本格式:http://<host>:<port>/<path>?<query>#<frag>
  2. https 使用了ssl加密机制的http协议,基本格式https://<host>:<port>/<path>?<query>#<frag>
  3. mailto 指向的是email地址,基本格式 mailto:xxx@xx.xx
  4. ftp 文件传输协议url,基本格式:ftp://<user>:<password>@<host>:<port>/<path>;<params>
  5. rtsp,rtspu 可以通过实时流传输协议解析音视频媒体的资源的标识符。后者表示是udp协议来获取资源。基本格式rtsp://<user>:<password>@<host>:<port>/<path>rtspu://<user>:<password>@<host>:<port>/<path>
  6. file 一台指定主机(本地或网络文件系统)上可以直接访问的文件。基本格式file://<host>/<path>
  7. news 位置无关的,不依赖于任何一个源服务器。也没有指定其源服务器地址,基本格式:news"<newsgroup>news:<news-article-id>
  8. telnet 用于访问交互式业务资源。基本格式:telnet://<user>:<password>@<host>:<port>/
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页