Edge浏览器作为Windows系统的默认浏览器,每天默默记录着我们的上网足迹。你可能不知道,这些数据就安静地躺在你电脑的某个角落。具体路径是C:\Users\你的用户名\AppData\Local\Microsoft\Edge\User Data\Default。这个目录下藏着几十个文件,其中不少都是SQLite数据库文件。
我最近用Navicat打开了这些数据库文件,发现了一些有趣的事情。比如在History这个数据库里,有张表叫urls,它详细记录了你访问过的每个网页的URL、标题、访问次数、最后访问时间等信息。更厉害的是,还有张表叫visits,连你在每个页面停留了多久都记得清清楚楚。
不过这些数据并不是集中存储的,而是分散在多个数据库文件中。比如书签存在Bookmarks文件里,下载记录在History数据库的downloads表中,而Cookie则存放在Cookies数据库。这种分库分表的设计可能是出于性能考虑,但确实给我们查看完整数据带来了些麻烦。
History数据库是最值得研究的。里面的urls表结构是这样的:
id: 自增主键url: 访问的网页地址title: 网页标题visit_count: 访问次数last_visit_time: 最后访问时间戳hidden: 是否隐藏而visits表则记录了更详细的行为数据:
id: 自增主键url: 关联的URL IDvisit_time: 访问时间戳from_visit: 来源访问IDtransition: 页面跳转类型这里的时间戳都是17位的WebKit/Chrome时间戳,需要特殊处理才能转换成可读格式。我通常用这个公式转换:(timestamp/1000000)-11644473600,这样就能得到Unix时间戳了。
Cookies数据库的结构相对简单,但数据都是加密的。主要表是cookies,包含这些字段:
host_key: 域名name: Cookie名称value: 加密的Cookie值path: 路径expires_utc: 过期时间is_secure: 是否HTTPSis_httponly: 是否HTTP OnlyEdge使用了AES加密算法保护Cookie值,没有浏览器本身的密钥是解不开的。这算是微软在隐私保护上做的一个不错的设计。
这是最简单的方法,适合临时修改。右键Edge快捷方式,选择"属性",在"目标"字段末尾添加:
code复制--user-data-dir="D:\EdgeData" --disk-cache-dir="D:\EdgeCache"
注意参数前要有空格。这样启动的Edge就会把数据存到指定目录了。不过这个方法有个缺点:每次浏览器更新都可能重置快捷方式。
更稳定的方法是使用组策略:
gpedit.mscmsedge.adm文件这里可以设置"设置用户数据目录"和"设置磁盘缓存目录"两个策略,启用后输入目标路径即可。这个方法在企业环境中特别实用。
对于没有组策略的家庭版Windows,可以修改注册表:
regeditHKEY_LOCAL_MACHINE\SOFTWARE\Policies\MicrosoftEdge的项(如果不存在)Edge下新建字符串值:
DiskCacheDir:设置缓存目录UserDataDir:设置数据目录这三种方法中,注册表法的优先级最高,命令行法最低。我建议在企业环境中使用组策略,个人电脑用注册表法更稳妥。
虽然这些数据很方便,但也存在隐私风险。我有几个实用建议:
首先,定期清理历史记录。可以在Edge设置中找到"隐私、搜索和服务",选择"选择要清除的内容",勾选需要清理的数据类型。更彻底的方法是直接删除User Data目录下的文件,不过要注意先关闭浏览器。
其次,考虑使用便携版Edge。微软官方提供了Edge的便携版本,所有数据都会保存在程序目录下,重装系统也不会丢失,而且方便携带。
对于开发者来说,如果需要在程序中读取这些数据,建议使用Edge提供的官方API而不是直接操作数据库文件。微软最近推出了WebView2控件,提供了更规范的接口来获取浏览数据。
最后,重要数据记得备份。最简单的办法就是定期复制整个User Data目录到安全的地方。恢复时只需要关闭Edge,用备份覆盖原目录即可。我每个月都会备份一次,已经靠这个习惯挽救过好几次误删的书签了。