SlideShare a Scribd company logo
Arhitectura
browser-ului Web


                     Dr. Sabin Buraga
       Facultatea de Informatică, UAIC Iași
                    www.purl.org/net/busaco
Firefox   Chrome



                  MSIE      Opera




De ce ar trebui să știm
care-i arhitectura generală
a unui navigator Web?
user interface




                                         data persistence
       browser engine


       rendering engine


net        JS     XML
         inter-             display backend
work     preter   parser
user interface

                         address bar
                 back/forward button
                  bookmarking menu
                                  …
browser engine

      “punte” între interfața cu utilizatorul (UI)
                             și rendering engine
browser engine

      “punte” între interfața cu utilizatorul (UI)
                             și rendering engine

                                            kernel
                                           plugins
                                        extensions
                                          add-ons
rendering engine

            realizează redarea conținutului
                   (e.g., documente HTML)
rendering engine

                realizează redarea conținutului
                       (e.g., documente HTML)



                                          uzual:
                     procesarea arborelui DOM
                        asociat unei pagini Web
        cu aplicarea proprietăților CSS aferente
       în vederea redării într-o zonă de afișare
rendering engine

                  include un interpretor (parser)
       conform tipului de document Web – DTD




   HTML 4
   XHTML
   HTML 5

                             www.quirksmode.org
rendering engine

                                  cod sursă HTML
            HTML                              
             Html
           Element
                                     arbore DOM

  HTML                HTML
  Body                Head
 Element             Element

     HTML                HTML
   Paragraph              Title
    Element             Element


     Text
                                  www.w3.org/DOM/
rendering engine

                             arbore DOM
                                        
             arbore de redare (render tree)
rendering engine

                          arbore de redare
                                         
         generare aranjament vizual (layout)
rendering engine

                          arbore de redare
                                         
         generare aranjament vizual (layout)


          calculul lățimii fiecărui bloc de conținut
                                 (width calculation)

                       decizii privind line breaking

                                         …și altele
rendering engine

                            generare layout
                                          
                   afișare layout (painting)
rendering engine

                                  generare layout
                                                
                         afișare layout (painting)


       după afișare, pot apărea schimbări de redare
                                                  
                            re-layout și/sau re-paint
rendering engine

                                 exemplificări:
                                Gecko (Firefox)
                                Presto (Opera)
                                Trident (MSIE)
                    WebKit (Chrome, Safari, iOS)
  Gecko    WebKit



 Trident   Presto
fluxul de activități realizate de Gecko




         https://developer.mozilla.org/en/Gecko
activitățile derulate în cazul WebKit



                                        www.webkit.org
rendering engine


                                                
                deoarece – în mod normal – stilurile CSS
  nu modifică arborele DOM, procesarea poate avea loc
               independent de încărcarea fișierelor CSS
rendering engine


                                               
             deoarece modelul de procesare e sincron,
    programele JavaScript vor trebui executate imediat
                         ce procesorul întâlnește codul
        (eventual, încărcat de la o adresă Web externă)
rendering engine


                                            
            implicit, procesul de rendering e oprit
  până ce codul JavaScript este executat complet
rendering engine


                                           
       procesul de rendering poate fi optimizat
                           (speculative parsing)

                    încărcare paralelă a resurselor
                                  multi-procesare
                                                 …
networking

             folosit pentru transferuri de date
                                de pe Internet

                                        HTTP
                                       HTTPS
                                        SPDY
networking

              folosit pentru transferuri de date
                                 de pe Internet



             numărul conexiunilor paralele e limitat
                                      (uzual: 2—6)
display (UI) backend

       răspunzător cu afișarea componentelor
                          de interfață comune
                (ferestre, butoane de tip radio,…)
JavaScript interpreter

                          interpretează și execută
                            programele JavaScript
                                  la nivel de client



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

            responsabil cu stocarea datelor
                     pe calculatorul client
data persistence

            responsabil cu stocarea datelor
                     pe calculatorul client



                                   cookie-uri
                       localStorage – HTML5
                                       cache
                                           …
Arhitectura
browser-ului Web



                   

More Related Content

Similar to Arhitectura browser-ului Web

Innovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud ComputingInnovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud Computing
Mihai Dan Nadas
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
Sabin Buraga
 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
Sabin Buraga
 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
Sabin Buraga
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
 
HTML5? HTML5!
HTML5? HTML5!HTML5? HTML5!
HTML5? HTML5!
Sabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
Sabin Buraga
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
danielnastase
 
Microsoft - 30iun2011
Microsoft - 30iun2011Microsoft - 30iun2011
Microsoft - 30iun2011Agora Group
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
Sabin Buraga
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
Sabin Buraga
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențiale
Sabin Buraga
 
Silverlight and Dynamic Languge Runtime @ Forum It
Silverlight and Dynamic Languge Runtime @ Forum ItSilverlight and Dynamic Languge Runtime @ Forum It
Silverlight and Dynamic Languge Runtime @ Forum ItAndrei Iacob
 
Windows Presentation Foundation - Ronua
Windows Presentation Foundation - RonuaWindows Presentation Foundation - Ronua
Windows Presentation Foundation - Ronua
Andrei Iacob
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Sabin Buraga
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLVlad Petre
 
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
Sabin Buraga
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010
Agora Group
 

Similar to Arhitectura browser-ului Web (20)

Innovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud ComputingInnovation in Publishing - HTML5 and Cloud Computing
Innovation in Publishing - HTML5 and Cloud Computing
 
Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5Aplicații Firefox OS cu HTML5
Aplicații Firefox OS cu HTML5
 
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului WebCLIW 2015-2016 (2/13) Arhitectura navigatorului Web
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
 
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului WebCLIW 2017-2018 (2/12) Arhitectura navigatorului Web
CLIW 2017-2018 (2/12) Arhitectura navigatorului Web
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
 
HTML5? HTML5!
HTML5? HTML5!HTML5? HTML5!
HTML5? HTML5!
 
Audi
AudiAudi
Audi
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 
Microsoft - 30iun2011
Microsoft - 30iun2011Microsoft - 30iun2011
Microsoft - 30iun2011
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului WebCLIW 2014—2015 (2/12): Arhitectura navigatorului Web
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
 
Node.js: aspecte esențiale
Node.js: aspecte esențialeNode.js: aspecte esențiale
Node.js: aspecte esențiale
 
Silverlight and Dynamic Languge Runtime @ Forum It
Silverlight and Dynamic Languge Runtime @ Forum ItSilverlight and Dynamic Languge Runtime @ Forum It
Silverlight and Dynamic Languge Runtime @ Forum It
 
Irina Cureraru
Irina CureraruIrina Cureraru
Irina Cureraru
 
Windows Presentation Foundation - Ronua
Windows Presentation Foundation - RonuaWindows Presentation Foundation - Ronua
Windows Presentation Foundation - Ronua
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
 
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.jsWADe 2014—2015 (supliment): Dezvoltare Web via node.js
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010
 

More from Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Sabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
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
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
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
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
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...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
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...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
Sabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
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...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
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
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Sabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
Sabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
Sabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
Sabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
Sabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
Sabin Buraga
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
Sabin Buraga
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
Sabin Buraga
 

More from Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
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 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
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 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
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 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
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 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
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 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
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
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
 
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSTAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
 

Arhitectura browser-ului Web

  • 1. Arhitectura browser-ului Web Dr. Sabin Buraga Facultatea de Informatică, UAIC Iași www.purl.org/net/busaco
  • 2. Firefox Chrome MSIE Opera De ce ar trebui să știm care-i arhitectura generală a unui navigator Web?
  • 3. user interface data persistence browser engine rendering engine net JS XML inter- display backend work preter parser
  • 4. user interface address bar back/forward button bookmarking menu …
  • 5. browser engine “punte” între interfața cu utilizatorul (UI) și rendering engine
  • 6. browser engine “punte” între interfața cu utilizatorul (UI) și rendering engine kernel plugins extensions add-ons
  • 7. rendering engine realizează redarea conținutului (e.g., documente HTML)
  • 8. rendering engine realizează redarea conținutului (e.g., documente HTML) uzual: procesarea arborelui DOM asociat unei pagini Web cu aplicarea proprietăților CSS aferente în vederea redării într-o zonă de afișare
  • 9. rendering engine include un interpretor (parser) conform tipului de document Web – DTD HTML 4 XHTML HTML 5 www.quirksmode.org
  • 10. rendering engine cod sursă HTML HTML  Html Element arbore DOM HTML HTML Body Head Element Element HTML HTML Paragraph Title Element Element Text www.w3.org/DOM/
  • 11. rendering engine arbore DOM  arbore de redare (render tree)
  • 12. rendering engine arbore de redare  generare aranjament vizual (layout)
  • 13. rendering engine arbore de redare  generare aranjament vizual (layout) calculul lățimii fiecărui bloc de conținut (width calculation) decizii privind line breaking …și altele
  • 14. rendering engine generare layout  afișare layout (painting)
  • 15. rendering engine generare layout  afișare layout (painting) după afișare, pot apărea schimbări de redare  re-layout și/sau re-paint
  • 16. rendering engine exemplificări: Gecko (Firefox) Presto (Opera) Trident (MSIE) WebKit (Chrome, Safari, iOS) Gecko WebKit Trident Presto
  • 17. fluxul de activități realizate de Gecko https://developer.mozilla.org/en/Gecko
  • 18. activitățile derulate în cazul WebKit www.webkit.org
  • 19. rendering engine  deoarece – în mod normal – stilurile CSS nu modifică arborele DOM, procesarea poate avea loc independent de încărcarea fișierelor CSS
  • 20. rendering engine  deoarece modelul de procesare e sincron, programele JavaScript vor trebui executate imediat ce procesorul întâlnește codul (eventual, încărcat de la o adresă Web externă)
  • 21. rendering engine  implicit, procesul de rendering e oprit până ce codul JavaScript este executat complet
  • 22. rendering engine  procesul de rendering poate fi optimizat (speculative parsing) încărcare paralelă a resurselor multi-procesare …
  • 23. networking folosit pentru transferuri de date de pe Internet HTTP HTTPS SPDY
  • 24. networking folosit pentru transferuri de date de pe Internet numărul conexiunilor paralele e limitat (uzual: 2—6)
  • 25. display (UI) backend răspunzător cu afișarea componentelor de interfață comune (ferestre, butoane de tip radio,…)
  • 26. JavaScript interpreter interpretează și execută programele JavaScript la nivel de client Carakan (Opera) Chakra (Microsoft) Nitro, JavaScriptCore (Apple) SpiderMonkey, IonMonkey, Rhino (Mozilla) V8 (Google)
  • 27. data persistence responsabil cu stocarea datelor pe calculatorul client
  • 28. data persistence responsabil cu stocarea datelor pe calculatorul client cookie-uri localStorage – HTML5 cache …
  • 29.