一、 输入导航栏输入网址(jd.com)
二、域名解析
域名解析就是有域名到ip地址的过程,一般分为以下几步:
- 浏览器缓存,浏览器会缓存DNS(Domain Name System,域名系统)一段时间
- 系统缓存,从本机host中查找是否有对应的域名及ip
- 路由器也会缓存域名信息
- ISP(baiInternet Service Provider,即因特网服务提供商) DNS缓存,到互联网服务提供商的DNS里查找缓存,ISP的DNS缓存时间一般是1个小时。前后2次间隔1个小时的话,他就去域名的DNS上重新取得数据。这里说的是最近一次和当前的比较,也就是说如果时间差距较大,就重新去域名的DNS服务器上找。
- 如果按照以上信息都找不到域名信息,就会从域名的根服务器去查找域名对应的ip
三、网络传输通信
三次握手
拿到服务器ip之后要先建立连接才能通信,首先是三次握手。三次握手的目的是“为了防止已经失效的报文突然传输到服务器端,因而导致的错误”
客户端:在吗,想去找你玩呀
服务端:在的,欢迎
客户端:好的马上到
三次握手完成后,客户端与服务端建立稳定的虚拟通道。客户端就可以将一个http请求打包,通过tcp协议发送给服务器
服务器返回
服务器解析,基于linux或者window,系统里面安装了web sever的应用,web sever又叫web服务器,专门处理网上信息浏览服务。
web服务器接收到请求,根据http协议解析并处理,返回响应信息html文档或者其他结果。
有Apach,nigx,Node等web服务器
客户端拿到数据
四次挥手
四次挥手,别名连接终止协议,其性质为终止协议。
通信完成之后通过四次挥手拆除tcp链接,客户端与服务器端均可发起。
四、页面构建阶段
页面构建的目标是为了建立Web应用的UI,页面构建主要分为2个阶段
- 解析HTML代码并构建文档对象模型
- 执行JavaScript代码
浏览器解析DOM时是自上而下的执行,采取深度遍历的策略。当遇到外部css文件或者图片时,会采用异步加载,并不会影响HTML加载。
回流是dom节点和样式都已经加载完成,由于新的样式下载下来或者script脚本执行,生成新的样式,这个过程称为回流。新生成的样式重新写入并更新到页面,这个过程称为重绘。也就是说回流必然导致重绘。
当浏览器在页面构建阶段遇到脚本节点,它会停止执行HTML的DOM构建,开始执行JavaScript代码。
五、总结
刚构思的时候觉得没什么东西,写起来越写越多,还有许多地方需要完善,慢慢补充。如有问题请联系我~