Node JS
Node JS
Node JS
js,
Express y BBDDs
Juan Quemada, DIT - UPM
1
© Juan Quemada, DIT, UPM
Índice
1. Introducción al Curso ................................................................. 3
2. Internet y la plataforma Web ...................................................... 7
3. La plataforma Web actual: los nuevos clientes y servidores .... 12
3
© Juan Quemada, DIT, UPM
Desarrollo Backend con Node.js,
Express y BBDDs
Curso de desarrollo de aplicaciones de servidor
n Utilizando JavaScript y node.js
Incluye
n Node.js, y npm
w Repasamos últimas mejoras de JavaScript (desde JS6 a JS9)
n Gestión de bases de datos desde node.js
n Sockets
n HTTP, express y MVC
n WebSockets
n Testing
Móvil o tableta
n Es conveniente para probar, pero no necesario
IP IP
dirección IP
dirección IP
Red / Internet
8
© Juan Quemada, DIT, UPM
La Web
Tim Berners Lee propone en 1989 una nueva aplicación: la Web
n Servicio de publicación de documentos hipertexto en Internet
w Aplicación cliente (navegador) <-> servidor (servidor Web estático)
IP IP
Red / Internet
9
© Juan Quemada, DIT, UPM
La Web inicial
URL
n Dirección única a un fichero (o sección) en un servidor de Internet
w Ejemplo: https://en.wikipedia.org/wiki/URL
HTTP
n Protocolo para traer ficheros de un servidor remoto
w Protocolo simple y ¡muy escalable!
n El fichero se identifica con un URL
HTML
n Lenguaje para definir páginas Web (con hiperenlaces) para visualizar en el navegador
10
© Juan Quemada, DIT, UPM
upm.es
Solicitud HTTP
cal.htm
http://upm.es/dir/cal.htm
Cliente Web
n Presenta páginas Web traídas de un servidor en Internet
n El URL identifica el recurso Web: http://upm.es/dir/cal.htm
w http: El protocolo de acceso al servídor (HTTP GET)
w upm.es: La dirección de dominio del servidor que alberga la página
w /dir/cal.html : La ruta al fichero (página Web) en el directorio de recursos del servídor
La plataforma Web
n Arquitectura descentralizada basada en el modelo cliente <-> servidor para
w Aplicaciones de sobremesa, teléfonos móviles u otros dispositivos
w Servicios en la nube
w Intranets y aplicaciones corporativas
w Aplicaciones P2P (Pier to Pier)
w etc.
Cliente Web (navegador) -> Aparecen los móviles con sus apps
n Los clientes web se hacen programables
scheme://user:password@host:port/path?query#fragment
http://upm.es/dir/pagina.html
n URL Web que identifica e la página Web /dir/pagina.html en el servidor upm.es
http://upm.es:8080/dir/pagina.html
n URL Web similar a la anterior, donde el servidor escucha en el puerto 8080 y no en el 80 asignado a Web
http://upm.es/dir/pagina.html#p3
n URL igual al anterior pero con fragment o anchor (ancla), que identifica el elemento con id='p3' en pagina.html
http://felix@upm.es/dir/pagina.html
n URL Web de un recurso asociado al usuario felix en su cuenta en el servidor upm.es
w Se recomienda enviar passwords en URLs solo con HTTPS y no con HTTP, porque es inseguro
http://upm.es/registro?id=23&nombre=José
n URL que envía dos parámetros en la query (parámetros id y nombre)
mailto:felix@upm.es
n URL de email que identifica el buzón del usuario felix en el servidor upm.es 15
Repositorio
de recursos
Clientes HTTP/2, WebRTC, Servidor Web
WebSockets, ...
16
© Juan Quemada, DIT, UPM
Arquitectura de la Plataforma Web
Aplicaciones y servicios (Facebook,
Google, Instagram, etc.) se crean con
parte del programa ejecutando en
el cliente y parte en el servidor,
que suele estar en la nube.
Protocolos
Plataforma Web Navegador o HTTP/2 Servidor Web
dispositivo móvil WebSockets (programable)
(programables) WebRTC
.......
Protocolo TCP/IP
TCP UDP TCP UDP
TCP/IP
IP IP
Red / Internet
17
© Juan Quemada, DIT, UPM
El cliente y sus aplicaciones
Dispositivos cliente de acceso a Internet
n PCs, portátiles, tabletas, teléfonos y relojes inteligentes, etc.
18
© Juan Quemada, DIT, UPM
El servidor y sus aplicaciones
Servidor*
n Programa proveedor de servicios a los clientes
w Se conecta a un puerto de la máquina servidora, el servidor Web usa el puerto 80 por defecto
n *La máquina servidora se denomina también servidor, pero produce ambigüedad
20
© Juan Quemada, DIT, UPM