SlideShare una empresa de Scribd logo
1 de 25
Cómo funciona tu
navegador web
Ezequiel Maraschio
¿Por qué es importante saber cómo
funciona un navegador web?
Top Players
http://gs.statcounter.com/#browser-ww-monthly-201505-201604
Componentes
http://www.html5rocks.com/es/tutorials/internals/howbrowserswork/
Componente: User Interface
Expone los controles con los que el usuario interactúa con el
browser engine…
Estos son:
- Navbar
- Bookmarks
- Botones varios (Refresh, back)
- Etcs...
Es el encargado de coordinar la interacción del usuario con el
motor de rendering
Tareas:
- Expone los métodos para cargar una URL y para navegarla (ir
para atrás, ir para adelante, refresh)
- Se encarga de las notificaciones con respecto a la carga de
una URL hacia el usuario
- Notifica errores de capas siguientes a la UI
Componente: Browser Engine
Componente: Rendering engine
Es el componente principal para que un navegador muestre algo en
pantalla
Tareas:
- Representar visualmente un documento
- Interpreta el HTML, XML, JS y CSS en lo que ve el usuario
- Corrige errores de markup
Es quien se encarga de los aspectos de comunicación y seguridad
entre la URL que queremos acceder y el servidor donde se encuentra
ese recurso
Tareas:
- Traducciones de caracteres
- Interpretación de los MIME
- Cache de red
Componente: Networking
Es el encargado de interpretar y ejecutar código JavaScript que se
encuentra en las webs y enviar la salida al render engine
Puede ser deshabilitado por el usuario...
Componente: JS Interpreter
Es una capa de abstracción entre funcionalidad del sistema
operativo y el navegador
También se encarga de dibujar widgets como dropdowns y popups
Componente: User Interface Backend
Se encarga de guardar la info que el navegador necesita
Es donde van a parar cosas como:
- Cookies
- Bookmarks
- Session
- Cache
- Preferencias del usuario
- Y desde html 5 -> se encarga de gestionar el Local Storage
Componente: Data Storage
Networking
Networking -> DNS Lookup
http://www.hill2dot0.com/wiki/index.php?title=DNS
¿Y luego?
https://docs.google.com/presentation/d/1ZRIQbUKw9Tf077odCh66OrrwRIV
NLvI_nhLm2Gi__F0
Rendering engine
¿Qué habíamos dicho que era?
Existen varios...
- Firefox -> Gecko
- Chrome (iPhone) y Safari -> WebKit
- IE -> Trident
- Opera y Chrome -> Blink
Rendering engine
Rendering engine flow
<html>
<body>
<p>
Nerdearla 2016 o/
</p>
<div>
<img src="example.png"/>
</div>
</body>
</html>
Parse HTML -> Armando el DOM
Render tree -> Armar el árbol de rendering
Layout render tree -> Diagramar el árbol de rendering
Painting render tree -> Pintar el árbol
Y ahora?!
¡Gracias!
@emaraschio
ezequiel.maraschio@gmail.com
¿Preguntas?
http://www.html5rocks.com/es/tutorials/internals/howbrowserswork/
http://arvindr21.github.io/howBrowserWorks/
http://www.slideshare.net/quangntta/web-browser-architecture-
49196378
http://gs.statcounter.com/
https://vimeo.com/44182484
https://docs.google.com/presentation/d/1ZRIQbUKw9Tf077odCh66OrrwRI
VNLvI_nhLm2Gi__F0
Fuentes

Más contenido relacionado

Destacado (9)

Internet y navegador web
Internet y navegador webInternet y navegador web
Internet y navegador web
 
Html e css
Html e cssHtml e css
Html e css
 
Html, css, js, ajax
Html, css, js, ajaxHtml, css, js, ajax
Html, css, js, ajax
 
Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)Microsoft Edge (Teched 2015)
Microsoft Edge (Teched 2015)
 
Aula 07
Aula 07Aula 07
Aula 07
 
Como funciona a Internet - Camada de Aplicação
Como funciona a Internet - Camada de AplicaçãoComo funciona a Internet - Camada de Aplicação
Como funciona a Internet - Camada de Aplicação
 
Netscape navigator
Netscape navigatorNetscape navigator
Netscape navigator
 
Netscape navigator
Netscape navigatorNetscape navigator
Netscape navigator
 
Mapa Conceptual "La empresa y su clasificación"
Mapa Conceptual "La empresa y su clasificación"Mapa Conceptual "La empresa y su clasificación"
Mapa Conceptual "La empresa y su clasificación"
 

Similar a Como funciona tu navegador web

Similar a Como funciona tu navegador web (20)

Entendiendo a nuestro navegador web
Entendiendo a nuestro navegador webEntendiendo a nuestro navegador web
Entendiendo a nuestro navegador web
 
GOOGLE ESTANDARES EJEMPLOS
GOOGLE ESTANDARES EJEMPLOSGOOGLE ESTANDARES EJEMPLOS
GOOGLE ESTANDARES EJEMPLOS
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Los navegadores más utilizados
Los navegadores más utilizadosLos navegadores más utilizados
Los navegadores más utilizados
 
Word wide web
Word wide webWord wide web
Word wide web
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Framework
FrameworkFramework
Framework
 
