浏览器进程

主进程:获取网络资源,下载,创建页面,销毁

渲染进程---渲染GUI线程,JS引擎线程,事件触发线程,定时器线程,异步http请求线程

第三方插件进程

GPU进程

浏览器主进程和渲染进程的通信过程

浏览器主进程收到用户请求,先获取页面资源,如网络资源,下载资源---> 通过渲染主机接口将这个任务传给渲染进程-----〉渲染进程,也就是浏览器内核接收到任务后,会解析数据,然后传给渲染线程GUI进行渲染------>浏览器主进程展示这个渲染结果

渲染线程GUI的操作过程

渲染线程GUI加载网页并且渲染网页,浏览器主进程会进行辅助,如下载资源或者GPU 3d 绘制

如果js引擎操作了dom,则会引起渲染线程的重绘

最后浏览器内核即浏览器渲染进程会将渲染线程的结果传给主进程进行显示

 

浏览器缓存

强制缓存

浏览器第一次访问资源时,服务器除了返回资源,还在响应头加一个cache-control:max-age  public   expire 过期时间点,浏览器收到后根据要求把这个资源缓存起来,浏览器第二次想用这个资源时,会先查一下缓存里有没有,对比一下是否过期,如果没过期就用缓存里的,不发请求了

协商缓存

浏览器第一次访问资源时,服务器除了返回资源,还在响应头加一个last-modified  etag,浏览器收到后根据要求把这个资源缓存起来,浏览器第二次想用这个资源时,会在请求头中加上if-modify-since   if-none-match,服务器收到后回对比一下是否过期或一致,如果没过期就用缓存里的,状态码是304   过期了就重新返回来 状态码是200

体现在network中

from memory cache  强制缓存  资源存在了内存里,如脚本,样式, 图片等,内存容量有限,浏览器页签关闭,内存缓存就会被释放,优点是读取速度快

from disk cahce  强制缓存  资源存在了硬盘中,任何资源都可以强制缓存,相比于存在内存里面,硬盘容量比较大,时效长,缺点是读取速度慢

service worker  独立于浏览器进程之外,可以拦截请求,自由设置哪些资源被缓存,如何取缓存

puch cache

 

DOS攻击

SYN攻击

SYN攻击发生在TCP三次握手过程中

第一次握手,客户端发送seq syn向服务端请求建立连接,第二次握手,服务端收到客户端握手请求信息后,要配资源给客户端发送ack syn seq告知客户端可以连接,并且会等待客户端的第三次握手确认,这个过程中因为服务端要分配资源等待,所以容易遭受syn攻击,如果客户端伪造大量ip向服务端不停发送syn包,那么服务端就要分配资源处理回应客户端,并等待客户端的回应,这些伪造的syn包就会占用未连接队列,导致网络拥塞,正常的syn包也会因为队列满了无法正常连接。