SlideShare a Scribd company logo
Architecture
of the Web browser


                        Dr. Sabin Buraga
    Faculty of Computer Science, UAIC, Romania
                       www.purl.org/net/busaco
Firefox   Chrome



                  MSIE      Opera




Why we should know
the general architecture
of a Web browser?
user interface




                                                  data persistence
          browser engine


          rendering engine


   net        JS       XML
             inter-                display backend
   work      preter    parser


www.html5rocks.com/en/tutorials/internals/howbrowserswork/
user interface

                         address bar
                 back/forward button
                  bookmarking menu
                                   …
browser engine

         “bridge” between user interface (UI)
                       and rendering engine
browser engine

         “bridge” between user interface (UI)
                       and rendering engine

                                       kernel
                                     plug-ins
                                   extensions
                                     add-ons
rendering engine

            able to render the content available
      of the Web – representations of resources
                        (e.g., HTML documents)
rendering engine

            able to render the content available
      of the Web – representations of resources
                        (e.g., HTML documents)


                      processing the DOM tree
                  corresponding to a Web page
           by applying the CSS style properties
                in order to render information
               within a display area – viewport
rendering engine

                 includes an interpreter (parser)
    depending on the Web document type – DTD




   HTML 4
   XHTML
   HTML 5

                              www.quirksmode.org
rendering engine

                                                    HTML source
            HTML
                                  (stored in a text file – on server)
             Html                                             
           Element
                                                        DOM tree
  HTML                HTML                 (in RAM, on client side)
  Body                Head
 Element             Element

     HTML                HTML
   Paragraph              Title
    Element             Element


     Text
                                                 www.w3.org/DOM/
rendering engine

                    DOM tree
                            
                   render tree
rendering engine

                                render tree
                                         
             visual representation – layout
rendering engine

                                    render tree
                                             
                 visual representation – layout


        computing the width of each content block
                               (width calculation)

                 decisions regarding line breaking

                                     …and others
rendering engine

                     layout
                         
                   painting
rendering engine

                                               layout
                                                   
                                             painting


                                        after painting,
    rendering changes could (locally or globally) occur
                                                     
                           re-layout and/or re-paint
rendering engine

                                     examples:
                                Gecko (Firefox)
                                Presto (Opera)
                                Trident (MSIE)
                    WebKit (Chrome, Safari, iOS)
  Gecko    WebKit



 Trident   Presto
rendering workflow – the Gecko use-case




        https://developer.mozilla.org/en/Gecko
rendering workflow – WebKit



                              www.webkit.org
rendering engine


                                               
                        because – usually – CSS styles
    do not modify the DOM tree, the rendering process
           is not dependent by the loading of CSS files
rendering engine


                                              
      the processing is made in a synchronous manner

   JavaScript programs must be executed immediately
             when the engine spots the JS source-code
             (eventually, loaded from an external URL)
rendering engine


                                           
     implicitly, the rendering process is stopped
    until the JavaScript code is entirely executed
rendering engine


                                           
      the rendering process could be optimized
                           speculative parsing

                      parallel loading of resources
                                  multi-processing
                                                 …
networking

             used to access & transfer data
             (representations of resources)
                   available on the Internet

                                     HTTP
                                    HTTPS
                                     SPDY
networking

                 used to access & transfer data
                 (representations of resources)
                       available on the Internet


             limited number of parallel connections
                                     (usually, 2—6)
display (UI) backend

       able to display common UI components
          (windows, radio buttons,text controls,…)




                             browsershots.org/
JavaScript interpreter

                          interpreting & executing
                              JavaScript programs
                                  on the client side



Carakan (Opera)
Chakra (Microsoft)
Nitro, JavaScriptCore (Apple)
SpiderMonkey, IonMonkey, Rhino (Mozilla)
V8 (Google)
data persistence

          storing data on the client machine
data persistence

          storing data on the client machine




                                       cookies
                        localStorage – HTML5
                                         cache
                                            …
Architecture of the Web browser
Architecture
of the Web browser



                     

More Related Content

PPTX
Web browser architecture
PPT
Web and http computer network
PPT
Web browser architecture.87 to 88
PPTX
Applications of Distributed Systems
PDF
Introduction to virtualization
PPTX
Http request and http response
PPT
Web Standards
PPTX
5. IO virtualization
Web browser architecture
Web and http computer network
Web browser architecture.87 to 88
Applications of Distributed Systems
Introduction to virtualization
Http request and http response
Web Standards
5. IO virtualization

