得鹿梦鱼 得鹿梦鱼

资源加载和网络栈

webkit资源加载机制

资源

  • html页面
  • javascript代码
  • css样式表
  • 图片
  • svg
  • css shader
  • 视频、音频和字幕
  • 字体文件
  • XSL样式表 渲染XML文件

资源缓存

建立一个资源的缓存池,当需要请求资源时,先从资源池中查找是否存在相应的资源,如果有,则从缓存池中取出使用,负责创建CachedResouce子类去请求对象,然后加入缓存池中,以便下次使用

webkit从资源池中查询资源的关键字是url,因为标记资源唯一性的特征就是资源的url

资源加载器

种类

  • 针对每种资源类型的特定加载器
  • 资源缓存机制的资源加载器 cachedResourceLoader
  • 通用资源加载器 resouceLoader

过程

过程

资源的生命周期

资源池的使用机制(LRU)最近最少使用算法

chromium多进程资源加载

多进程的资源加载机制

Renderer进程在网页的加载过程中需要获取资源,但是由于安全性和效率上的考虑,renderer进程的资源获取实际上是通过进程间通信将任务交给browser进程来完成,browser进程有权限从网络或者本地获取资源

工作方式和资源共享

资源请求有同步和异步两种方法

工作方式

网络栈

  • cert 证书管理
  • cookies
  • dist_cache 磁盘本地缓存
  • dns 域名解析和优化
  • ftp ftp协议相关
  • http http协议相关
  • proxy 代理的相关配置
  • socket tcp socket的管理
  • ssl ssl安全机制的支持
  • udp udp协议相关
  • url_request
  • websocket
  • android 针对android的特殊网络处理