浅析 URL

229 阅读3分钟

何为URL

  • 全称Uniform Resource Locator(统一资源定位符),由Tim Berners-Lee(李爵士)发明。
  • 完整URL = 协议 + 域名或ip + 端口号 + 路径 + 查询字符串 + 锚点

image.png

为什么要有URL

首先,有了网络,有了浏览器,如果想访问网络上的资源怎么办?这时就需要一个方法来将网络上的资源定位, 于是就有了URL,虽然最初的URL可能不是这个样子,但是最终样子是这样,肯定是通过大量验证,认为设计成这样是最合理的,所以记住这个就行了。

组成部分

  1. 协议:一个东西如果复杂化了,没有协议的话,绝对是不行的。这个协议就相当于是一个严格的规定,让网络传输双方都按这个规定传输数据。常见"应用层"协议有http https ftp
  2. ip:网络上的ip地址,相当于身份证号码,能进行准确定位。
  3. 域名: ip地址那么长一串数字根本就不方便记忆,于是就有了替代品:域名。
  4. 端口号:获取资源是需要有一个服务器程序来进行工作的,这个程序需要一个端口来与其他程序进行区分。
  5. 路径:相当于电脑上文件夹一样,需要什么就去哪里找
  6. 查询字符串:指定查询内容
  7. 锚点:当请求数据返回浏览器后,浏览器可以通过这个锚点进行页面定位,格式#xxx 在浏览器输入地址时,协议和端口可以省略,浏览器会自动添加http协议与默认端口80

DNS

全称Domain Name System(域名系统),这个系统就是专门用来将ip地址与域名进行映射的。
上面说到了在URL中ip的替代品域名,这个域名不是随便的一串字母,需要去专门的域名购买网站上去购买,然后与公网ip进行绑定,才能使用。最常用的时电信的域名系统,所以通过域名的方式去搜索,需要通过第三方DNS服务器,这第三方可以进行dns劫持对域名造成污染,就是添加广告。

IP

全称Internet Protocol(网际互连协议),是网络层协议的协议。现在主流是ipv4,由32个二进制数字组成,但是马上就要用完了,所以现在在开始部署ipv6了,由128位十六进制数字组成。ipv6地址庞大到可以让地球上每一粒沙子都有一个ip地址!!!

域名语法

域名虽然看起来是一串字母,但是还是有一定的语法。

  • 域名由多个部分组成,这些部分通常连接在一起,并由点分隔,例如www.baidu.com
  • 域名里的英文字母不区分大小写,因此可以使用大写方法拼写,但一般都以小写形式拼写(有时为了区别i和L,将L改为大写)
1. 域名是从右向左看的:例如baike.baidu.com
com是顶级域名,baidu是二级域名,baike是三级域名
2. 还有一个与常见问题www.baidu.com与baidu.com是不是一样的?
当然不一样,前面是三级域名,后面是二级域名,你说浏览器为什么输入这两个地址都能 访问到,是因为在给域名设置时添加了两条解析记录,一个带www,另一个记录什么也不设置。

两个控制台命令

ping

ping命令可以用来测试本机地址是不是能到达目标地址。

  • ping域名时,会先去DNS获取到ip地址然后再ping
  • 有时候ping同个域名返回的ip地址不一样,是因为该公司对此域名进行了负载均衡
  • ping -n count ip地址/域名 (指定ping几次,windows上默认是ping 4次)

curl

用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

  • curl -v 域名/ip (显示完整请求的过程,与响应内容)