URL

作者: 星流星 | 来源:发表于2018-09-20 19:40 被阅读0次

    URL语法

    通用URL组件

    组件 描述 默认值
    方案 访问服务器以获取资源时需要使用那种协议
    用户 某些方案访问资源是需要使用用户名 匿名
    密码 用户名后面可能要包含的密码,中间由冒号(:)分隔 <E-mail地址>
    主机 资源宿主服务器的主机名或点分IP地址
    端口 资源宿主服务器正在监听的端口号,很多方案都有默认的端口号(HTTP默认的端口号是80) 每一个方案特有
    路径 服务器上的资源的本地名,由一个斜杠(/)与其他前面的URL组件分隔开来。组件的语法是与服务器方案有关的
    参数 某些方案会用这个组件来执行输入参数。参数为名/值对,URL中可以包含多个参数字段,它们相互之间以与路径的区域部分之间使用(;)分隔
    查询 某些方案会用这个组件传递参数已激活应用程序(比如数据库、公告板、搜索引擎以及其他因特网网关)。查询组件的内容没有通用格式。用字符“?”将其与URL的其余部分分隔看来
    片段 一小片或一部分资源的名字。引用对象时,不会将flag字段传送给服务器,这个字段是在客户端内部使用的,通过"#"将其与URL的其余部分分隔开来

    方案指的是这个URL使用的是什么协议,常见的协议有http、https、ftp、ssh等。

    主机名一般可以使用IP或者域名来指定。

    HTTP的默认端口是80,如果URL中没有指定端口号,那么就是使用的是默认的。

    用户名和密码一般使用的比较少。

    路径指的是资源字服务器中的位置。

    参数在URL中也不常见,常见的是查询参数。

    片段:有一些资源类型,比如HTML,除了资源之外,还可以进行进一步的划分。比如,对于一个带章节的文档来说,资源的URL会指向整个文档,但是有时候却想要获取具体的某一个章节。
    URL支持使用片段(frag)组件来表示一个资源内部的片段。比如,URL可以指向文档中的一个特定的小结。
    片段使用一个“#”将其和前面的其它部分分开。
    例如

    https://blog.csdn.net/starexplode/article/details/78481029#1-%E5%9C%B0%E5%9D%80%E8%BF%90%E7%AE%97%E7%AC%A6
    

    URL编码

    URL中的字符只支持US-ASCII,它并不支持汉字和其它字符,而且,有些URL中还可能会有二进制。所以URL就由于转义序列。通过转义序列,就可以使用US-ASCII字符集的有限子集对字符值或数据进行编码了。

    编码机制

    为了避开安全字符集表示法带来的限制,人们设计了一种编码机制,用来在URL中表示各种不安全的字符。这种编码机制就是通过“转义”表示发来表示不安全的字符。这种转义法包含一个百分号(%),后面跟着两个表示字符ASCII码的16进制。

    示例:
    |字符|ASCII码|表示|
    |~|126(0x7E)|%7E|
    |空格|32(0x20)|%20|
    |%|37(0x25)|%25|

    字符限制

    在URL中,有几个字符被保留起来了,有着特殊的含义,有些字符不在US-ASCII可打印字符集中。还有些字符会与因特网的网关和协议产生混淆。

    下表中列出了一些字符,在将其用于保留用途之外的场合时,要在URL中对其进行编码。

    字符 保留/受限
    % 保留作为编码中的转义标志
    / 保留作为路径组件中分隔路径段的界定符
    . 保留在路径中使用
    .. 保留在路径中使用
    # 保留作为分段界定符使用
    ? 保留作为参数界定符使用
    ; 保留作为查询字符串界定符使用
    : 保留作为方案,用户/口令,以及主机/端口组件的界定符使用
    $,+ 保留
    @&= 在某些方案的上下文有特殊含义,保留
    {} ^~[]' 用于各种传输Agaent代理。比如网关不安全处理,使用受限
    <>" 不安全,这些字符在URL范围之外通常是有意义的,比如在文档中对URL自身进行界定,应该对其进行编码
    0x00-0x1F,0x7F 受限,这些十六进制范围内的字符都在US-ASCII字符集的不可打印区间
    >0x7F 受限,十六进制在此范围内的字符都不在US-ASCII字符集的7位而进制范文内

    相关文章

      网友评论

          本文标题:URL

          本文链接:https://www.haomeiwen.com/subject/aczkgftx.html