We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
简单的分析,从输入 URL到回车后发生的行为如下:
URL
首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行对应操作
URL的解析第过程中的第一步,一个url的结构解析如下:
url
在之前文章中讲过DNS的查询,这里就不再讲述了
DNS
整个查询过程如下图所示:
最终,获取到了域名对应的目标服务器IP地址
IP
在之前文章中,了解到tcp是一种面向有连接的传输层协议
tcp
在确定目标服务器服务器的IP地址后,则经历三次握手建立TCP连接,流程如下:
TCP
当建立tcp连接之后,就可以在这基础上进行通信,浏览器发送 http 请求到目标服务器
http
请求的内容包括:
当服务器接收到浏览器的请求之后,就会进行逻辑操作,处理完成之后返回一个HTTP响应消息,包括:
HTTP
在服务器响应之后,由于现在http默认开始长连接keep-alive,当页面关闭之后,tcp链接则会经过四次挥手完成断开
keep-alive
当浏览器接收到服务器响应的资源后,首先会对资源进行解析:
关于页面的渲染过程如下:
The text was updated successfully, but these errors were encountered:
之前面字节,这么回答后,后面还被问了反向代理相关,这里我觉得也可以加上
Sorry, something went wrong.
No branches or pull requests
一、简单分析
简单的分析,从输入
URL
到回车后发生的行为如下:二、详细分析
URL解析
首先判断你输入的是一个合法的
URL
还是一个待搜索的关键词,并且根据你输入的内容进行对应操作URL
的解析第过程中的第一步,一个url
的结构解析如下:DNS查询
在之前文章中讲过
DNS
的查询,这里就不再讲述了整个查询过程如下图所示:
最终,获取到了域名对应的目标服务器
IP
地址TCP连接
在之前文章中,了解到
tcp
是一种面向有连接的传输层协议在确定目标服务器服务器的
IP
地址后,则经历三次握手建立TCP
连接,流程如下:发送 http 请求
当建立
tcp
连接之后,就可以在这基础上进行通信,浏览器发送http
请求到目标服务器请求的内容包括:
响应请求
当服务器接收到浏览器的请求之后,就会进行逻辑操作,处理完成之后返回一个
HTTP
响应消息,包括:在服务器响应之后,由于现在
http
默认开始长连接keep-alive
,当页面关闭之后,tcp
链接则会经过四次挥手完成断开页面渲染
当浏览器接收到服务器响应的资源后,首先会对资源进行解析:
关于页面的渲染过程如下:
参考文献
The text was updated successfully, but these errors were encountered: