计算机基础知识记录(偏前端)
一、网络知识
1、内网:在内网部署的应用,默认只能用内网地址在同一个局域网内互连互通访问,在外网其他网络环境下是访问不到的。
2、穿透:二点直连方式,如二台电脑网线直通,穿透是不限速的,速度是二端间的较小速度端的速度。
3、映射:一个地址映射到另一个地址,通过某个介质进行中转,常常用于将内网地址映射到外网地址实现外网的访问,速度是本地公网上行和映射服务端分配的较小值速度。
二、一次完整的http请求所经历的7个步骤
1、建立TCP连接
2、Web浏览器向Web服务器发送请求命令
3、Web浏览器发送请求头信息
4、Web服务器应答
5、Web服务器发送应答头信息
6、Web服务器向浏览器发送数据
7、Web服务器关闭TCP连接
三、从浏览器输入url到页面呈现经历了哪些过程
1、DNS解析:
浏览器获取域名,
检查浏览器缓存中是否有该域名的解析,
检查电脑的本地缓存中是否有该解析,
检查host文件中是否有该解析,
向域名解析商发起请求获取解析,并缓存起来
以上步骤只要检查到有相应的DNS解析,就能获取到服务器的ip地址
2、根据TCP/IP协议,浏览器和服务器发起三次握手
3、TCP/IP连接完成后,浏览器发起http请求
4、服务器接收到请求,返回相应的资源(数据或者html文件)
5、解析html,加载相应的静态资源文件(js、css、图片等)
6、浏览器根据自身的机制,生成html DOM树、css DOM树,进行相应的计算和渲染,最终生成页面呈现出来
四、渲染过程(webkit和gecko都差不多)
1、解析HTML,得到一个DOM tree
2、解析CSS,得到CSSOM tree
3、将两者整合成渲染数,render tree
4、布局(layout), 根据Render Tree计算每个节点的位置大小等信息 (在草稿本上画了个草图)
5、绘制(Painting )根据计算好的信息绘制整个页面
注: 1、2、3非常快,但是4和5比较耗时,有三个术语:
“重排” 和 “回流” 指的是重新执行步骤4
“重绘” 指重新执行步骤5
重排意味着重新计算节点的位置大小等信息,重新在草稿本上画了草图,所以一定会重绘
重绘不一定会重排,比如背景颜色改变
重排和重绘代价很高,所以浏览器并不会一有信息改变就去执行重排和重绘,而是会将多个可能的重排和重绘一次执行。是的,它可能会异步。
有两个css属性,display: none和visibility: hidden,前者会导致重排和重绘,后者会导致重绘。这是后者的有点,但缺点是此节点一直保存在内存中,占用资源。