Many web sites are transitioning how they construct their pages. The conventional model is where the content is embedded server-side in the HTML and returned to the client in an HTTP response. Increasingly, sites are moving to a model where the initial HTTP response contains only an HTML skeleton plus JavaScript that makes API calls to a variety of servers for the content (typically in JSON format), and then builds out the DOM client-side, more easily allowing for periodically refreshing the content in a page and allowing dynamic modification of the content. This client-side rendering, now predominant in social media platforms such as Twitter and Instagram, is also being adopted by news outlets, such as CNN.com. When conventional web archiving techniques, such as crawling with Heritrix, are applied to pages that render their content client-side, the JSON responses can become out of sync with the HTML page in which it is to be embedded, resulting in temporal violations on replay. Because the violative JSON is not directly observable in the page (i.e., in the same manner a violative embedded image is), the temporal violations can be difficult to detect. We describe how the top level CNN.com page has used client-side rendering since April 2015 and the impact this has had on web archives. Between April 24, 2015 and July 21, 2016, we found almost 15,000 mementos with a temporal violation of more than 2 days between the base CNN.com HTML and the JSON responses used to deliver the content under the main story. One way to mitigate this problem is to use browser-based crawling instead of conventional crawlers like Heritrix, but browser-based crawling is currently much slower than non-browser-based tools such as Heritrix.
翻译:许多网站正在转变其页面的构建方式。传统模型是内容在服务端嵌入HTML中,并通过HTTP响应返回给客户端。如今,越来越多的网站转向一种新模式:初始HTTP响应仅包含一个HTML骨架以及JavaScript代码,这些代码会向多个服务器发起API调用以获取内容(通常为JSON格式),然后在客户端构建DOM树,从而更便利地实现页面内容的周期性刷新和动态修改。这种客户端渲染方式如今在Twitter、Instagram等社交媒体平台占据主导地位,同时也被CNN.com等新闻媒体所采用。当传统网络存档技术(如使用Heritrix爬虫)应用于采用客户端渲染的页面时,JSON响应可能与待嵌入的HTML页面失去同步,导致回放时出现时间性违规。由于违规的JSON不像违规的嵌入图片那样可直接在页面中观察,这种时间性违规可能难以检测。我们描述了自2015年4月以来顶级页面CNN.com如何使用客户端渲染,以及这对网络存档产生的影响。在2015年4月24日至2016年7月21日期间,我们发现近15,000个存档快照中,CNN.com基础HTML与用于主导故事内容传输的JSON响应之间存在超过2天的时间性违规。缓解此问题的一种方法是使用基于浏览器的爬虫替代Heritrix等传统爬虫,但基于浏览器的爬取速度目前远慢于Heritrix等非浏览器工具。