从应用层到实体层的协议太多了,我们并不能一一涉及,目前来说就打算整理可能会与前端相关的协议.

前端面试常会问到一个问题-"从输入一个url到页面渲染经历了哪些过程".这其实是一个相当复杂的过程,所以总结的时候常常是归纳了几个重要的步骤.而这次我将尝试通过结合协议的方式去理解它们.

URL组成

首先,我们需要先了解网址的组成.举例说明

未解析版

https://i.cnblogs.com/posts/edit

https----->https协议
i.cnblogs.com --- 域名
/posts/edit 路由

解析版

(不代表实际地址,我瞎编的一个,只是为了说明组成)

https//192.168.1.255:443/index.html

https ---->https协议
192.168.1.255---->IP地址
443 ---->端口号
index.html---->文件路径

所以我们可以大概知道URL有这些组成,协议(http或者https协议)、IP地址、端口号、路径.那么,结合URL,我在之前前端路由那里已经大概解释了,路由为啥指向index.html静态资源路径,剩下的就需要知道域名是怎么解析成IP的,https是干嘛用的,端口号是怎么来的.

DNS协议

DNS为域名系统,其重要功能是域名转IP.在互联网中,每台计算机都会分到一个IP地址,我们可以通过IP地址去访问这些计算机,得到相关服务.而DNS就是关了管理域名和IP的系统.

首先,我们了解一下域名的组成.

i.cnblogs.com

而它的实际域名是

i.cnblogs.com.root

DNS是分级查询的,而域名的每个点都是一个分级.

      ".root":是根域名,因为大家都是这个根域名,所以就隐藏了.

".com":顶级域名,其他还有".cn"之类的

".cnblogs":次级域名,可以自定义

"i":三级域名或者主机名,如果不加,默认是"www"

DNS的解析就是按这种分级进行解析的.

DNS

1.当你输入一个域名的时候,计算机会先去本地的hosts文件中找有没有对应的映射关系,如果有就直接拿到对应id,没有就去到DNS解析器(具体作用就是将在完整合规的域名请求信息上再加几个信息,),之后再

2.查看本地DNS缓存,这些缓存可以会分存在很多地方,最主要的是DNS解析器和浏览器缓存中.比如你成功访问过一次某网站了,浏览器就可能把这个域名和ip的映射保存起来,下次输入相同域名时就可直接获取.到目前为止都没有向DNS服务器发请求.假如以上步骤都没找到,则

3.向DNS服务器发送请求,关于DNS服务器的工作流程如下.

1):首先会向本地DNS服务器发请求,这个本地并不是说在自己电脑上,而是给你指定的服务器.我们window+r ,然后输入cmd,然后再ipconfig/all 能看到我们的网络信息,其中有个就是DNS服务器的ip地址,这个就是咱们的本地DNS服务器,也就是"专门对你负责的",所以当它找到对应ip返回给我们时,这个域名解析是有权威性的.当本地DNS服务器没有对应的映射时,便会求助外界.

2):本地DNS服务器有内置根域名服务器对应的ip地址,目前全世界有13个根域名服务器,本地DNS服务器内部可能对应其中的多条.接下来便进行DNS的分级查询.查询的流程如下

         a):先向这些根服务器发送一个".com"的搜索条件,然后可能有多条信息,告诉本地服务器我们都有相关信息.但是本地DNS服务器只会保存首先回复的根域名服务器的相关信息,并且不再向其他根服务器发送信息.

             b):根服务器下面管理着许多下一级服务器.当本地服务找到对自己负责的根服务器时,便会再给它发一个".cnblogs.com"的请求.而该根服务器则会返回一个列表,告诉本地服务器有哪些服务器有相关信息,并把对应服务器的ip给出来.

             c):本地服务器拿到对应ip之后便会去请求,发送"i.cnblogs.com"请求,对应服务器将会给出一条或者多条信息.如果是多条,将会有多个ip,每条对应每个ip,也就是是这一个域名对应了多条ip,而这些ip理论上都是可以访问的.

                  假如这个服务器并没有"i.cnblogs.com",那本地服务器则会拿到另一个服务器去查,知道把所有次级服务器查完或者查到想要的ip为止.

            d):转发.以上的三个步骤已经是个完整的流程了,但是转发是一直新规则.默认情况下,当本地DNS服务器没解析成功时会向根服务器发送请求,然后逐级往下.这个顺序.但是转发是可以打破这种顺序的.它可以让服务器直接去向指定服务器发送请求,不必循规蹈矩.但是前提是必须安装转发器,并且配置了转发目标服务器ip.

到目前为止我们只是解析了ip,拿到了如下的地址

https//192.168.1.255/index.html

下一篇我们再分析https

参考文献:

阮一峰网络日志:DNS原理入门

DNS的工作原理及解析