What's hot (20)

PPTX
Distributed file system
PPTX
Message and Stream Oriented Communication
PDF
Introduction to Web Standards
PDF
Distributed deadlock
PDF
Introduction to Parallel Computing
PPTX
Google file system GFS
PPTX
Implementation levels of virtualization
PPT
Proxy Server
PPT
HTTP Basics
PDF
Configuring the Apache Web Server
PPTX
The impact of web on ir
PPTX
Web design - How the Web works?
PPTX
What is Virtualization and its types & Techniques.What is hypervisor and its ...
PPTX
Application layer
PPT
Virtualization in cloud computing ppt
PPTX
System interconnect architecture
PPT
program flow mechanisms, advanced computer architecture
PPTX
Data-Intensive Technologies for Cloud Computing
PPT
cloud computing:Types of virtualization
PPSX
Web server
Distributed file system
Message and Stream Oriented Communication
Introduction to Web Standards
Distributed deadlock
Introduction to Parallel Computing
Google file system GFS
Implementation levels of virtualization
Proxy Server
HTTP Basics
Configuring the Apache Web Server
The impact of web on ir
Web design - How the Web works?
What is Virtualization and its types & Techniques.What is hypervisor and its ...
Application layer
Virtualization in cloud computing ppt
System interconnect architecture
program flow mechanisms, advanced computer architecture
Data-Intensive Technologies for Cloud Computing
cloud computing:Types of virtualization
Web server
Ad

Similar to Architecture of the Web browser (20)

PPSX
Rendering engine
PDF
soft-shake.ch - Introduction to HTML5
PDF
HTML5 Intoduction for Web Developers
PPTX
Web browser
PPT
Web browser
PPTX
Building single page applications
PDF
How browsers work landscape
PDF
WEB I - 01 - Introduction to Web Development
PDF
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
PDF
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
KEY
Catan world and Churchill
PDF
MindMaster Crack Latest Version FREE Download 2025
PDF
Rapid SEO Tool Enterprise Crack with Latest 2025 New Version
PDF
FL Studio Crack 24 Free Serial Key [2025]
PDF
Parallel desktop crack FREE Download Latest 2025
PDF
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
PDF
Privacy-first in-browser Generative AI web apps: offline-ready, future-proof,...
PPT
HTTP and Website Architecture and Middleware
PDF
The Java Content Repository
PDF
Internet Explorer 8
Rendering engine
soft-shake.ch - Introduction to HTML5
HTML5 Intoduction for Web Developers
Web browser
Web browser
Building single page applications
How browsers work landscape
WEB I - 01 - Introduction to Web Development
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
Catan world and Churchill
MindMaster Crack Latest Version FREE Download 2025
Rapid SEO Tool Enterprise Crack with Latest 2025 New Version
FL Studio Crack 24 Free Serial Key [2025]
Parallel desktop crack FREE Download Latest 2025
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
Privacy-first in-browser Generative AI web apps: offline-ready, future-proof,...
HTTP and Website Architecture and Middleware
The Java Content Repository
Internet Explorer 8
Ad

More from Sabin Buraga (20)

PDF
Web 2020 01/12: World Wide Web – aspecte arhitecturale
PDF
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
PDF
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
PDF
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
PDF
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
PDF
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
PDF
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
PDF
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
PDF
Web 2020 09/12: Servicii Web. Paradigma REST
PDF
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
PDF
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
PDF
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
PDF
STAW 01/12: Arhitectura aplicaţiilor Web
PDF
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
PDF
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
PDF
STAW 04/12: Programare Web: Node.js
PDF
STAW 05/12: Arhitectura navigatorului Web
PDF
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
PDF
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
PDF
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 04/12: Programare Web: Node.js
STAW 05/12: Arhitectura navigatorului Web
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 08/12: Programare Web. Suita de tehnologii HTML5

Recently uploaded (20)

PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PDF
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
PDF
Event Presentation Google Cloud Next Extended 2025
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
Modernizing your data center with Dell and AMD
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Transforming Manufacturing operations through Intelligent Integrations
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PDF
AI And Its Effect On The Evolving IT Sector In Australia - Elevate
PDF
Newfamily of error-correcting codes based on genetic algorithms
PDF
HCSP-Presales-Campus Network Planning and Design V1.0 Training Material-Witho...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
madgavkar20181017ppt McKinsey Presentation.pdf
SAP855240_ALP - Defining the Global Template PUBLIC.pdf
Event Presentation Google Cloud Next Extended 2025
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Modernizing your data center with Dell and AMD
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Monthly Chronicles - July 2025
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Transforming Manufacturing operations through Intelligent Integrations
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
AI And Its Effect On The Evolving IT Sector In Australia - Elevate
Newfamily of error-correcting codes based on genetic algorithms
HCSP-Presales-Campus Network Planning and Design V1.0 Training Material-Witho...
NewMind AI Weekly Chronicles - August'25 Week I
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf

Architecture of the Web browser

  • 1. Architecture of the Web browser Dr. Sabin Buraga Faculty of Computer Science, UAIC, Romania www.purl.org/net/busaco
  • 2. Firefox Chrome MSIE Opera Why we should know the general architecture of a Web browser?
  • 3. user interface data persistence browser engine rendering engine net JS XML inter- display backend work preter parser www.html5rocks.com/en/tutorials/internals/howbrowserswork/
  • 4. user interface address bar back/forward button bookmarking menu …
  • 5. browser engine “bridge” between user interface (UI) and rendering engine
  • 6. browser engine “bridge” between user interface (UI) and rendering engine kernel plug-ins extensions add-ons
  • 7. rendering engine able to render the content available of the Web – representations of resources (e.g., HTML documents)
  • 8. rendering engine able to render the content available of the Web – representations of resources (e.g., HTML documents) processing the DOM tree corresponding to a Web page by applying the CSS style properties in order to render information within a display area – viewport
  • 9. rendering engine includes an interpreter (parser) depending on the Web document type – DTD HTML 4 XHTML HTML 5 www.quirksmode.org
  • 10. rendering engine HTML source HTML (stored in a text file – on server) Html  Element DOM tree HTML HTML (in RAM, on client side) Body Head Element Element HTML HTML Paragraph Title Element Element Text www.w3.org/DOM/
  • 11. rendering engine DOM tree  render tree
  • 12. rendering engine render tree  visual representation – layout
  • 13. rendering engine render tree  visual representation – layout computing the width of each content block (width calculation) decisions regarding line breaking …and others
  • 14. rendering engine layout  painting
  • 15. rendering engine layout  painting after painting, rendering changes could (locally or globally) occur  re-layout and/or re-paint
  • 16. rendering engine examples: Gecko (Firefox) Presto (Opera) Trident (MSIE) WebKit (Chrome, Safari, iOS) Gecko WebKit Trident Presto
  • 17. rendering workflow – the Gecko use-case https://developer.mozilla.org/en/Gecko
  • 18. rendering workflow – WebKit www.webkit.org
  • 19. rendering engine  because – usually – CSS styles do not modify the DOM tree, the rendering process is not dependent by the loading of CSS files
  • 20. rendering engine  the processing is made in a synchronous manner JavaScript programs must be executed immediately when the engine spots the JS source-code (eventually, loaded from an external URL)
  • 21. rendering engine  implicitly, the rendering process is stopped until the JavaScript code is entirely executed
  • 22. rendering engine  the rendering process could be optimized speculative parsing parallel loading of resources multi-processing …
  • 23. networking used to access & transfer data (representations of resources) available on the Internet HTTP HTTPS SPDY
  • 24. networking used to access & transfer data (representations of resources) available on the Internet limited number of parallel connections (usually, 2—6)
  • 25. display (UI) backend able to display common UI components (windows, radio buttons,text controls,…) browsershots.org/
  • 26. JavaScript interpreter interpreting & executing JavaScript programs on the client side Carakan (Opera) Chakra (Microsoft) Nitro, JavaScriptCore (Apple) SpiderMonkey, IonMonkey, Rhino (Mozilla) V8 (Google)
  • 27. data persistence storing data on the client machine
  • 28. data persistence storing data on the client machine cookies localStorage – HTML5 cache …
  • 30. Architecture of the Web browser 