Ruben Taelman, Ghent University – imec
      
      Except where otherwise noted, the content of these slides is licensed under a Creative Commons Attribution 4.0 International License.
    
![[An early screenshot of the Nexus browser.]](images/nexus.gif) 
        ![[Typical user interface of a modern browser.]](images/browser-ui.png) 
    ![[An early screenshot of the Nexus browser.]](images/nexus.gif) 
        There are two ages of the Internet—before Mosaic, and after.
…
Mark Pesce, ZDNet
In twenty-four months, the Web has gone from being unknown to absolutely ubiquitous.
![[Icon of the Mosaic browser.]](images/mosaic.jpg) 
    ![[Icon of the Netscape browser.]](images/netscape.png) 
    ![[Icon of the Internet Explorer browser.]](images/internet-explorer.png) 
    <blink><marquee>![[Best-view-with icons.]](images/best-viewed.jpg) 
    ![[Giant IE logo is placed in front of Netscape office upon IE 4.0 launch.]](images/ie4-release.webp) 
        ![[Netscape employees knock it over, and place their Mozila mascot on it. The sign reads: Netscape 72%, Microsoft 18%]](images/ie4-reply.jpg) 
        ![[Safari icon.]](images/safari.jpg) 
    ![[Firefox icon.]](images/firefox.png) 
    ![[Opera icon.]](images/opera.jpg) 
    Full of features, easy to use, and a virtual engraved invitation to hackers and other digital delinquents, Internet Explorer 6.x might be the least secure software on the planet.
The 25 Worst Tech Products of All Time, Dan Tynan, PCWorld
![[Internet Explorer 7 icon.]](images/internet-explorer7.png) 
    ![[IE6/IE7 cartoon.]](images/ie6ie7.jpg) 
        ![[The Acid2 test for testing spec-compliance.]](images/acid2.webp) 
        ![[Chrome icon.]](images/chrome.png) 
    ![[First page of the Chrome release comic.]](images/chrome-comic.png) 
        ![[Flash icon.]](images/flash.png) 
    ![[Chrome icon.]](images/chrome.png) 
    Chrome Won
Andreas Gal, Former Mozilla CTO, 2017
![[W3C logo.]](images/w3c.png) 
    ![[Market share of browser engines.]](images/share-engines.png) 
        ![[Typical user interface of a modern browser.]](images/browser-ui.png) 
    ![[Chrome's multi-process architecture.]](images/chrome-arch.avif) 
        ex.com)http://foo.ex.com and http://bar.ex.com in same siteCache-Control, ETag, Last-ModifiedContent-Type headerContent-Type is missing or wrong<img> tag![[Resource waterfall example in Chrome.]](images/resource-waterfall.png) 
    <link rel="…">dns-prefetch, subresource, prefetch, prerender![[Page load time versus bandwidth and latency.]](images/latency-bandwidth-increase.png) 
      Latency is the bottleneck,
and the fastest byte is a byte not sent.
Ilya Grigorik
localStorage)media="print"<body>)"click", "mousedown"![[Steps for constructing the DOM.]](images/dom-steps.avif) 
      <script> tags
        <img>, <link>, …<link rel="preload"> for resources that will be required![[Example of a constructed CSSOM.]](images/cssom-example.avif) 
      
                  <link href="…" … media="orientation:portrait" />
                  <link href="…" … media="print" />
              
          display: none are omitted<meta>visibility: hidden considered, which occupy space.![[Example of a Render Tree.]](images/rendertree-example.avif) 
      ![[Example of input to the layout stage.]](images/layout-example.avif) 
      z-index can override orderwill-change{ passive: true } listeners![[A fully rendered and interactive Web page.]](images/browser-ui.png) 
    ![[Logo of JavaScript.]](images/js-logo.png) 
    document.getElementsByTagName('button')[0]
  .addEventListener('click', () => {
    console.log('Clicked!');
  });
    ![[Spidermonkey icon.]](images/spidermonkey-logo.png) 
    ![[V8 icon.]](images/v8-logo.png) 
    ![[WebKit icon.]](images/webkit-logo.png) 
    Worker()'s
        structuredClone() datatypes (excludes functions)sessionStorage
        localStorage
        Storage interface
        <canvas> tag![[Toolbars in browsers.]](images/toolbars.webp)