前端探秘URL(统一资源定位符)

本文详细介绍了URL的构成,包括协议、主机名、端口号、资源名,以及相对URL、参数设置、定位标记和URL编码。特别强调了URL编码的规则,如何处理特殊字符,以及mailto协议的使用。通过实例解析,帮助读者全面掌握URL的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • URL的定义与结构

    通常的URL一般由网络协议名,资源所在的主机名,网络服务程序的端口号和资源本身的名称等4个部分组成

    例:

    http://www.it315.org:8080/index.html

    其中网络协议名为HTTP(超文本传输协议),资源所在的主机名为www.it315.orgHTTP服务器程序所用的网络端口号是8080,资源名为index.html

    • http协议定义了web浏览器与web服务器之间交换数据的会话过程以及数据本身的格式。
    • 端口号用来指定客户端要连接的网络服务器的监听端口号。每种网络协议都有一个默认端口号,HTTP 80
      • 如果某种协议的服务器程序使用的是默认端口号,那么在URL中就可以不指定端口号,例:
        htt
        p://www.it315.org/home/welcome.html
    • URL大小写敏感(主机名除外)
       
  • 相对 URL
    • 一个相对的URL不包括协议和主机地址信息,它的路径与当前文档的访问协议和主机名相同。一个完整的URL由基准URL和相对URL组成。
      例:
      http
      ://www.baidu.com/dir1/dir2/index.htmel
      基准URL就是http://www.baidu.com/dir1/dir2/
      相对
      URL就是index.html
  • URL指定参数
    • 参数由参数名和参数值组成。它们之间用(=)连接。只有参数名,没有参数值的情况也是允许的,但参数名后也要跟"=",例"name= ",这相当于参数部分是一个空字符串。
    • URL地址与参数之间用(?)分隔,各个参数用(&)分隔
      例:
      htt
      p://www.it315.org/dealregister.html?name=zhangsan&password=123
    • 一般接收参数的internet资源是一个可在服务器上运行的程序,但在www服务器上可以通过某种方式将之映射成一个普通的HTML文件名格式的URL地址。
  • 带有定位标记的 URL
    • 定位标记都有一个名称。符号(#),可用这个符号后跟定位标记名称,来直接定位到这个网页中的定位标记处。
      例:
      htt
      p://www.it315.org/index.html#section2
  • URL编码
    • http协议浏览器不能向服务器传递某些特殊字符,必须是这些字符进行URL编码后再传送。
    • URL编码遵循下列规则:
    • 将空格转换为加号(+
    • 0~9,a~z,A~Z之间的字符保持不变
    • 对于所有其他字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在前面加上(%),例:字符"+"用"%2B"表示
    • 每个使用GB2312编码的中文字符在内存中占两个字符,例:字符"中"用"%D6%D0"表示
    • 对于空格也可以使用16 进制编码方式,即"%20 "表示,也可以基于第一条。两种方式是对等的

    • 如果确信URL 串的特殊字符在使用上没有歧义也可以不用编码。虽然在URL 编码中规定了除字母和数字之外的字符要转换,但不等于对某个URL 中所有的字符都必须进行URL 编码。

    • 如果URL 串中的特殊字符可能会产生歧义,就必须对这些字符进行编码。例:如果要传递的name 参数为"中& 国",如果不对其中的"& "编码,就会出现下面的形式

    • http://www.it315.org/example/index.html#section2dui
      这个地址前部分(http
      ://www.it315.org/)指定了www服务器地址和端口,后部分(example/index.html#section2dui)指定了浏览器所要访问的资源在这个服务器上的路径名。浏览器通过前部分信息与服务器建立连接,然后通过这个链接将后面的路径名发送给www服务器,请求服务器返回这个路径名所指定的网页文件。说明浏览器只传送了URL后部分的字符给服务器,所以只要对后部分进行编码即可,上面地址改为:
      http
      ://www.it315.org/example%2Findex.html%23section2dui
       
  • mailto URL
    • URL使用的网络协议不只局限于HTTP协议,有时候也会使用到mailto协议的URL。如果想通过一个超链接就启动用户计算机上的邮件发送程序,这个超链接就要指向mailto协议的URL地址。格式如下:
      mailto
      :收件人的E-mail地址
    • 在收件人的E-mail地址后面,还可以使用(?)附带若干参数。这些参数的使用格式与 HTTP一样,其中的字符也可以使用URL编码,但空格只能使用"%20"表示,不能用"+",例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值