浏览器输入网址之后...

流程

在地址栏中输入url

  • 浏览器是用http还是https访问服务器呢? 如果没有明确告知浏览器是用哪个协议,针对此种情况,浏览器有自己的预案,那就是默认使用http协议,除非小明输入的是 https://zhihu.com
  • 所以输入的网址被浏览器补齐为 zhihu.com

域名解析

  • 浏览器在本地host文件中查找,检查在该文件中是否有相应的域名、IP对应关系,如果有,则向其IP地址发送请求,如果没有,再去找DNS服务器。
  • 由于本地 DNS 服务器没有缓存不能直接将域名转换为 IP 地址,需要采用递归或者迭代查询的方式依次向根域名服务器、顶级域名服务器、权威域名服务器发起查询请求,直至找到一个或一组 IP 地址,返回给浏览器。
  • 浏览器向本地DNS服务器发送查询请求报文,本地DNS服务器把查询报文转发到根DNS服务器,根DNS服务器注意到其com后缀,于是向本地DNS服务器返回comDNS服务器的IP地址。本地DNS服务器再次向comDNS服务器发送查询请求,comDNS服务器注意到其www.yuque.com后缀并用负责该域名的权威DNS服务器的IP地址作为回应,再往下推导。

TCP连接

  • 通过 DNS 解析拿到服务器 IP 地址后,浏览器再通过系统调用 Socket 接口与服务器 443 (https)端口进行通信。
  • 三次握手:客户端发送一个带有SYN标志的数据包给服务端,服务端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息,最后客户端再回传一个带ACK标志的数据包,代表握手结束,连接成功。
  • 如果客户端此前未与服务器建立会话,那么双方需要进行一次完整的 TLS 四次握手。
  • SSL/TLS协议,网站想要实现数据HTTPS加密协议访问,保障数据的安全,就需要SSL证书,TLS是SSL与HTTPS安全传输层协议名称
  • https://www.cnblogs.com/huanxiyun/articles/6554085.html

发送HTTP请求

  • 请求结构:报文首部、空行和报文主体。
  • 请求行作用补充??

服务器处理请求

  • web服务器诸如Apache、Ngnix、IIS等,解析用户请求,知道了需要调度哪些资源文件,再通过资源文件处理用户请求和参数,从数据库查询信息,最后将结果通过web服务器返回给浏览器客户端。
  • 静态资源和动态资源
  • web服务器和应用服务器??

返回响应结果

  • 响应报文
  • 常见状态码

断开连接????

  • 为了避免服务器与客户端双方的资源占用和损耗,当双方没有请求或响应传递时,任意一方都可以发起关闭请求
  • 四次握手

浏览器解析HTML

  • 渲染引擎 Blink(基于 Webkit)和 JavaScript 引擎 V8
  • 浏览器通过解析HTML,生成DOM树,解析CSS,生成CSS规则树,然后通过DOM树和CSS规则树生成渲染树。
  • 浏览器的解析过程并非是串连进行的,比如在解析CSS的同时,可以继续加载解析HTML。
  • 浏览器只能解析静态资源?

页面布局与渲染

  • replaint和reflow

参考:

https://www.cnblogs.com/xianyulaodi/p/6547807.html
https://blog.csdn.net/u013450405/article/details/79563810
https://zhuanlan.zhihu.com/p/43369093
https://segmentfault.com/a/1190000012092552
https://www.jianshu.com/p/c1dfc6caa520

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章