专栏首页轮子工厂在浏览器中输入网址到页面显示出来,这中间到底发生了什么?

在浏览器中输入网址到页面显示出来,这中间到底发生了什么?

一、问题

在浏览器中输入网址,到页面显示出来,中间发生了什么?

二、解答

1、查询DNS,获取域名对应的IP。

(1)检查本地hosts文件是否有这个网址的映射,如果有,就调用这个IP地址映射,解析完成。

(2)如果没有,则查找本地DNS解析器缓存是否有这个网址的映射,如果有,返回映射,解析完成。

(3)如果没有,则查找填写或分配的首选DNS服务器,称为本地DNS服务器。服务器接收到查询时:

  • 如果要查询的域名包含在本地配置区域资源中,返回解析结果,查询结束,此解析具有权威性。
  • 如果要查询的域名不由本地DNS服务器区域解析,但服务器缓存了此网址的映射关系,返回解析结果,查询结束,此解析不具有权威性。

(4)如果本地DNS服务器也失效:

  • 如果未采用转发模式(迭代),本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后,会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP,本地DNS服务器收到顶级域名服务器IP信息后,继续向该顶级域名服务器IP发送请求,该服务器如果无法解析,则会找到负责这个域名的下一级DNS服务器(如baidu.com)的IP给本地DNS服务器,循环往复直至查询到映射,将解析结果返回本地DNS服务器,再由本地DNS服务器返回解析结果,查询完成。
  • 如果采用转发模式(递归),则此DNS服务器就会把请求转发至上一级DNS服务器,如果上一级DNS服务器不能解析,则继续向上请求。最终将解析结果依次返回本地DNS服务器,本地DNS服务器再返回给客户机,查询完成。

2、客户机发送HTTP请求报文:

(1)应用层:客户端发送HTTP请求报文

(2)传输层:切分长数据,并确保可靠性。

(3)网络层:进行路由

(4)数据链路层:传输数据

(5)物理层:物理传输bit

3、服务器端经过物理层→数据链路层→网络层→传输层→应用层,解析请求报文,发送HTTP响应报文。

4、客户端解析HTTP响应报文

5、浏览器开始显示HTML

6、浏览器重新发送请求获取图片、CSS、JS的数据。

7、如果有AJAX,浏览器发送AJAX请求,及时更新页面。

为你推荐以下文章

说几件无关紧要的小事

版本控制之助你开始使用 git 的简易指南

推荐一款特别厉害的在线工具,程序员的百宝箱

我所知道的和学习有关的网站友链全部在这了

知乎:谭庆波

本文分享自微信公众号 - 轮子工厂(Programmer-ing),作者:三颗豆子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 蚂蚁金服Java研发工程师的春招面试经历 | 双非大佬教你如何成为offer收割机

    首先,我的面试经历和一下面霸、收割机大佬相比,不是特别丰富,只是略有感悟,分享这几个月来的心路历程,也让后来者可以借鉴一下而已。

    谭庆波
  • Windows和Ubuntu系统如何远程连接Linux服务器

    因为很多实验都要在工作站上面运行,为了避免拿着装着数据的硬盘在自己电脑和工作站之间来回跑,我简单总结一下在windows和Ubuntu系统下远程访问Linux服...

    谭庆波
  • Linux不同版本的区别以及使用建议

    官网地址:https://www.redhat.com/zh/global/china

    谭庆波
  • Nginx服务不行了怎么办

    我们在使用一个网站的时候,基本都是通过域名进行https数据交互的,服务的负载均衡现在大部分都是通过nginx来进行的。但是大家思考过没,如果用户并发高会出现什...

    林老师带你学编程
  • 什么是DNS?

    DNS可以干什么呢,shiyujun.cn,这个域名大家都知道,我们就浏览器输入域名之后就可以进入我的博客。但是事实上在你进入我的博客之前就走了一遍dns服务把...

    Java学习录
  • DNS基础知识

    辅助域名服务器:和Master一起提供DNS服务,当Master服务器上的配置信息修改的时候,会同步更新到Slave服务器上。

    二狗不要跑
  • DNS的解析原理和过程

    DNS的解析原理和过程: 在Internet上域名和IP是对应的,DNS解析有两种:一种是正向解析,另外一种是反向解析。 正向解析:正向解析就是将域名转换成对应...

    Denmark
  • 最全面的 DNS 原理入门

    DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。

    哲洛不闹
  • 应用层体系结构与协议

    应用层是开放系统的最高层,是直接为应用进程提供服务的,作用是在实现多个系统应用进程互相通信的同时,完成一系列业务处理所需的服务。我们平时使用的应用程序就在这一层...

    搬砖俱乐部
  • Mac下关于DNS服务器的终端操作汇总

    Mac中有时候我们需要调整DNS来处理一些事情,作为终端控,使用终端调整DNS顺理成章,如下为一些关于DNS服务器终端处理的记录。

    技术小黑屋

扫码关注云+社区

领取腾讯云代金券