OldWeb.today(OWT)是一个将模拟的Web浏览器连接到Web档案的系统,允许用户如今浏览旧的Web!

(屏幕截图:https://oldweb.today/?browser=ns3-mac#19960101/http:/http://geocities.com/)
OldWeb.today允许用户使用几个模拟浏览器之一以及Flash Emulator浏览Web,所有这些都可以在浏览器中完全运行!
输入URL,选择档案日期,然后选择浏览器启动!
用户可以浏览实时网站,当前网站,或连接到Web档案 / Wayback机器,并直接从档案中加载内容。
有关浏览器的最新列表,请参见OldWeb.today。目的是支持Common(Netscape,IE等)以及其他鲜为人知但著名的浏览器在网络历史上。
如果您想看到受支持的浏览器,或者想贡献浏览器,请打开问题!
Netscape和IE的大多数版本都在OldWeb.today中提供了早期版本的Java。
Java 1.0应该在Netscape 3中工作,Java 1.1应在Netscape 4(Windows)和IE 5和IE 6中工作。
Netscape和IE还应安装最新的Flash版本。对于MAC浏览器,这通常意味着冲击波4。
IE 6浏览器具有Flash 9,这是安装Win98上运行的最新版本的Flash。
Oldweb.today还使用本机浏览器直接支持荷叶边闪光灯模拟器。
在此模式下,您可以启用荷叶边的模拟器浏览任何实时或存档的网站。
该当前版本完全在JavaScript中运行,使用模拟器运行Windows,MacOS和完整的网络堆栈。一切都在您的浏览器中运行,而Oldweb.today可以作为静态站点托管。由于访问外部档案的CORS限制,使用了远程CORS代理。
OldWeb.today的版本是通过建立和结合其他人创建的许多出色工具的作用,包括:
这些模拟器中的每一个都经过修改(此处和此处),以使用由模仿创建的PICOTCP作为服务开发人员Rafael Gieshke和Klaus Rechert来支持自定义的JavaScript网络堆栈:
该系统进行了进一步修改并集成到OldWeb.today中,以连接到模拟浏览器终止HTTP连接,并从常规fetch()请求(实时Web或存档源)中使用HTTP数据响应HTTP数据。当前,仅支持获取请求,并且仅将标准的内容长度和内容类型的标题返回。
每个浏览器都配置为通过HTTP代理连接到特殊IP http://10.0.2.2/ JS HTTP服务器将其重定向到实际主页。通过这种方式,模拟器图像具有固定的主页,可以解决到实际页面。类似地,JS代理服务器使用页面上的时间戳设置来加载档案中指定的日期。
这允许更改日期时间和主页URL,而无需重新启动模拟器,只需重新加载模拟浏览器中的主页即可。
网络堆栈(汇编为WASM)正在单独的Web工作人员中运行。 Basilisk Emulator与Emscripten一起编译,并在一个单独的工人中运行。需要共享arraybuffer来之间交流。 V86模拟器在主线程中运行,并通过网络工作者通过广播渠道消息进行通信。
对于本机模式 /荷叶边仿真器,不使用模拟浏览器,但是将荷叶边仿真器注入加载页面,以接管页面上可能存在的任何闪光灯。
oldweb.today需要节点和软件包管理器NPM/YARN才能构建和修改。
要在本地运行,请首先安装yarn install
推荐的开发部署选项是运行具有本地CORS代理的开发服务器。这可以通过使用以下方式运行汇总Dev服务器来完成:
yarn run start-dev这将启动本地Web服务器(通过汇总),您应该能够通过http://localhost:10001/访问oldweb.today。本地代理将在http://localhost:10001/proxy/
对于生产而言,建议的部署是使用CloudFlare工人运行,该工人处理实时Web代理。对于大多数用例,免费服务应足够。
使用此选项:
worker-site ,将wrangler.toml.sample复制到wrangler.toml 。account_id和name 。yarn run publish以发布到您的Cloudflare Worker端点。通过在HTTP服务器上使用./site sote目录中的内容,可以将更简单的部署OldWeb.Today作为静态站点完全部署。
但是,此选项将不包括CORS代理,这是从实时Web或远程存档中加载所需的。
一种选择是在代理的任何地方都可以使用可公开可用的CORS连接到实时网络和远程档案。
由于此代理受到限制,因此不建议将此选项用于生产部署。
如果还在同一主机上运行本地Web存档(不需要实时Web访问),则该部署是有道理的,从而消除了对CORS代理的需求。
使用此方法:
rollup.config.js中,修改CORS_PREFIX和/或ARCHIVE_PREFIX指向本地存档(例如,请参见下文): const CORS_PREFIX = "" ;
const ARCHIVE_PREFIX = "/wayback/" ;运行yarn run build
现在,可以从任何静态HTTP服务器提供./site/ 。
请注意,在CloudFlare上运行时, site/assets和构建脚本site/dist中的静态资产将从单独的CDN(通过Digitalocean)提供。
在rollup.config.js中更改CDN_PREFIX之后,可以通过重建来更改此路径
资产和脚本可以托管在任何静态网络存储中。
可以通过更改rollup.config.js和重新yarn run build中的设置来更改下面的加载路径。
当前,OldWeb.today支持从Internet Archive的Wayback Machine以及直接从实时网络上加载。计划支持其他 /多个档案!
存档源可以是任何支持Wayback机器样式未划过的URL的Web存档,例如: <prefix>/<timestamp>id_/<url> 。该档案必须支持返回未修改的内容以使其工作。
要使用不同的Web存档运行,只需更改ARCHIVE_PREFIX路径,以指向您要使用的Wayback Machine实例。
如果从托管在同一域上的Wayback机器上加载,则可能不需要CORS代理。
例如,如果在主机mywebarchive.example.com上运行oldweb.today,并且在https://mywebarchive.example.com/wayback/上运行Wayback机器,那么您可以设置
CORS_PREFIX = ""
ARCHIVE_PREFIX = "/wayback/"如果oldweb.today在其他站点上被热涂,则配置应为:
CORS_PREFIX = "/proxy/"
ARCHIVE_PREFIX = "https://mywebarchive.example.com/wayback/"所有模拟器图像均从静态块储物桶(目前在Digitalocean上)托管。如果您想使用本地/不同的图像集运行,则可以设置:
IMAGE_PREFIX = "https://mybucket.example.com/images`要更改assets和dist路径(对于CloudFlare部署),您可以设置:
CDN_PREFIX = "https://mybucket.example.com/site`可用浏览器是在src/config.json中配置的,其中包含浏览器名称,模拟器类型,图像,保存状态(用于V86)和其他选项或每个浏览器。 config.json与IMAGE_PREFIX插值,并从site/assets/config.json提供。
要测试本地模拟器,请使用IMAGE_PREFIX创建带有带有的条目。有关更多详细信息,请参见config.json 。
可以在此处找到docker容器和仿真器的“经典”版本的oldweb.today。
OldWeb.today可根据AGPL许可获得。其他组件(上面列出)可以根据不同的许可获得。
有关更多详细信息,请参见通知。
绝对欢迎贡献,但请在贡献其他浏览器或模拟器之前打开一个问题。