前端浅谈-协议相关(DNS协议)的更多相关文章

  1. 网络协议 16 - DNS 协议:网络世界的地址簿

    [前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...

  2. 前端浅谈-协议相关(http/https)

    当DNS工作完之后得到了一个网址 https//192.168.1.255/index.html 这个并不符合标准的请求路径.接下来就是https的功能了.讲https前先讲讲它的前身http协议 H ...

  3. 前端浅谈---协议相关(TCP连接)

    TCP连接 http的描述里面,我弱化了交互过程的描述,因为它相对复杂.所以我在此单独描述.客户端和服务端传递数据时过程相对谨慎和复杂,主要是开始和结束的过程.而这整个过程就是TCP连接.连接流程大体 ...

  4. 浅谈iOS开发的协议(protocol)和代理(delegate)

    协议和代理对于一个新手来说确实不讨好理解,也有很多的iOS开发的老手对此是懂非懂的.网上的很多博文只是讲了怎么使用,并没有说的很明白.下面我谈一下我的理解. 1.你要先搞明白,协议和代理为什么会出现, ...

  5. 浅谈 Raft 分布式一致性协议|图解 Raft

    前言 本篇文章将模拟一个KV数据读写服务,从提供单一节点读写服务,到结合分布式一致性协议(Raft)后,逐步扩展为一个分布式的,满足一致性读写需求的读写服务的过程. 其中将配合引入Raft协议的种种概 ...

  6. 网络协议 16 - DNS 协议

    为什么在地址栏输入域名,就能直接访问到对应服务器?全局负载均衡和内部负载均衡又是什么?这些都和 DNS 解析息息相关,让我们一起来解密 DNS 解析.     其实说起 DNS 解析,应该都知道它很像 ...

  7. Web 前端 - 浅谈外部手动控制 Promise 状态

    前言 当有多个共享资源.协同操作的时候,往往需要根据动态亦或是复杂的条件以控制和调用程序逻辑. 还是那句话,懂的人自然懂,不懂的人也搜不到这个随笔. 设计 PendingPromise<T> ...

  8. 前端浅谈-Js的组成

    这里主要想详细的分析一下浏览器渲染过程,但东西比较多.所以分成多个部分. JS由三个部分组成,分别为ECMAScript.BOM.DOM. 其中BOM是浏览器层面的东西,而DOM是页面层面的东西.简单 ...

  9. 网络协议 19 - RPC协议综述:远在天边近在眼前

    [前五篇]系列文章传送门: 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - DNS 协议:网络世界的地址簿 网络协议 17 - HT ...

随机推荐

  1. R数据分析:跟随top期刊手把手教你做一个临床预测模型

    临床预测模型也是大家比较感兴趣的,今天就带着大家看一篇临床预测模型的文章,并且用一个例子给大家过一遍做法. 这篇文章来自护理领域顶级期刊的文章,文章名在下面 Ballesta-Castillejos ...

  2. 1-Introduction(介绍)

    目录: 正文: (一)機器學習就是让机器自動找函式 语音/图像识别 (二)你想找什麼樣的函式? (2.1)Regression 找出的函数其输出是一个数值 (2.2)Classification (2 ...

  3. [bzoj5510]唱跳rap和篮球

    显然答案可以理解为有(不是仅有)0对情况-1对情况+2对情况-- 考虑这个怎么计算,先计算这t对情况的位置,有c(n-3t,t)种情况(可以理解为将这4个点缩为1个,然后再从中选t个位置),然后相当于 ...

  4. [loj6271]生成树求和

    将每一位拆开考虑,即不妨假设$0\le c<3$ 考虑矩阵树定理,即统计所有生成树边权乘积的和,但我们这里要将边权相加,很明显将其作为幂次(如果作为$cx+1$无法对3取模) 更具体的,也就是将 ...

  5. [loj3339]美食家

    令$f[i][j]$表示第$i$个时刻走到点$j$的最小时间,暴力的$dp$复杂度为$o(tm)$ 如果没有限制,由于$w\le 5$,记录前5个时刻的状态即可求出当前状态,用矩阵乘法可优化到$o(n ...

  6. 【NetWork】-- 网络原理

    2019-07-18  21:00:25  by冲冲 1. 网络拓扑 把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构(Network T ...

  7. TCP、三次握手、四次挥手(图解)

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议,为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传 ...

  8. Kubernetes:了解 Deployment

    本文为作者的 Kubernetes 系列电子书的一部分,电子书已经开源,欢迎关注,电子书浏览地址: https://k8s.whuanle.cn[适合国内访问] https://ek8s.whuanl ...

  9. Codeforces 997D - Cycles in product(换根 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 一种换根 dp 的做法. 首先碰到这类题目,我们很明显不能真的把图 \(G\) 建出来,因此我们需要观察一下图 \(G\) 有哪些性质.很 ...

  10. 洛谷 P3307 - [SDOI2013]项链(Burnside 引理+数论)

    题面传送门 看到题目我们显然可以将题目拆分成两部分:首先求出有多少个符合要求的珠子 \(c\),这样我们就可以将每种珠子看成一种颜色,题目也就等价于有多少种用 \(c\) 种颜色染长度为 \(n\) ...