浅析 URL

568 阅读4分钟

这么近那么远

URL,现代人每天都在使用的东西。没错,就是你现在浏览器最上面那一串长长的字符。

但是,你有思考过URL的含义到底是什么吗?🤔

URL的完整内容

juejin.cn/post/684490…

👆这就是一个完整的URL啦,如果你点击它,会直接我昨天写的《CSS动画知识总结》页面的CSS学习心得部分。

这一串URL

协议❤️

协议分HTTPS和HTTP两种。

HTTP的全称是HyperText Transfer Protocol,

超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议

这个部分我还没有学到😅所以暂且引用MDN里的说明,等学完了再回来修改补充。

域名💛

IP是什么?

域名就是对IP的别称。那么IP又是啥呢?

IP的全称是Internet Protocal,意思是网际协议。IP分为外网和内网。

  • 外网🌍

    为了上网,我们会花钱签约电信运营商对吧。比如生活在日本的我使用的是300多元人民币/月(摔!)的NURO光。

    我家的路由器在连上NURO光的服务器之后,它就会得到一个外网IP,例如[14.17.32.211]。这个外网IP就是我在互联网上的地址啦。

    在这里值得注意的是,如果我重启我家的路由器,那么我很大几率会被重新分配到一个新的外网IP。也就是说我的路由器是没有固定的外网IP的。

  • 内网🏠

    顾名思义就是内部的网,比如说我家路由器在我家里会创立一个内网。

    内网里的所有设备(我的iPhone、iPad、MacBook、我老公的手机、iPad、MacBook、电视、Google Home等等)都会使用内网IP。一般来说这个IP的格式都是192.168.xxx.xxx。

    💡想知道你手机的IP吗?点击WIFI最右边的那个感叹号就可以查看哦~

    路由器是老大嘛,它会按照上面的格式给自己分配一个好记的内网IP,然后给它的小弟们(家里所有联网的电子设备)各分配一个不同的内网IP。

OK,我想到这里你应该已经对IP有一个初步的认识了。那么IP到底跟域名有什么关系呀?🤔刚刚开头说了哟~

域名就是对IP的别称。

IP那一长串数字谁记得呀,把它换成goole.com啊youtube.com之类的是不是方便很多呢?

一个域名可以对应不同的IP(服务器),如果很多人同时访问一个网站的时候,它就可以把不同的用户分给不同的服务器来减轻负担。这个叫做均衡负载。大公司都是有好多处服务器的。

反过来呢,一个IP也可以对应不同的域名。对于一般人来说服务器很贵,怎么办?大家凑钱一起弄个服务器呗,然后用一个服务器服务各自的网站。这个叫做共享主机

如何知道一个域名的IP呢?

那么读到这里,你是不是会有点好奇,自己平时经常在输入的域名都分别对应的什么IP呢?我教你一个查询的办法,那就是

ping google.com

用ping命令行进行查询即可哦!快动手试试吧😊

域名和IP是怎么对应起来的?

你可能会想说,“浏览器是怎么知道我输入的域名对应哪个IP的呀?”比如我在Chrome浏览器输入youtube.com,它怎么知道对应哪个IP哦?

其实,Chrome浏览器也不知道😅它需要向电信运营商(比如我家的NURO光)提供的DNS(域名服务)服务器进行询问,然后NURO光才回答一个IP。Chrome收到这个IP之后,会向这个IP的80/443端口发送请求“请让我查看youtube.com的首页吧!”的请求。

这里再为大家介绍一个有用的命令行

nslookup googole.com

nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。

查询参数💙

让我们想象一下,我们访问掘金(或者在谷歌搜索)的时候,访问都是的同一个页面(路径),但为什么得到的是不同内容(查询结果呀)? 那就是因为查询参数不一样。

锚点💚

大家有没有注意到我最开头说的

如果你点击它,会直接我昨天写的《CSS动画知识总结》页面的CSS学习心得部分

它会直接跳到这个页面的特定部分哦!是如何做到的呢?就是通过#后面的锚点啦。关于URL里的锚点,有两点大家是需要注意的。

  1. 锚点是不支持中文的中文部分的;
  2. 锚点是无法在Network面板看到的!因为锚点不会传给服务器!

总结

呼...小小的一串URL,背后竟然有这么多奥妙。这可是我学习编程之前从来没有思考过的。以后,我在浏览器上网时,就可以想象我输入的这一串字符串将会经历怎样的旅行...

那我们就很快再见啦!See you next time👋