- 浏览器补全地址和DNS对域名进行解析;
1>当搜索baidu.com,实际访问的是http://www.baidu.com,浏览器会补全地址。
因为一个URL由协议、主机名、路径、搜索内容、哈希组成。
2>DNS解析过程:客户机先插本地缓存,找不到再将域名发到DNS服务器,它先查它管理的区域,如果就查本地缓存,还找不到就发送给根域名DNS服务器。
根域名解析请求域名的根域部分,把下一级域名信息的DNS服务器地址返回给客户机的DNS服务器地址。客户机DNS服务器利用根域名返回的DNS服务器地址一级一级查找DNS服务器地址。最终能在模板DNS服务器上找到相应的IP地址。 - 建立TCP连接(三次握手);
第一次
第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次
第二次握手:服务器收到syn包,必须确认客户端的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
确认syn包都是回复ack以顺序号seq+1
第三次
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念。
-
发送HTTP请求;
浏览器把请求包装成请求报文,如GET/HTTP/1.0,当然请求也可能是POST。
头部信息:User-Agent Hos成对出现
主体:请求头部和主体之间有一个回车换行。如果是get请求,则没有主体部分,post有请求主体。 -
服务器处理请求;
返回数据,比如请求的资源,一般是html页面。 -
返回响应结果;
返回给客户端状态码。如果有错误,直接显示在页面上。
1XX被接收,继续处理
2XX成功
3XX:重定向错误
4XX:如404,属于客户端错误。
5XX:服务器错误状态,一般是编码错误 -
关闭TCP连接(四次挥手);
对于一个已经建立的连接,TCP使用改进的四次挥手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下:
第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。
第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。
第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。
第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。 -
浏览器解析HTML;
浏览器通过解析HTML,生成DOM(文档对象模型 Document Object Model)树(是一种HTML元素的树形数据结构),解析CSS,生成CSS规则树,然后通过DOM树和CSS规则树生成渲染树。渲染树与DOM树不同,渲染树中并没有head、display为none等不必显示的节点。文章来源:https://www.toymoban.com/news/detail-577489.html -
浏览器布局渲染;
把html解析完,并且加载脚本文件,执行样式等,显示前端文件效果。
html解析->外部样式、脚本加载->外部样式执行->外部脚本执行->html继续解析->dom树构建完成->加载图片->页面加载完成文章来源地址https://www.toymoban.com/news/detail-577489.html
到了这里,关于在浏览器中输入URL后都会发生什么的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!