URL构成

参考:

快速搞懂URL的构成

URL的各个组成部分详解

URL

简介

URL(Uniform Resource Locator)用于表示互联网上资源(文件)的具体位置

语法

URL的实现符合通用的URI(Uniform Resource Identifier)语法,由五个组件的层次结构序列组成

URI = scheme:[//authority]path[?query][#fragment]

其中authority部分还可分为3个组件

authority = [userinfo@]host[:port]

所以完整的语法如下:

scheme:[//[userinfo@]host[:port]]path[?query][#fragment]

语法解析

  • scheme组件表示传输协议,常用的有http/https/ftp/mailto/file等等
  • authority组件用于指定服务器位置,指定主机名和端口号,还可能包含用户名和密码
    • 如果包含用户名和密码:[//[username[:passwd]]host[:port]]
    • 通常仅指定主机名和端口号:[//host[:port]]
    • 主机名可以用IP地址或者域名表示;如果忽略端口号,表示使用80端口
  • path组件指定资源在服务器中的位置
  • query组件表示查询参数,包含一组查询字符串
    • 其语法没有很好定义,通常是由一个分隔符分隔的一系列属性-值对
    • key1=value1&key2=value2
  • fragment组件表示锚部分,指定文件打开时页面滚动到锚点位置

示例

https://www.zhujian.tech
  • 指定传输协议为https
  • 主机名为www.zhujian.tech
  • 使用默认端口80

https://github.com/zjZSTU/network-guide
  • 指定传输协议为https
  • 主机名为github.com
  • 使用默认端口80
  • 资源路径为/zjZSTU/network-guide

http://localhost:8080/jenkins
  • 指定传输协议为http
  • 主机名为localhost
  • 指定端口8080
  • 资源路径为/jenkins

https://fanyi.baidu.com/?aldtype=16047#zh/en/
  • 指定传输协议为https
  • 主机名为fanyi.baidu.com
  • 使用默认端口80
  • 资源路径为/
  • 查询参数为aldtype=16047
  • 锚点位置为zh/en/