Python 闲谈 11 -- 开发不得不知道的网络基础--域名

Python 闲谈 11 -- 开发不得不知道的网络基础--域名

One Day

Python小星问我一个问题

为什么我在公司可以访问后台管理页面?

在家出现下面的画面?

Python 闲谈 11 -- 开发不得不知道的网络基础--域名

借这个问题,我们简单聊聊 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 文件

Python 闲谈 11 -- 开发不得不知道的网络基础--域名

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 ,这样的话,域名只能在内网访问,外网是访问不到的。

>>>


分享到:


相關文章: