浏览器输入url访问网站的全过程
网络通信
互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。
分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。如图所示
在浏览器中输入url
在浏览器中输入的是一个网址,是不能直接用来进行连接的,因而就要使用DNS地址解析将输入的URL网址转换为IP地址。
浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有则在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址
建立TCP连接
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.
第一次握手:建立连接时,client发送syn包到server
第二次握手:server收到client的syn包,使用ack回复client的syn包,同时server也会发送syn包.所以server回复ack+syn
第三次握手:client收到server的syn+ack包,使用ack确认服务器的syn包
至此,完成三次握手,client与server完成TCP连接的建立
浏览器(应用层客户端)发送http请求
http请求信息由3部分组成:
请求方法URI协议/版本
请求正文
TCP传输报文(传输层)
位于传输层的TCP协议为传输报文提供可靠的字节流服务。 它为了方便传输,将大块的数据分割成以报文段为单位的数据包进行管理,并为它们编号,方便服务器接收时能准确地还原报文信息(MTU)。
TCP协议确认保证传输的安全可靠的方式:
服务器返回响应的文件
client收到http的response,使用http协议解析 Http Response:
HTML构建DOM树 –> 解析css构建渲染树 -> 加载js -> client和server通过ajax交互
本文分享自 javascript艺术 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!