笔试常考--浏览器输入一个URL点击回车之后发生了什么

  1. 解析URL:浏览器首先对拿到的URL进行识别,抽取出域名字段。
  2. DNS解析

    查询浏览器缓存(浏览器会缓存之前拿到的DNS 2-30分钟时间),如果没有找到,

    检查系统缓存,检查hosts文件,这个文件保存了一些以前访问过的网站的域名和IP的数据。它就像是一个本地的数据库。如果找到就可以直接获取目标主机的IP地址了。没有找到的话,需要

    检查路由器缓存,路由器有自己的DNS缓存,可能就包括了这在查询的内容;如果没有,要

    查询ISP DNS 缓存:ISP服务商DNS缓存(本地服务器缓存)那里可能有相关的内容,如果还不行的话,需要,

    递归查询:从根域名服务器到顶级域名服务器再到极限域名服务器依次搜索哦对应目标域名的IP。

  3. 浏览器与网站之间建立TCP链接(三次握手):

    第一次握手:客户端向服务器端发送请求(SYN=1) 等待服务器确认;

    第二次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);

    第三次握手:客户端收到服务器的回复指令并返回确认(ACK=1)。

    通过三次握手,建立了客户端和服务器之间的连接,现在可以请求和传输数据了。

  4. 请求和传输数据

通过GET请求和服务器的响应,可以将服务器上的目标文件传输到浏览器进行渲染。

5. 浏览器渲染页面

           

客户端拿到服务器端传输来的文件,找到HTML和MIME文件,通过MIME文件,浏览器知道要用页面渲染引擎来处理HTML文件。

            a.浏览器会解析html源码,然后创建一个 DOM树。

在DOM树中,每一个HTML标签都有一个对应的节点,并且每一个文本也都会有一个对应的文本节点。

            b.浏览器解析CSS代码,计算出最终的样式数据,形成css对象模型CSSOM。

首先会忽略非法的CSS代码,之后按照浏览器默认设置——用户设置——外链样式——内联样式——HTML中的style样式顺序进行渲染。

            c.利用DOM和CSSOM构建一个渲染树(rendering tree)。
            渲染树和DOM树有点像,但是是有区别的。

DOM树完全和html标签一一对应,但是渲染树会忽略掉不需要渲染的元素,比如head、display:none的元素等。

而且一大段文本中的每一个行在渲染树中都是独立的一个节点。
            渲染树中的每一个节点都存储有对应的css属性。

            d.浏览器就根据渲染树直接把页面绘制到屏幕上。

原文地址:https://www.cnblogs.com/dayangge/p/8659133.html

时间: 2024-10-11 23:48:08

笔试常考--浏览器输入一个URL点击回车之后发生了什么的相关文章

笔试常考--浏览器性能优化

1. 减少http请求 HTTP是无状态协议,每次HTTP请求都要重新建立通信链路.而服务器端每个http请求都要启动独立的线程来处理.因此,减少http请求能有效提高访问性能. 减少HTTP请求的主要手段是合并CSS,javascript和图片. 2. 使用浏览器缓存 对于Logo.图标.CSS和javascript这些静态资源文件,几乎是每次HTTP请求都需要的,如果将这些文件缓存在浏览器中,第一次加载后,以后就不需要请求了. 通过设置HTTP头中的Cache-Control和Expires

从输入一个url到加载页面发生了什么?

惭愧了,很久之前被面试的时候也有面试官问了我这个问题,但是当时回答的很不满意,于是回头看了很多资料,现在也整理一下. 大致可总结为以下几个步骤: 1. DNS解析. 2. TCP链接. 3. 发送HTTP请求. 4. 服务器处理并且返回HTTP请求. 5. 浏览器渲染界面. 6. 连接结束 一 DNS解析 简单点说就是寻找域名对应的IP的这个过程.在这个过程中经历了一下几个环节,浏览器缓存=>系统缓存=>路由器缓存=>IPS服务器缓存=>根域名服务器缓存=>顶级域名服务器缓存

解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细(转)

原文链接:解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细 题目 一步一步解释一下,在你往浏览器中输入一个URL后都发生了什么,要尽可能详细. 解答 这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的.以下是一个大概流程: 浏览器向DNS服务器查找输入URL对应的IP地址. DNS服务器返回网站的IP地址. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接 浏览器获取请求页面的html代码. 浏览器在显示窗口内渲染H

不定期更新的新问题(http协议当你在浏览器里输入一个url后发生了什么?)

HTTP协议: 超文本传输协议是互联网上应用最为广泛的一种网络协议 https是以安全为目标的http通道,就是http的安全版 为什么会有这个协议呢? 为了建立客户端与服务器的连接,让两者进行沟通 自我理解:让计算机按照规矩说话,你问我答,你怎么问我怎么答,否则计算机会各说各话没办法沟通 http是通过报文进行沟通的 请求报文:请求头.请求行.请求体 响应报文:响应头.响应行.响应体 请求头:Accept:指定客户端能够接收的内容类型.Cache-Control:指定请求和响应遵循的缓存机制.

面试笔试常考的mysql 数据库操作group by

IT 面试中,数据库的相关问题基本上属于必考问题,而其中关于sql语句也是经常考察的一个重要知识点. 下面介绍下sql语句中一个比较重要的操作group by,他的重要行一方面体现在他的理解困难度,一方面体现应用中的长见性. 首先,给出一个studnet学生表: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(30) DEFAULT NULL, `sex` tinyint(1) DEFAU

编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url

编写一个C语言函数,要求输入一个url,输出该url是首页.目录页或者其他url 首页.目录页或者其他url 如下形式叫做首页: militia.info/ www.apcnc.com.cn/ http://www.cyjzs.comwww.greena888.com/ www.800cool.net/ http://hgh-products.my-age.net/ 如下形式叫做目录页: thursdaythree.net/greenhouses--gas-global-green-house-

当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等. 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事- 1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址.DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器

从浏览器输入一个网址,到该页面显示完成,都发生了那些事情?

平常上百度输入www.baidu.com,上google输入www.google.com,之后弹出页面.鬼知道他们经历了什么. 于是开始上网收搜集一些资料,自己总结了一下,其大概流程为: 1.浏览器解析链接执行页面的url 2.浏览器向DNS请求解析www.baidu.com的IP地址 3.域名系统DNS解析出IP为14.215.177.37 4.浏览器与服务器建立起TCP链接(14.215.177.37:80) 5.浏览器初始化一个指向Web容器(类似于Tomcat)的HTTP请求 6.Web

输入一个url发生了什么

DNS解析 TCP连接 发送http请求 服务器处理请求 浏览器解析渲染页面 连接结束 DNS解析 什么是DNS? DNS是一种组织成域层次结构的计算机和网络服务命名系统,他用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换成IP地址的工作.DNS就是这样的一位"翻译官",它的基本工作原理可以用下图来表示. DNS解析过程 检查浏览器缓存中是否缓存过该域名对应的ip地址 如果在浏览器缓存中没有找到ip,那么将继续查找本机系统是否缓存过ip 向本地域名解析服务发起域名解析的请求