浅析 URL

124 阅读3分钟

浅析 URL

URL的组成

  • 协议+域名或IP+端口号+路径+查询字符串+锚点

协议

协议(protocol)。我们一般使用的都是HTTP协议和HTTPS协议。协议是为了使数据在网络上从源到达目的,网络通信的参与方必须遵循相同的规则。

域名和IP

IP

IP(Internet Protocol)是网络协议,主要约定了两件事:

  • 如何定位一台设备
  • 如何封装数据报文,以跟其他设备交流

域名

域名是对IP的别称。

  • 顶级域名,比如com
  • 二级域名(俗称一级域名),比如baidu.com
  • 三级域名(俗称二级域名),比如www.baidu.com

可以通过ping一下域名来获得对应的IP,例如ping baidu.com

  • 一个域名可以对应不同的IP(均衡负载,防止一台机器扛不住)
  • 一个IP也可以对应不同的域名(共享主机)

域名和IP通过DNS对应起来

当你要访问一个网站是,浏览器就会先向电信的DNS服务器询问这个域名对应的IP,浏览器在根据IP的对应的80/443端口发送请求,所请求的内容就是你要访问的网站的页面。可以在浏览器的开发者工具的Network面板参看网络访问的全过程。

nslookup域名解析命令

nslookup的基本功能就是解析默认DNS服务器,直接输入nslookup即可。例如nslookup baidu.com

curl命令

可以使用curl命令来找到询问DNS服务对应的IP,例如curl -v www.baidu.com 他的访问过程是这样的:

  1. URL会被curl重写,先请求DNS获得IP
  2. 进行TCP链接,成功后发送HTTP请求
  3. 发送请求内容,获得响应内容
  4. 响应结束,关闭TCP
  5. 真正结束

端口号

一台机器可以提供很多服务,每个服务一个号码,这个号码就是端口号port。

  • 提供HTTP服务最好用80端口
  • 提供HTTPS服务最好用443端口
  • 提供FTP服务最好用21端口
  • 一共有65535个端口

规则

  • 0-1023是留给系统使用的,如果要使用需要有管理员权限,但是不建议使用。
  • 其他的都是可以给普通用户使用的。
  • 一个端口被占用需要更换另一个端口。

路径

使用路径可以实现请求不同的页面

例如:

查询字符串

查询字符串可以做到同一个页面,不同内容。例如搜索页面: www.baidu.com/s?wd=协议 其中/s是路径,后面的?wd=协议 就是查询参数。

锚点

锚点可以做到同一个内容,不同位置。

例如

注意

  • 锚点看起来是有中文的,但是实际上是不支持中文的,如果复制URL之后,就会把中文显示一串字符串
  • 锚点是无法在Network面板看到的,因为锚点不会传到服务器,#和锚点都会被浏览器阻拦。