浅析URL

293 阅读3分钟

什么是URL

URL是Uniform Resource Locator的缩写,统一资源定位符,

URL的组成部分

image.png

URL = 协议 + 域名或IP + 端口号[默认省略] + 路径 + 查询参数 + 锚点

例如: baike.baidu.com/search?word…

  • 协议: https
  • 域名: baike.baidu.com
  • 端口: 默认为443端口
  • 路径: /ssearch
  • 查询字符串: ?word=123&pn=0&rn=0&enc=utf8
  • 锚点: #1

协议

主要有HTTP协议和HTTPS协议,HTTP协议默认使用端口号80, HTTPS协议默认使用端口号443

域名

域名就是对IP的别称。

  • 一个域名可以对应多个IP(这个叫做均衡负载,防止一台机器抗不住)
  • 一个IP可以对应不同域名(这个叫做共享主机,穷开发者才这么做)

IP相关

  • IP可以定位一台设备
  • IP分为外网IP(家里的路由器)和内网IP(手机和电脑)
  • 内网中的设备可以相互访问,但是不能直接访问外网
  • 内网设备想访问外网要通过路由器中转
  • 外网中的设备可以相互访问,但是不能直接访问内网
  • 外网想访问内网也要通过路由器
  • ping baidu.com可以查什么域名对应什么IP,以及网站延迟

image.png

IP分为外网IP和内网IP

image.png

特殊的IP地址

  • 127.0.0.1 表示自己
  • localhost 通过host指定为自己
  • 0.0.0.0 不表示任何设备

域名分类

  1. 第一级是顶级域,它包括通用顶级域,例如.com、.net和.org;以及国家和地区顶级域,例如.us、.cn和.tk
  2. baidu.com 便是二级域名
  3. www.baidu.com 是三级域名 所以www.baidu.combaidu.com是两个域名。
    github.io是github的域名, userid.github.io是每个用户的域名

端口号

一台服务器可以提供很多服务,每个服务有不同的号码,这个号码就是端口。

  • 80端口:HTTP服务
  • 443端口: HTTPS服务
  • 21端口: FTP服务

端口的使用规则

  1. 0-1023端口是系统用的,我们一般使用1024以后的端口
  2. 比如http-server默认使用8080端口
  3. 一个端口号被占了就只能使用其他端口
  4. 可以通过-p参数指定不同端口,例如:这样就可以指定使用1023端口
http-server -c-1 -p 1023

路径

如何请求同一服务器上不同网页?
用路径即可
路径是没有必要有后缀的
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…

查询参数

请求同一个页面,能得到不同内容吗?
用查询参数即可
www.baidu.com/s?wd=hi
www.baidu.com/s?wd=hello

锚点

同一内容,不同位置? 用锚点即可
developer.mozilla.org/zh-CN/docs/…
developer.mozilla.org/zh-CN/docs/…
注意
锚点不支持中文,会把中文进行编码
#参考书会变成#%E5%8F%82%E8%80%83%E4%B9%A6
锚点是无法在network上看到的因为锚点不会传给服务器

DNS

DNS是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的,又名域名解析服务器
域名通过DNS与IP对应

如何通过域名找到对应IP

  • nslookup+域名 如nslookup baidu.com可以查找对应多少个IP

image.png