Joomla! v3 - Presentación
Joomla! v3 - PresentaciónJoomla! v3 - Presentación
Joomla! v3 - Presentación
 
Los navegadores web origen e historia
Los navegadores web origen e historiaLos navegadores web origen e historia
Los navegadores web origen e historia
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Microsoft Frontpage
Microsoft FrontpageMicrosoft Frontpage
Microsoft Frontpage
 
Framework
FrameworkFramework
Framework
 
Framework presentacion
Framework presentacionFramework presentacion
Framework presentacion
 
Clientes web
Clientes webClientes web
Clientes web
 
Asp
AspAsp
Asp
 
Examen parcial ms word
Examen parcial ms wordExamen parcial ms word
Examen parcial ms word
 
Acciones de jsp
Acciones de jspAcciones de jsp
Acciones de jsp
 

Más de Ezequiel Maraschio

Fullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endFullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endEzequiel Maraschio
 
#Sysarmy meetup 2.1 // to-do lists - arma de doble filo
#Sysarmy meetup 2.1 // to-do lists - arma de doble filo#Sysarmy meetup 2.1 // to-do lists - arma de doble filo
#Sysarmy meetup 2.1 // to-do lists - arma de doble filoEzequiel Maraschio
 
Golang Arg / CABA Meetup #5 - go-carbon
Golang Arg / CABA Meetup #5 - go-carbonGolang Arg / CABA Meetup #5 - go-carbon
Golang Arg / CABA Meetup #5 - go-carbonEzequiel Maraschio
 
Antipatrones en la ingeniería de software
Antipatrones en la ingeniería de softwareAntipatrones en la ingeniería de software
Antipatrones en la ingeniería de softwareEzequiel Maraschio
 

Más de Ezequiel Maraschio (9)

Fullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-endFullstack conf 2017 - Basic dev pipeline end-to-end
Fullstack conf 2017 - Basic dev pipeline end-to-end
 
Hablemos de productividad
Hablemos de productividadHablemos de productividad
Hablemos de productividad
 
#Sysarmy meetup 2.1 // to-do lists - arma de doble filo
#Sysarmy meetup 2.1 // to-do lists - arma de doble filo#Sysarmy meetup 2.1 // to-do lists - arma de doble filo
#Sysarmy meetup 2.1 // to-do lists - arma de doble filo
 
Golang Arg / CABA Meetup #5 - go-carbon
Golang Arg / CABA Meetup #5 - go-carbonGolang Arg / CABA Meetup #5 - go-carbon
Golang Arg / CABA Meetup #5 - go-carbon
 
Antipatrones en la ingeniería de software
Antipatrones en la ingeniería de softwareAntipatrones en la ingeniería de software
Antipatrones en la ingeniería de software
 
Pasan cosas, cosas pasan
Pasan cosas, cosas pasanPasan cosas, cosas pasan
Pasan cosas, cosas pasan
 
Scrum inception
Scrum inceptionScrum inception
Scrum inception
 
Web Development introduction
Web Development introductionWeb Development introduction
Web Development introduction
 
Go lang - What is that thing?
Go lang - What is that thing?Go lang - What is that thing?
Go lang - What is that thing?
 

Como funciona tu navegador web

Notas del editor

  1. - Es la app que más usamos - La gran mayoría de servicios están hechos para correr en el - Es una ventana al mundo :O - Si hacemos web, debemos saber cómo funciona nuestro anfitrión - C++
  2. Chrome: 56 Firefox: 14 IE: 12 Safari: 10 Opera: 2
  3. La tokenización es el análisis léxico y la conversión en tokens de los datos de entrada. Entre los tokens HTML se encuentran las etiquetas iniciales, las etiquetas finales y los valores de atributos. El tokenizador reconoce el token, lo envía al constructor del árbol y consume el siguiente carácter para reconocer el siguiente token y así sucesivamente hasta llegar al final de los datos.
  4. Parsea / Interpreta el html y css para mostrar el contenido en la pantalla
  5. Hasta el chrome 27 usaba webkit
  6. Obtiene la data de la capa de networking DOM son las siglas de "Document Object Model" (modelo de objetos del documento). Es la presentación de objetos del documento HTML y la interfaz de los elementos HTML para el mundo exterior Autocompleta / cierra los tags en caso de ser necesario
  7. Render tree: DOM + CSS Tener en cuenta que solo los objetos que se van a mostrar están en este árbol Resuelve los Styles -> Prioridades (User styles, inline, browser defaults) Arma un DOM con css ya procesado / parseado -> Muestra start en la pantalla del navegador
  8. En este paso se calcula la posición (coordenadas) y el tamaño de cada nodo del DOM que va a aparecer A cada elemento del render tree se le dan coordinadas de la posición que debe tomar en la página. Es un proceso recursivo hasta recorrer todos los elementos del árbol
  9. Se pinta cada nodo en base al estilo que tenga asociado en el render tree y la pagina cobra vida! Es un proceso recursivo hasta recorrer todos los elementos del árbol
  10. WebGL: OpenGL 3D API for the web WebRTC: P2P communication Real time applications Parsers JS WebSockets Web Workers Web Components Performance improvements Tools for web developers WebTelephony API Project Maelstrom http://project-maelstrom.bittorrent.com/ WebSMS API Contacts API Camera API Battery API