在浏览器中输入url回车之后会发生什么

在浏览器中输入URL之后,浏览器会经历以下5个步骤:

1.解析URL

2.DNS域名解析

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

4.请求和传输数据

5.浏览器渲染页面

一、解析URL

什么是url:

URL(Universal Resource Locator) 同一资源定位符,俗称网页地址或者网址,用来表示某个网页资源的地址

URL主要由一下几个部分组成:
1、传输协议

2、服务器

3、域名

4、端口

5、虚拟目录

6、文件名

7、参数

8、锚

也就是说通常的url是这样的

连起来就是这样的 http://www.baidu.com:8021/pages/index.html?id=3&page=1#/name

我们见到的网站都是部署到线上的,一般不会显示端口号,‘?’到‘#’之间显示的是参数,多个参数用&隔开,‘#后面显示的是锚’。

当在浏览器中输入URL后,浏览器首先对拿到的URL进行识别,抽取出域名字段

二、DNS域名解析

DNS域名解析实际上是域名和IP对应的一个数据库

IP地址我们一般都难以记住,但是机器之间可以相互识别IP地址,于是人们发明了域名,让域名与IP地址之间一一对应,而他们之间的解析工作就称为域名解析,域名解析需要由专门的域名解析服务器来完成,这个过程是自动进行的。

在浏览器中可以输入IP地址来浏览网站,也可以输入域名来浏览网站,虽然得到的内容是一样的,但是调用的过程不是一样的,输入IP地址是直接从主机上调用地址,而输入域名是通过域名解析器指向对应的IP地址,再从主机调用内容。

在进行DNS域名解析时会经历以下几个步骤

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

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

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

查询IPS DNS缓存 IPS服务商DNS缓存(本地服务器缓存)在这里可能有相关的内容,如果还是没有就要

递归查询 从根域名服务器到顶级域名服务器再到权限域名服务器依次搜索域名对应的IP

HTTP访问服务器

通过以上的查找就可以获得域名对应的IP了,接下来就是向该IP地址定位的HPP服务器发起TCP链接了

三、浏览器与网站进行TCP连接(三次握手)

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

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

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

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

四、请求和传输数据

比如通过get请求访问"http://www.cnblogs.com/",通过浏览器的networ可以看见:

请求的网址(‘url‘): https://www.cnblogs.com/

请求方式: GET

远程地址: 42.121.252.58:443

状态码: 200 OK

请求头 .......

响应头 .......

请求头中包含了一个cookie信息,Cookie如果是首次访问时,会提示服务器建立用户缓存信息,如果有cookie,可以利用cookies对应的键值,找到相应的缓存,缓存里面存放着用户名,密码,和一些用户设置.

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

五、浏览器渲染页面

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

1.浏览器会解析html远吗,然后创建一个DOM树.

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

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

首先会忽略不合理的css代码,之后会按照浏览器默认设置 --> 用户设置 --> 外链样式 --> 内联样式 --> HTML中的style样式顺序进行渲染.

3.利用DOM和CSSDOM构建一个渲染树(rendering tree)

渲染树和DOM树有点类似,单还是有所区别

DOM树完全和HTML标签一一对应,但是渲染树会忽略掉不需要喧嚷的元素,比如head,display:none的元素,而且一大段文本中的每一行在渲染树中都对应一个节点,渲染树中每一个节点都存储着对应的css属性

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

时间: 2024-10-23 14:23:35

在浏览器中输入url回车之后会发生什么的相关文章

在浏览器中输入URL并回车后都发生了什么?

1.解析URL ________________________________________________________________________ 关于URL: URL(Universal Resource Locator):统一资源定位符.俗称网页地址或者网址. URL用来表示某个资源的地址.(通过俗称就能看出来) URL主要由以下几个部分组成: a.传输协议 b.服务器 c.域名 d.端口 e.虚拟目录 f.文件名 g.锚 h.参数 也就是说,通常一个URL是像下面这样 连起来

在浏览器中输入URL按下回车键后发生了什么

在浏览器中输入URL按下回车键后发生了什么 [1]解析URL[2]DNS查询,解析域名,将域名解析为IP地址[3]ARP广播,根据IP地址来解析MAC地址[4]分别从应用层到传输层.网络层和数据链路层分别加入各个层的头部封装为包[5]进行三次握手后,客户端与服务器建立连接[6]客服务器向客户端返回数据,浏览器接收到数据[7]浏览器开始渲染页面 补充:浏览器渲染页面详解 [1]由从服务器接收到的html形成DOM[2]样式被加载和解析,形成css对象模型CSSOM[3]DOM和CSSOM创建一个渲

深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1

背景 “从浏览器中输入URL到页面加载的发生了什么“,这是一道经典的面试题,涉及到的知识面非常多,但作为一个自认为对网络知识掌握的比较好的老码农来说,回答这个问题自然不在话下.如果这道题目如果在面试出现,对我来说就是送分题啊.尽管如此,我还是愿意花一些时间根据我自己的理解回答一下这个题目,看我自己到底掌握的有多深,同时也把自己的知识梳理一下. 这让我想起另外一件往事,这道题有点类似于“在手机上浏览器上输入一个URL,手机做了一些什么”,我当时学习通信里的核心网时就给自己提出过这个问题. 我非常愿

浏览器中输入URL到返回页面的全过程

第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等.如果有缓存,直接返回IP,否则下一步. (2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件.如果找到,直接返回IP,否则下一步.(在计算机本地目录etc下有一个hosts文件,hosts文件中保存有域名与IP的对应解析,通常也可以修改hosts科学上网或破解软件.) (3)进行了(1)(2)本地查询无果,只能借助于网络.路由器一般都会有自己的DNS缓存,ISP服务商DNS缓存,这时一般都能

在浏览器的地址栏中输入url后发生了什么

这是一个非常有意思的事情,通过这个我们可以更好地理解http请求. 在浏览器的地址栏中输入url后会经历下面的步骤: 第一步:进行域名解析--- 浏览器搜索自身的DNS缓存,如果有缓存,再看有没有过期,如果没过期,就是用这个ip,如果过期,这个过程就结束了. 注:查看谷歌浏览器的dns缓存的方法--在地址栏中输入chrome://net-internals/#dns 这样就可以看到自己的浏览器中的dns缓存. 第二步:如果浏览器没有搜索到自身的dns缓存或者是自身的dns缓存已经失效,那么它就会

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

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

在浏览器地址栏中输入URL后发生了什么

在浏览器地址栏中输入URL后发生了什么 基本流程: ①查询ip地址 ②建立tcp连接,接入服务器 ③浏览器发起http请求 ④服务器后台操作并做出http响应 ⑤网页的解析与渲染 详细步骤如下: 查询ip地址 ①浏览器解析出url中的域名. ②查询浏览器的DNS缓存. ③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址. ④hosts中无,则查找本地DNS服务器(运营商提供的DNS服务器)有无对应的DNS缓存. ⑤若本地DNS没有DNS缓存,则向根服务器查询,进行递归查找

当输入URL后,会发生什么[转]

当输入URL后,会发生什么 本文转载自:http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html原文翻译自:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等.本文将更深入的

在浏览器中输入网址后是怎么跳转到指定的服务器的

1. 首先,在浏览器里输入要网址 2. 浏览器查找域名的IP地址 DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间. 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等). 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname).这样便可获得系统缓存中的记录. 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存. ISP