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

What's hot (20)

PPTX
Remote access service
Apoorw Pandey
 
PDF
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
PPTX
Client side scripting and server side scripting
baabtra.com - No. 1 supplier of quality freshers
 
PPT
Ppt of web development
bethanygfair
 
PPTX
Introduction to ASP.NET
Rajkumarsoy
 
PDF
jQuery for beginners
Arulmurugan Rajaraman
 
PPT
Proxy Server
guest095022
 
PPT
screen output and keyboard input in js
chauhankapil
 
PPTX
Web development
RaziyaChoudhary
 
PPTX
Web Development
Lena Petsenchuk
 
PPTX
HTML Marquee
Hameda Hurmat
 
PPTX
Presentation of web designing
sreejagiri
 
PPTX
Web Application
Sameer Poudel
 
PPTX
Full stack development
Arnav Gupta
 
ODP
Introduction of Html/css/js
Knoldus Inc.
 
PPT
Asp.net.
Naveen Sihag
 
PPTX
CS8651 Internet Programming - Basics of HTML, HTML5, CSS
Vigneshkumar Ponnusamy
 
PPTX
Javascript operators
Mohit Rana
 
PPTX
Responsive web-design through bootstrap
Zunair Sagitarioux
 
Remote access service
Apoorw Pandey
 
JavaScript - Chapter 12 - Document Object Model
WebStackAcademy
 
Client side scripting and server side scripting
baabtra.com - No. 1 supplier of quality freshers
 
Ppt of web development
bethanygfair
 
Introduction to ASP.NET
Rajkumarsoy
 
jQuery for beginners
Arulmurugan Rajaraman
 
Proxy Server
guest095022
 
screen output and keyboard input in js
chauhankapil
 
Web development
RaziyaChoudhary
 
Web Development
Lena Petsenchuk
 
HTML Marquee
Hameda Hurmat
 
Presentation of web designing
sreejagiri
 
Web Application
Sameer Poudel
 
Full stack development
Arnav Gupta
 
Introduction of Html/css/js
Knoldus Inc.
 
Asp.net.
Naveen Sihag
 
CS8651 Internet Programming - Basics of HTML, HTML5, CSS
Vigneshkumar Ponnusamy
 
Javascript operators
Mohit Rana
 
Responsive web-design through bootstrap
Zunair Sagitarioux
 

Similar to Architecture of the Web browser (20)

DOCX
How Browsers Work -By Tali Garsiel and Paul Irish
Nagamurali Reddy
 
PDF
Front end for back end developers
Wojciech Bednarski
 
PPTX
BrowserArchitecture_ClientSide.pptx
MuhammadBilal187526
 
PPT
Web browser
Abhijeet Shah
 
PDF
How browsers work landscape
anandkishore
 
PDF
Neoito — How modern browsers work
Neoito
 
PDF
BrowserArchitecture_ClientSide.pdf
MuhammadBilal187526
 
PPTX
Web browser - How web browsers work?
Arun Kumar
 
PDF
HTML5, How to rethink your web strategy
Fabernovel
 
PPT
Web browser architecture.87 to 88
myrajendra
 
PPT
Lecture 1 (2)
erick chuwa
 
PDF
You Can Work on the Web Patform! (GOSIM 2023)
Igalia
 
PPTX
From HTML to pixels on the Screen
Igor Talic
 
PDF
Developing the Next Generation Embedded HMIs
mentoresd
 
PDF
Building a Better Web with HTML5 and CSS3
Karambir Singh Nain
 
PPTX
Building single page applications
SC5.io
 
KEY
Internals - Exploring the webOS Browser and JavaScript
fpatton
 
PPTX
Unit 5 World_Wide_Web.pptx
DhruvPatel189174
 
PDF
Kick ass code editing and end to end JavaScript debugging
Fabian Jakobs
 
PDF
HTML5 and web platform
dynamis
 
How Browsers Work -By Tali Garsiel and Paul Irish
Nagamurali Reddy
 
Front end for back end developers
Wojciech Bednarski
 
BrowserArchitecture_ClientSide.pptx
MuhammadBilal187526
 
Web browser
Abhijeet Shah
 
How browsers work landscape
anandkishore
 
Neoito — How modern browsers work
Neoito
 
BrowserArchitecture_ClientSide.pdf
MuhammadBilal187526
 
Web browser - How web browsers work?
Arun Kumar
 
HTML5, How to rethink your web strategy
Fabernovel
 
Web browser architecture.87 to 88
myrajendra
 
Lecture 1 (2)
erick chuwa
 
You Can Work on the Web Patform! (GOSIM 2023)
Igalia
 
From HTML to pixels on the Screen
Igor Talic
 
Developing the Next Generation Embedded HMIs
mentoresd
 
Building a Better Web with HTML5 and CSS3
Karambir Singh Nain
 
Building single page applications
SC5.io
 
Internals - Exploring the webOS Browser and JavaScript
fpatton
 
Unit 5 World_Wide_Web.pptx
DhruvPatel189174
 
Kick ass code editing and end to end JavaScript debugging
Fabian Jakobs
 
HTML5 and web platform
dynamis
 
Ad

More from Sabin Buraga (20)

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

Recently uploaded (20)

PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
July Patch Tuesday
Ivanti
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Biography of Daniel Podor.pdf
Daniel Podor
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
July Patch Tuesday
Ivanti
 

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 