One Day
Python小星问我一个问题
为什么我在公司可以访问后台管理页面?
在家出现下面的画面?
借这个问题,我们简单聊聊 ip协议、url、域名、DNS。
● 两台机器之间是通过什么通信?
相信不少人在自己电脑里安装过数据库,利用可视化工具,通常在“我的SQL主机地址”里填写“localhost”或者“127.0.0.1”,但是如果你的小伙伴要访问你的数据库呢?通常我们在 cmd 中输入命令 ipconfig 查看我们的 ip 地址。
>>> 任意两台主机通信是依靠 IP地址
● url
https://www.toutiao.com/c/user/2299783409577476/#mid=1640528322059271
url 的组成部分:
① 协议:在 internet 中有多种协议,如 http、https、ftp,在“https”后“//”为分隔符;
② 域名:也可以使用 ip 地址 作为域名使用,如 “www.toutiao.com”;
③ 端口:不是一个url必须的部分,如果省略端口部分,将采用默认端口,开发的小伙伴经常会用到 8080 端口;
④ 虚拟目录:不是一个url必须的部分,划分范围为从域名后的第一个“/”开始到最后一个“/”为止;
⑤文件名:不是一个url必须的部分,从域名后的最后一个“/”开始至“?”(或 “#” 或至结束)是文件名部分
⑥参数:参数:从 “?” 开始到 “#”(或至结束)为止之间的部分为参数部分,又称搜索部分、查询部分。参数间用 “&” 作为分隔符
● DNS(Domain Name System)
DNS 域名系统,在 DNS 没有出现以前,通过配置
C:\\Windows\\System32\\drivers\\etc\\ 下的 hosts 文件
DNS 专门用于解析域名得到IP地址
● 域名解析流程
以 的主页为例
https://www.toutiao.com/c/user/2299783409577476/#mid=1640528322059271
① Chrome 浏览器检查自身缓存中是否有对应 ip,如果有,解析结束;
② 检查操作系统中的 hosts 文件(默认是没有配置);
③ 如果还没解析成功,才会真正的请求本地域名服务器(LDNS)来解析这个域名;
④ 如果 LDNS 仍然没有,就直接跳到 Root Server 域名服务器请求解析;
注意: Root Server
⑤ 根域名服务器返回给 LDNS 一个所查询域的主域名服务器(gTLD Server,国际顶尖域名服务器,如.com .cn .org 等)地址;
⑥ 此时 LDNS 再发送请求给上一步返回的 gTLD;
⑦ 接受请求的 gTLD 查找并返回这个域名对应的 Name Server 的地址,这个 Name Server 就是网站注册的域名服务器;
⑧ Name Server 根据映射关系表找到目标 ip,返回给 LDNS;
⑨ LDNS 缓存这个域名和对应的 ip;
⑩ LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束 LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程至此结束;
上述中Python小星在家不能访问公司后台管理页,是因为域名绑定的内网IP ,这样的话,域名只能在内网访问,外网是访问不到的。
>>>
閱讀更多 Python大星 的文章