Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Stack (Nivel 1)
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
UNIDAD 1
UNIDAD 1 2
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Resumen ejecutivo
En esta unidad comenzaremos un recorrido por la World Wide Web (la Web), desde sus inicios hasta nuestros
días. Veremos las bases tecnológicas y abordaremos los elementos fundamentales necesarios para la
construcción de un sistema web.
Introducción
Pocas veces en la historia del desarrollo humano se vió evolucionar con tanta rapidez una tecnología, como
es el caso de Internet y su aplicación más importante: La World Wide Web. La industria automotriz tardó más
de un siglo en establecerse y llegar a las y los consumidores de forma masiva. No menos de 50 años tardó el
teléfono en popularizarse, desde el momento de su invención, a pesar de ser uno de los inventos más
importantes en la historia de la tecnología. Desde su invención, la web tardó menos de una década en
convertirse en el medio de comunicación e intercambio comercial más utilizado por las personas, alrededor
del mundo.
¿Qué es la web?
La Word Wide Web (red mundial), también conocida como WWW o simplemente “la web”, es un conjunto de
herramientas tecnológicas que permiten la comunicación e intercambio de información entre personas,
organizaciones y empresas, de forma cuasi instantánea, sin límites geográficos.
No debemos confundir a la web con Internet. Internet es la red de servidores, computadoras personales,
dispositivos móviles y demás artefactos de red, interconectados entre sí a lo largo y ancho del planeta. La
UNIDAD 1 3
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
web es la aplicación más importante de internet. Otras aplicaciones son el sistema de correo electrónico, las
redes P2P como BitTorrent o las redes de criptomonedas como Bitcoin y más.
Mediante el uso combinado de estos cuatro elementos, más la definición del URL (Localizador único de
recursos), comúnmente llamada “dirección web”, Tim Berners-Lee logró poner en funcionamiento la primera
versión de la WWW sobre la red Internet.
Los protocolos de comunicación, y en particular los protocolos de red, son definiciones de procedimientos y
formatos para el intercambio de mensajes entre dispositivos electrónicos.
Las redes de computadoras cuentan con centenares de protocolos distintos para realizar las múltiples formas
de comunicación que existen hoy en día. Muchos de estos protocolos trabajan en conjunto de forma
coordinada para establecer las comunicaciones.
Cuando navegamos por la web, nuestra computadora interactúa con diferentes servidores web mediante el
uso de una pila de protocolos de red.
Los protocolos son necesarios para lograr que sistemas distintos, de diferentes fabricantes y basados en
diversas tecnologías, logren entenderse. Los protocolos de comunicación, entonces, son estándares definidos
UNIDAD 1 4
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
por la industria a los cuales los fabricantes de hardware y software deben adherir para no quedarse afuera
del ecosistema de Internet.
En Internet, la familia de protocolos más importante es TCP/IP. Esta combinación de protocolos de red y
transporte cubre la mayor parte de las comunicaciones.
El protocolo HTTP
Como futuras y futuros desarrolladores web nos interesa la capa superior de esta pila de protocolos, la capa
de aplicación. El protocolo inventado por Tim Berners-Lee para la web, un protocolo de aplicación, es el
famoso HTTP.
HTTP define una serie de acciones (verbos) a ejecutar contra ciertos recursos en la red (páginas web,
servicios web, imágenes, documentos, etc.). Estas acciones o verbos definidos en HTTP son operaciones
claras y sencillas como GET (leer), PUT (guardar), POST (agregar), DELETE (borrar) y otras tantas.
Estas acciones son definidas en archivos de texto plano llamados mensajes HTTP, compuestos por el nombre
del método, la dirección del recurso, una cabecera y un cuerpo de mensaje.
Solicitudes y respuestas
HTTP es un protocolo basado en la arquitectura Cliente/Servidor donde el cliente envía un mensaje realizando
una solicitud al servidor y éste devuelve un mensaje de respuesta.
Para una o un programador web es muy importante conocer la estructura básica de los mensajes HTTP, esto
ayuda a comprender el mecanismo de comunicación entre el cliente y el servidor. Por eso vamos a prestarle
un poco de nuestra atención a los elementos fundamentales de un mensaje HTTP.
La primera línea
La primera línea de un mensaje de solicitud está compuesta por el verbo o acción, la ubicación del recurso
dentro del servidor y la versión del protocolo.
UNIDAD 1 5
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Además de GET se pueden especificar distintos tipos de verbos: POST, PATCH, DELETE, PUT, OPTIONS,
HEADERS, etc.
Las cabeceras
En esta sección del mensaje request se listan las llamadas cabeceras o headers http. Las cabeceras son
variables que el cliente le envía al servidor para especificar detalles de la solicitud, como por ejemplo: el
nombre o la dirección IP del servidor (host), el tipo y codificación que se requiere para el recurso en cuestión
(xml, pdf, html, gif, etc.), información sobre la conexión y una infinidad de opciones más.
La estructura de una cabecera está compuesta por una etiqueta, dos puntos y el valor de la cabecera
expresado en texto. Ejemplo:
Host: inap.org.ar
Accept: text/html
No todos los mensajes de solicitud tienen un cuerpo. Este está presente en los mensajes PUT, POST y
PATCH. Este tipo de mensaje se encarga de enviar datos al servidor, tales como formularios cargados por el
usuario, archivos de cualquier tipo o información estructurada en formatos como JSON o XML.
En el body, los datos se expresan en texto plano. Pueden estar estructurados o no. Si los datos son binarios,
por ejemplo, una imagen o un archivo ejecutable, se codifican en Base64: un método de traducción de los
datos para expresarlos sólo con letras del alfabeto inglés y números.
La primera línea
La primera línea de cada mensaje de respuesta está compuesta por la versión del protocolo, el código de
estado y la descripción de la respuesta.
Dependiendo del éxito de la solicitud, o bien si hubo un problema para responder a esta, el servidor devolverá
un mensaje de respuesta con distintos códigos. Existe una lista extensa de códigos de respuesta, pero se los
puede agrupar en cinco clases:
UNIDAD 1 6
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
◦ Cuando la acción que solicitamos se ejecutó con éxito en el servidor, este devuelve un mensaje con un
código de estado comprendido en este rango. Por ejemplo, 200 OK es la respuesta clásica a un mensaje
GET.
◦ Muchas veces los recursos que un cliente solicita no se encuentran en la dirección solicitada, sino que
fueron movidos a otra dirección conocida por el servidor. En estos casos el servidor devuelve un estado de
redirección para que el cliente se dirija a la nueva dirección y así obtener el recurso solicitado.
◦ En ciertas ocasiones el usuario indica una dirección errónea o un nombre de recurso incorrecto. En
estos casos el servidor no puede resolver la petición y devuelve un código de error. Este grupo de códigos de
estado indican un error deslindando la responsabilidad al cliente. Por ejemplo: 404 Not found o 403 Forbidden.
◦ También puede que una solicitud no haya podido ejecutarse por problemas del lado del servidor. Puede
ser por un error interno en el sistema web, en la base de datos, etc. En estos casos se devuelve un código de
estado comprendido dentro este rango de números.
Las cabeceras
Las cabeceras en los mensajes de respuesta siguen las mismas reglas que las cabeceras de los mensajes
de solicitud. Indican información de distinta índole, como, por ejemplo: información acerca del servidor,
información de la conexión, la codificación de datos utilizada, etc.
En esta sección se guardará el contenido de la respuesta. Por ejemplo, si se solicitó una imagen JPEG, los
datos que conforman la imagen vendrán debidamente codificados en el cuerpo del mensaje de respuesta.
UNIDAD 1 7
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
La gran desventaja es que los mensajes en texto plano de HTTP los puede leer cualquier persona que esté
observando el tráfico de la red en el momento de su transmisión. Esta característica lo convierte en un
protocolo inseguro para transmitir información sensible como datos personales, información bancaria y
transacciones comerciales.
Cuando la web se volvió popular, se comenzaron a construir sistemas de comercio electrónico y todo tipo de
transacciones electrónicas a través de internet. Para ello se definió una subcapa de protocolo llamada SSL
(Secure Server Layer) que posteriormente pasó a llamarse TLS (Transport Layer Security).
Esta subcapa de transporte se encuentra entre la capa de transporte TCP y el protocolo HTTP. Su función es
cifrar todos los mensajes HTTP que intercambien el cliente y el servidor. El cifrado es un proceso de
codificación mediante el uso de un certificado digital expedido por una autoridad o entidad de confianza.
El resultado de todo esto es que el cliente ahora puede enviar y recibir mensajes HTTP, de la misma forma
que lo hacía anteriormente, pero ahora estos mensajes viajan cifrados por la red, de manera segura, tanto
que ninguna ni ningún usuario malintencionado puede descifrar la información dichos mensajes.
Los sistemas de información muchas veces necesitan más dinamismo, conocer información en tiempo real.
Por ejemplo, un sistema que recopila información de cotizaciones en bolsa necesita mostrar en la pantalla de
la o el usuario toda la información actualizada al instante, porque es crucial para esa actividad. También
podemos tomar el ejemplo de un sistema de seguimiento GPS para observar en tiempo real el movimiento de
unidades de transporte en el mapa.
HTTP no permite que el servidor envíe información al cliente a partir de un evento. Solo puede esperar que
el cliente le pregunte para poder responder. Este modelo es muy obsoleto para obtener información
actualizada a cada segundo, pues el cliente debería estar preguntando por actualizaciones a cada segundo.
Para cubrir esta necesidad surgió el protocolo WebSockets. Este es un protocolo del nivel de aplicación,
reemplaza a HTTP y va por internet. El modelo es sencillo: el cliente se registra para escuchar ciertos eventos
que el servidor va a emitir cuando sucedan. Entonces, cada vez que ocurre un evento el servidor envía la
información actualizada al cliente.
La mayoría de las plataformas de desarrollo web incorporan soporte para este protocolo. Por ejemplo, en .Net
Core existe la librería SignalR que consta de objetos en el servidor y una librería escrita en Javascript para el
cliente.
UNIDAD 1 8
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Una de las implementaciones más importantes del protocolo WebSockets es SocketIO para node.js y
Javascript.
Antes de la invención de la web ya existían sistemas informáticos basados generalmente en arquitecturas del
tipo Cliente/Servidor. Desde hace muchas décadas que este tipo de sistemas alcanzó niveles de complejidad
notable.
En los primeros años de vida de la web, esta se utilizaba principalmente para la compartición de documentos,
principalmente páginas HTML e imágenes.
Junto con la amplia adopción de la web, se fueron desarrollando sistemas más complejos que pudieran
realizar tareas complejas, al igual que los sistemas cliente/servidor anteriores, pero ahora sobre una nueva
plataforma: Internet.
Sistemas cliente/servidor
Como se anticipó, los sistemas cliente/servidor existían antes de la adopción de Internet y la web como medio
principal de comunicación.
Este tipo de sistemas funcionaban en grandes compañías, hubo muchas arquitecturas, pero principalmente
se basaron en un servidor de archivos y aplicaciones, un servidor de base de datos y estaciones de trabajo
llamadas clientes. Estos clientes solían brindar velocidad de operación a la o el usuario, tanto en sus primeras
versiones de interfaces de usuario en modo texto como en las interfaces de usuario ricas, basadas en
ventanas estilo Windows.
Una de las principales diferencias entre estos sistemas y los sistemas web, es que los primeros funcionaban
en redes privadas, redes de alcance local, dentro de un mismo edificio o campus. Estas redes son costosas
de construir y mantener, pero tienen la ventaja de proporcionar el control total de ellas a la organización o
empresa propietaria.
Aplicaciones web
Las aplicaciones web, o sistemas de información basados en la web, son sistemas distribuídos construídos
sobre tecnologías y protocolos de comunicación propios de internet. Es un tipo de software que está alojado
UNIDAD 1 9
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
en un servidor web y es accedido a través de un navegador web. El tiempo de ejecución de este tipo de
software se divide en dos momentos iterativos: el procesamiento en el servidor y el procesamiento en el
cliente.
En la actualidad existen diversas plataformas de desarrollo de software web para crear aplicaciones
distribuídas, complejas, interoperables y con interfaces de usuario enriquecidas. A lo largo de este curso
iremos viendo las distintas alternativas de arquitecturas y lenguajes para la construcción de aplicaciones web.
• Uno o varios lenguajes de programación para crear procesos a ser ejecutados tanto en el servidor como
en el cliente (navegador). Ejemplo: Javascript, C#, Java, PHP, Python, etc.
• Lenguajes de marcado (etiquetas) para representar la estructura de la interfaz de usuario (las pantallas).
Ejemplo: HTML5, XHTML, etc.
• Lenguajes para la estructuración y representación de los datos. Ejemplo: JSON, XML, etc.
• Lenguajes de representación de estilos. Estos lenguajes tienen la finalidad de dar un estilo estético y de
comportamiento a los datos presentados en pantalla. Son muy utilizados en la actualidad, por ejemplo, para
crear pantallas adaptables a distintos tamaños de pantalla (diseño responsivo). Ejemplo: CSS, XSLT, SASS,
etc.
Conclusión
En esta primera unidad hemos abordado los temas fundamentales de la web, sus orígenes, arquitectura,
protocolos y elementos necesarios para la creación de sistemas web. Esta información nos resultará de
mucha utilidad para seguir avanzando en el curso y finalmente poder alcanzar una comprensión más completa
del mundo del desarrollo de aplicaciones web.
UNIDAD 1 10
UNIDAD 2
Lenguajes de
programación Web
Curso: Programación Web Full Stack (Nivel 1)
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
• Introducción
• Lenguajes de programación
• Lenguajes script: los amos de la Web
• Lenguajes del lado del Servidor
• Lenguajes del lado del Cliente
• Lenguajes Full Stack
• Conclusión
Resumen ejecutivo
En esta clase sobrevolaremos conceptos fundamentales de los lenguajes de programación, lenguajes
compilados e interpretados, lenguajes de tipado dinámico y estático. Veremos también cuáles son los
lenguajes más utilizados para el desarrollo de aplicaciones web, tanto del lado del cliente como del lado del
servidor. Finalmente aterrizaremos sobre los lenguajes que denominaremos “fullstack”, aquellos que pueden
estar presente tanto en el cliente como en el servidor;; el frontend y backend de una aplicación web.
Introducción
Desde hace varias décadas, la computadora personal nos tiene acostumbrados a realizar una infinidad de
tareas complejas, cada vez más diversas. Su rápido y vertiginoso desarrollo convirtió a la computadora
personal en el instrumento fundamental para la mayoría de las actividades: profesionales, comerciales,
científicas, industriales, educativas, sociales y de ocio. Escribir una carta, ver la televisión, escuchar un
programa de radio, grabar un disco o hablar por teléfono eran tareas que, hasta hace no tanto tiempo, se
realizaban con distintos dispositivos electrónicos, cada uno especialmente diseñado para su cometido. Hoy
realizamos estas y muchas actividades más con un sólo instrumento: la PC. Y desde hace unos años el
Smartphone está desplazando a la PC en estas tareas cotidianas.
Debemos tener en cuenta que todas las acciones realizadas por las computadoras están expresadas en
programas que detallan paso a paso lo que estas deben hacer.
UNIDAD 2 2
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
El lenguaje de máquina es un lenguaje de programación que puede ser directamente interpretado por circuitos
microprogramables. Se trata de secuencias de instrucciones expresadas con códigos numéricos,
generalmente en sistema hexadecimal o binario.
Todo esto quiere decir que las computadoras entienden bien las instrucciones escritas en lenguaje de
máquina y de ninguna manera entienden directamente el lenguaje natural de los seres humanos. Por otro
lado, los seres humanos entendemos mejor un lenguaje más parecido a nuestro lenguaje natural que números
hexadecimales, ceros y unos.
Para facilitar la tarea de escribir programas se crearon los lenguajes de alto nivel: estos son lenguajes de
programación más legibles y fáciles de aprender para las personas, con instrucciones representadas por
palabras en inglés, en lugar de números.
Compilación
Para que la computadora entienda instrucciones escritas en un lenguaje de alto nivel, es necesario que en
algún momento se haga una traducción a lenguaje de máquina. Ese proceso de traducción es comúnmente
conocido como proceso de compilación. La compilación se puede realizar de dos maneras: compilación previa
a la ejecución y compilación en tiempo de ejecución.
La ventaja del proceso de compilación previa es que se pueden detectar a priori todos los errores sintácticos
del programa, es decir instrucciones o nombres mal escritos, impidiendo la ejecución del programa con
errores.
UNIDAD 2 3
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
que es un programa intermedio que carga en su memoria nuestro código fuente, va leyendo las instrucciones
una a una y las va compilando al mismo tiempo que las ejecuta.
Las ventajas del proceso de compilación dinámico o en tiempo de ejecución es que la o el programador no
necesita realizar tareas extras para ejecutar su programa: lo escribe, lo carga en el intérprete y listo. Si bien,
esta forma es más promiscua que la anterior por dejar pasar los errores hasta el momento justo de su
ejecución, también es cierto que este tipo de lenguajes son más flexibles y permiten hacer más cosas de
forma dinámica y en tiempo de ejecución que los lenguajes que deben ser compilados previamente.
En la actualidad, todos los lenguajes de programación web son compilados de una u otra manera. Algunos
son compilados manualmente y en tiempo de desarrollo, otros son compilados automáticamente por su
intérprete (el sistema que los ejecuta), este es el método JIT (Just In Time o en el momento).
Compilador JIT
El compilador JIT trabaja de forma distinta a los intérpretes mencionados anteriormente. Este tipo de
compilación en tiempo real es más eficiente porque no va compilando cada instrucción, cada vez que ejecuta
el programa. El JIT compila el programa completo, o un módulo de este, genera un objeto compilado y esto
es lo que finalmente es ejecutado.
Lenguajes Script
A los lenguajes interpretados se los denomina lenguajes script.
Debido a la naturaleza abierta de Internet y a la necesidad de transferir programas desde el servidor hacia el
cliente para que éste los ejecute, los primeros lenguajes que lograron popularidad fueron los lenguajes
interpretados o script. Los primeros lenguajes script de servidor fueron Perl, PHP y ASP, mientras que del
lado del cliente desde el principio estuvo presente Javascript. VBScript fue el lenguaje de scripting creado por
Microsoft para su navegador Internet Explorer.
En el camino quedaron otras opciones de lenguajes compilados para la ejecución dentro del navegador
(cliente) como las applets de Java y los objetos Flash.
A partir de una solicitud del cliente, las aplicaciones web se ejecutan en dos tiempos y de manera iterativa.
Existen programas que se ejecutan exclusivamente en el servidor. Los programas escritos para ser ejecutados
en el servidor se llaman backend, generalmente contienen la lógica de negocio de la aplicación.
UNIDAD 2 4
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Estos programas del lado del servidor contienen algoritmos de procesamiento de datos, cálculos, reglas de
negocio, también realizan el acceso a los datos que pueden estar alojados en un sistema de bases de datos
relacionales o bien en una base de datos del tipo no sql como MongoDB.
En estos días existe una infinidad de lenguajes para programar backend, la característica principal que deben
tener es la capacidad de correr bajo la administración de un servidor web. Esto es necesario porque las
peticiones de los clientes y sus respuestas son administradas por el servidor web mediante la utilización del
protocolo HTTP. Es por eso que este tipo de lenguajes deben proveer a la o el programador ciertas
herramientas para facilitar la lectura de peticiones de cliente (request) como también deben tener
herramientas para escribir la respuesta (response).
Algunos de los lenguajes de programación más populares para escribir el backend de servidor son:
• PHP, ASP (Visual Basic Script y JScript), C#, Ruby, Go, Javascript, TypeScript, Java, Python, etc.
En los primeros años de la web, los lenguajes de scripting de servidor eran interpretados, exceptuando el
método CGI donde el servidor invoca a un programa ejecutable presente en su sistema operativo.
En la actualidad, los lenguajes de programación del lado del servidor, compilados o de script (interpretados),
en definitiva son todos compilados.
Los tradicionalmente compilados (Java, C#, etc.) siguen la misma línea y se deben instalar en el servidor
objetos previamente compilados.
Por el contrario, los lenguajes que históricamente fueron interpretados (PHP, Python, Javascript) son
compilados en tiempo de ejecución, cada cual tiene sus particularidades pero en general todos incluyen un
compilador JIT (Just In Time).
La gran diferencia se encuentra en el despliegue del código en el servidor:
• Para ejecutar un programa compilado solo es necesario desplegar en el servidor web el objeto compilado,
o sea una serie de archivos binarios (lenguaje de máquina) ilegibles para cualquier persona.
• Para ejecutar un programa escrito en un lenguaje script (los interpretados), para que puedan ser
compilados automáticamente por el JIT, necesitamos proveer nuestro código fuente al servidor web.
Por lo tanto, la gran ventaja que ofrecen los lenguajes compilados es que no requieren que se provea el
código fuente para poder ejecutar los programas, permitiendo la protección de la propiedad intelectual del
código fuente.
UNIDAD 2 5
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Venimos diciendo que la ejecución de una aplicación web se da en dos planos, en dos momentos diferentes
y de manera iterativa. Estos dos lugares son el Cliente y el Servidor.
El funcionamiento común de una aplicación web se basa en idas y vueltas entre el cliente y el servidor,
mediante mensajes HTTP.
Esto quiere decir que además del programa que reside y se ejecuta en el servidor web, también existen
programas, funciones o algoritmos que son enviados por el servidor hacia el cliente y son ejecutados en este.
Ejemplo:
1. El cliente hace una solicitud al servidor. Es la dirección de un script, por ejemplo:
a. http://www.miaplicacion.com/index.php
2. El servidor recibe la solicitud y ejecuta el programa escrito en el script index.php. Este es el primer tiempo
de ejecución de un programa dentro de una aplicación web.
a. Como resultado de la ejecución del script index.php se obtiene una página HTML que es enviada al
cliente. Esta página contiene texto, imágenes, colores, menús, etc. Entre los elementos de esta página se
encuentra uno muy particular: un trozo de código Javascript, o sea un programa para que el cliente lea y
ejecute.
b. Vale aclarar que tanto el código HTML como el código Javascript de esta página no se ejecutarán en
el servidor. El servidor los trata simplemente como un archivo que debe entregar al cliente.
3. El cliente recibe el archivo o página resultante desde el servidor, la carga en su memoria y comienza a
interpretarla. Durante este proceso empieza a dibujar o “renderizar” la estructura de la página que recibió del
servidor. Cuando encuentra el trozo de código Javascript, lo interpreta y lo ejecuta en su propio espacio de
procesamiento.
En la actualidad el lenguaje Javascript es el rey dominante de la programación del lado del cliente, dado que
todos los navegadores actuales lo soportan ampliamente. Javascript está basado en el estándar de
programación llamado ECMAScript.
Algunos frameworks brindan la posibilidad de programar en un lenguaje de programación distinto a Javascript
y generar programas para ser ejecutados del lado del cliente. Esto es posible debido a que, como ya
mencionamos, Javascript es compilado en tiempo de ejecución: el intérprete lo carga, compila y ejecuta el
código compilado. Por lo tanto, podrían escribirse programas en otro lenguaje distinto a Javascript y finalmente
compilados al mismo formato binario que compila Javascript.
UNIDAD 2 6
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Denominaremos de esta forma a aquellos entornos de programación web que nos permitan escribir una
aplicación web íntegramente en un solo lenguaje. Esta es una gran ventaja para los desarrolladores debido a
que no tienen que cambiar continuamente de lenguaje para escribir las distintas partes de su aplicación.
Hace algunas décadas, dentro de la plataforma web de Microsoft (navegador Internet Explorer como, servidor
Internet Information Services y sistema operativo Windows en el cliente y en el servidor) existía la posibilidad
de escribir scripts cliente y servidor en el mismo lenguaje. Era el caso de Visual Basic Script (VBScript) y
JScript, la implementación de Javascript por parte de Microsoft.
ASP (Active Server Pages) soportaba esos dos lenguajes del lado del servidor, por su parte Internet Explorer
hacía lo propio del lado del cliente.
En nuestros días existen algunas opciones para programar una aplicación completa en un sólo lenguaje de
programación, tales como Javascript, TypeScript y C#.
• Sin dudas, el líder indiscutible de la programación fullstack es Javascript. Desde la aparición del motor de
Javascript de Google, V8, que incorpora múltiples mejoras en velocidad, entre otras propiedades, el entorno
Javascript pegó un salto cualitativo. Luego de esto aparece el entorno node.js que permite la creación de
aplicaciones de servidor basadas en Javascript. Esto permite programar aplicaciones web íntegramente en
Javascript, además de HTML5 y CSS3, claro está.
• Una de las ventajas más importantes de Javascript es su flexibilidad y parte de esa flexibilidad se la aporta
la inferencia de tipos de datos. Esto puede ser visto como una ventaja cuando se escriben pequeños
programas, pero cuando es necesario escribir y estructurar una aplicación grande con miles de líneas de
código, la inferencia de tipos puede ser propensa a errores. Por esta causa, Microsoft desarrolló el lenguaje
TypeScript. TypeScript es un lenguaje multiparadigma (orientado a objetos, funcional y estructurado), basado
en la sintaxis de Javascript y fuertemente tipado. Podríamos decir que es un Javascript más estricto,
justamente para evitar los problemas que traen los lenguajes débilmente tipados o de inferencia de tipos.
Finalmente, hay que aclarar que TypeScript es un metalenguaje que cuando se compila genera código
Javascript.
• En esta sección dedicada a los lenguajes fullstack no podemos dejar de mencionar a C#. Si bien fue
creado y desarrollado por la empresa Microsoft, está basado en el estándar ECMA-334 y es de código abierto
junto con el framework .Net Core. Con C# tenemos la opción de programar aplicaciones web en Blazor y .Net
Core, creando partes que se ejecutarán en el servidor y otras en el cliente de forma totalmente transparente
para el programador. Es una gran alternativa frente a los ecosistemas basados en Javascript,
fundamentalmente para aquellas y aquellos programadores con experiencia previa en C#.
UNIDAD 2 7
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Conclusión
En esta clase hemos aprendido que una aplicación web se ejecuta en dos partes diferentes, el cliente y el
servidor. Existen diferentes lenguajes de programación, algunos propios de la programación del lado del
cliente y otros específicos para la programación del lado del servidor. También hemos aprendido sobre los
lenguajes compilados e interpretados, algo fundamental para comprender el comportamiento de los lenguajes
actuales que mezclan lo mejor de los dos mundos. Finalmente reflexionamos sobre los lenguajes fullstack,
aquellos que sirven para escribir programas tanto del lado del cliente como del lado del servidor. En la próxima
clase abordaremos con algo de detalle el mundo de los Frameworks de programación.
Lo invitamos a resolver la actividad de autoevaluación correspondiente al módulo en el entorno
virtual. Luego, continuamos con el tercer módulo del curso.
UNIDAD 2 8
UNIDAD 3
Plataformas Web
Cliente/Servidor
Curso: Programación Web Full Stack (Nivel 1)
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Resumen ejecutivo
En esta parte del curso nos vamos a concentrar en el estudio de las plataformas de desarrollo web basadas
en la arquitectura Cliente/Servidor, que es la arquitectura dominante para la Web en Internet. Primero
revisaremos conceptos fundamentales de la arquitectura Cliente/Servidor para luego pasar a los entornos
web. Analizaremos con cierto nivel de detalle al navegador web y al servidor web. También averiguaremos
qué son los Frameworks de desarrollo, enumerando los más actuales del mercado.
Introducción
La arquitectura Cliente/Servidor es ampliamente utilizada en el diseño de sistemas distribuidos.
Conceptualmente hablando, consta de dos componentes: el Cliente que es la entidad activa y el Servidor que
es una entidad pasiva. Entre el Cliente y el Servidor se establece una comunicación mediante el envío de
mensajes por medio de una red, conformando así un sistema distribuido.
Existen muchas implementaciones de este modelo, muchas de ellas previas y otras contemporáneas al
desarrollo de la Web. Como venimos diciendo, esta arquitectura requiere de dos programas fundamentales
(el Cliente y el Servidor). Estos programas estarán ubicados en distintas computadoras, dentro de una red.
una reinstalación manual o semiautomática. También la instalación del cliente para utilizar un sistema
Cliente/Servidor significa un techo para la escalabilidad de este. Nos referimos a escalabilidad cuando
hablamos de la escala o tamaño de un sistema, en función de la cantidad de usuarias y usuarios. Si un sistema
funciona correctamente tanto para diez clientes como para cien, se lo considera escalable.
UNIDAD 3 2
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Un navegador web es un programa informático que permite el acceso a la Web, interpretando distintos tipos
de archivos y datos provenientes de sitios web para que estos puedan ser visualizados por las y los usuarios.
Si bien, las actividades más comúnmente conocidas de los navegadores web es la interpretación de páginas
HTML, CSS y código Javascript, estos programas tienen una gran cantidad de capacidades como la
visualización de documentos en distintos formatos, impresión, comunicación, extensibilidad a través de
plugins, etc.
Siguiendo un poco con el tema de los sistemas Cliente/Servidor, cuando hablamos de aplicaciones web, el
programa cliente base es el navegador web. Esto significa una gran ventaja respecto a los anteriores sistemas,
pues por el simple hecho de tener instalado un navegador web en la computadora cliente, se tiene acceso
automáticamente a una cantidad ilimitada de sistemas web.
1993 Mosaic
El primer navegador en estar disponible para la mayoría de los sistemas operativos de su época fue Mosaic,
creado por la NCSA (National Center for Supercomputing Applications;; Centro Nacional de Aplicaciones de
Supercomputación).
UNIDAD 3 3
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Este navegador, que fue conocido por estar plagado de fallas, por su lentitud y por no respetar los estándares
de internet, en su momento dominó el 95% del mercado gracias a la estrategia de Microsoft de incorporarlo
como parte de sus sistemas operativos Windows 95 y Windows NT. Esto derivó en la llamada “guerra de los
navegadores” teniendo como principal contendiente a Netscape Navigator. Netscape llevó a Microsoft a juicio
por prácticas monopólicas, y si bien la justicia le dió la razón a Netscape, fue demasiado tarde para la empresa
y predominó Microsoft en el mercado por unos cuantos años.
Hay que señalar que nunca es bueno apartarse de los estándares. Esta mala praxis de los fabricantes;; agregar
de funcionalidades especiales a sus productos, deriva en un infierno para los desarrolladores porque estos
deberán programar varias versiones de sus aplicaciones para que funcionen correctamente en todos los
navegadores.
Google Chrome ocupa la mayor parte del mercado gracias a la incorporación su incorporación en dispositivos
móviles basados en Android, que es un sistema operativo desarrollado por Google.
UNIDAD 3 4
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Lamentablemente fue demasiado tarde para alcanzar a Chrome, quién seguía arrasando con todo.
Finalmente, Microsoft decidió dejar de mantener su propio motor del navegador y pasó a utilizar el motor
desarrollado por Google y liberado a la comunidad: Chromium. Podemos decir, entonces que hoy en día
Microsoft Edge es Chrome con una interfaz de usuario diferente.
Código móvil
En una aplicación web, el navegador se encarga de solicitar todo el código móvil al servidor y lo ejecuta en
su propio espacio de procesamiento y memoria. Se denomina código móvil a todo aquel programa o script
que un navegador puede solicitar a un servidor web, descargar, interpretar y ejecutar de forma automática.
Como ejemplos de código móvil podemos mencionar a las viejas applets de java y los objetos flash, a los
vigentes scripts o programas escritos en Javascript. Si queremos ir un poco más lejos, podemos nombrar al
código compilado que es ejecutado directamente por el del navegador.
La vieja guerra de los navegadores, esa carrera que sacaba lo peor de cada fabricante tratando todo el tiempo
de captar la atención de las y los usuarios con nuevas funcionalidades que no respetaban los estándares de
internet, quedó en el pasado.
Si bien, hoy los fabricantes siguen pujando por obtener mayores cuotas del mercado, lo hacen de una manera
más profesional y todos los navegadores están certificados bajo los estándares de internet y la W3C (World
Wide Web Consortium).
Esta es una buena noticia para desarrolladoras y desarrolladores web, porque se garantiza el hecho de
desarrollar un código limpio y único con la certeza de que este va a funcionar correctamente en cualquier
navegador.
Por último, vale mencionar que los navegadores modernos son cada vez más seguros, estables y eficientes,
que brindan una excelente plataforma para la ejecución de aplicaciones web cada vez más sofisticadas.
Servidores Web
El servidor web es un proceso que corre de manera autónoma (no necesita la intervención de una persona
para funcionar) en un equipo conectado a la red. Su función es escuchar permanentemente en puerto lógico
de red las conexiones y solicitudes de los clientes.
UNIDAD 3 5
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Los servidores web deben implementar y entender el protocolo HTTP (entre otros) para poder responder
correctamente las peticiones de sus clientes. También tienen funciones para acceder a recursos almacenados
en su sistema de archivos. De esta manera, un servidor web puede “servir” archivos y recursos solicitados
por los clientes.
Como era de suponer (?), el primer servidor web fue inventado y desarrollado por el creador de la Web: el
buen Tim Berners-Lee, el mismo científico del CERN que también creó el protocolo HTTP y el navegador web.
A este primer servidor web su creador lo bautizó httpd: HTTP Daemon;; Demonio HTTP. Aclaremos que el
término demonio es muy utilizado en la jerga Unix para definir a los procesos que funcionan solos de manera
autónoma.
Contenido dinámico
En un primer momento, los servidores web se dedicaban a servir archivos estáticos por HTTP. Conforme fue
evolucionando la Web, se le incorporaron capacidades para generar contenido dinámico. Este contenido
dinámico varía según la solicitud del cliente y sus parámetros. Para generar este contenido, a menudo un
servidor web debía estar conectado y acceder a un servidor de bases de datos.
De esta forma nacen las páginas web dinámicas y con ellas las aplicaciones web.
Para realizar esta tarea de generar contenido dinámico, el servidor web requiere alguna forma de
procesamiento. Este procesamiento se lo brindan los lenguajes de programación del lado del servidor que
vimos en la clase anterior.
Por ejemplo, el Apache web server incorpora como extensión al procesador del lenguaje PHP. Como
contrapartida, el servidor Apache Tomcat está especialmente diseñado para ejecutar programas escritos en
Java, denominados Java Servlets.
También pueden residir en un equipo de la red local. Esta configuración es propia de algunas empresas
chicas, oficinas y comercios, que alojan localmente su sistema web y lo operan de forma privada, sin salida a
internet.
UNIDAD 3 6
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Pero en el ambiente donde realmente se lucen los servidores web es en internet, ellos nacieron para funcionar
en internet. Existen varios tipos de configuraciones para internet: puede ser que un servidor web esté instalado
en un servidor físico, puede estar virtualizado compartiendo el servidor físico con otros sistemas al mismo
tiempo, o bien puede ser alojado en un sistema cloud, más comúnmente conocido como “la nube”. Este último
tipo de configuración es un tema muy extenso, brindando infinidad de posibilidades, tales como la replicación,
virtualización, balanceo de carga, incremento de instancias del mismo servidor dependiendo de la demanda,
entre otras tantas alternativas.
Concurrencia
Antes de revisar en detalle las características de los principales servidores, debemos definir el concepto de
concurrencia. Este se refiere a la situación cuando varios procesos quieren acceder al mismo elemento, en el
mismo instante. Esta situación se da continuamente en los servidores: cada solicitud de un cliente es un
proceso que quiere acceder a un recurso del servidor y debe ser atendido con urgencia. Todos los servidores
están preparados para resolver el problema de la concurrencia.
También existe una alternativa a los procesos: la creación de múltiples hilos de ejecución dentro del mismo
proceso. Con este modelo se siguen atendiendo varios clientes en paralelo, pero la diferencia radica en que
los hilos de ejecución comparten el mismo espacio de procesamiento y memoria. Esto es una ventaja, frente
al enfoque de procesos, pero también acarrea la desventaja del cambio de contexto: un asunto propio de la
programación avanzada que requiere tiempo extra de computación para ser llevado a cabo.
De esta manera se resuelven los problemas de concurrencia en los servidores web clásicos, tales como
Apache, IIS, Tomcat, etc.
Otra desventaja del enfoque basado en procesos/hilos de ejecución es el bloqueo. El bloqueo de la ejecución
se da cuando un proceso o hilo de ejecución debe acceder a dispositivos de entrada y/o salida, durante ese
tiempo el proceso queda bloqueado. El bloqueo genera pérdidas de tiempo y problemas de escalabilidad,
imposibilitando la atención de una mayor cantidad de clientes concurrentes.
UNIDAD 3 7
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
El primer ejemplo de este modelo de servidor es Nginx, creado por Igor Sysoev en 2004. Si bien, tiene ya
muchos años de existencia, recién tomó notoriedad en la última década.
Este tipo de servidor elimina el modelo de procesos o el hecho de crear un hilo paralelo de ejecución por cada
cliente. En su lugar utiliza un pool de eventos que son despachados de manera asincrónica (a destiempo). Es
un modelo sencillo que logró demostrar una gran performance, alcanzando resolver miles de peticiones
concurrentes con éxito.
En la actualidad Nginx es el servidor web más utilizado en toda internet. Lo utilizan empresas como Facebook,
GitHub, Netflix o Wordpress, entre tantas otras.
Es interesante notar la arquitectura interna de pool de eventos y la eliminación de la programación multi hilo
(multi threading) también la adoptan node.js y el motor V8 de Google Chrome.
Un Framework o Marco de trabajo es un conjunto de librerías y objetos organizados que simplifican las tareas
repetitivas en la programación. A menudo están programados en el mismo lenguaje que estamos utilizando y
funcionan sin necesidad de cambiar su código fuente. Por ejemplo, el acceso a una base de datos requiere
de operaciones básicas tales como lectura, edición, borrado y alta de registros. Estas operaciones son
repetitivas, es decir son siempre las mismas para distintos tipos de tablas de base de datos. En programas
muy grandes se puede llegar a generar una gran repetición de código;; muchas partes de código similar
multiplicadas por toda la aplicación. La repetición del código fuente es un asunto que siempre trataremos de
evitar en nuestros desarrollos.
Los frameworks de desarrollo aportan una forma organizada de programación, a veces requieren que
adaptemos nuestra forma de programar a sus estructuras. Pero aportan múltiples ventajas, como el ahorro
de trabajo al brindar múltiples operaciones listas para utilizar, también aportan cuestiones de seguridad. En
el ejemplo de los frameworks de acceso a bases de datos (en programación orientada a objetos se los
denomina ORM), estos aseguran los accesos a la base de datos filtrando inyecciones SQL entre otras
cuestiones de seguridad.
UNIDAD 3 8
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Los Frameworks requieren un cambio de paradigma: la inversión de control. Nos referimos a control como la
secuencia en que se ejecutan las instrucciones de un programa. En un programa simple, imperativo, el órden
de ejecución es explícito, tal y como lo definió la o el programador. En la programación orientada a eventos,
nuestro código fuente va a reaccionar a ciertos eventos y estos serán quienes finalmente decidirán el órden
del control.
Cuando se programa bajo un Framework, existen eventos o anotaciones a las que adherimos y escribimos
nuestro código para que reaccione a esos eventos que disparará el framework. Se puede decir que el
Framework termina siendo usuario de nuestro código y no al revés.
Los frameworks del lado del servidor fueron los primeros en surgir. Gracias a la naturaleza flexible de los
lenguajes interpretados o de scripting, se pueden realizar muchas tareas de metaprogramación, es decir
programación sobre la programación.
Del lado servidor hay muchas tareas repetitivas que se pueden simplificar y evitar, como por ejemplo la lectura
e interpretación de los mensajes HTTP de entrada, sobre todo los mensajes POST que contienen
generalmente parámetros provenientes de formularios de datos. La escritura y envío de las respuestas es
otra tarea que los frameworks alivian a las y los desarrolladores.
Recordemos que internet es como una jungla o una ciudad muy peligrosa: habitada por una gran diversidad
de individuos, muchos de ellos “gente de mala fé”. Por eso nunca hay que confiar plenamente en un mensaje
que llega desde internet, antes de leerlo y procesarlo hay que sanearlo apropiadamente para quitarle códigos
maliciosos e inyecciones de scripts. Esta es otra de las grandes tareas repetitivas de las que se ocupan los
frameworks del lado servidor.
Este modelo MVC separa en capas de objetos las responsabilidades habituales de una aplicación de servidor.
Modelo
El Modelo representa a los objetos de negocio. En esta capa vamos a representar el modelo de entidades de
datos de nuestra aplicación web. Estos objetos se encargarán de acceder a la base de datos y garantizar su
propia persistencia, además de representar al modelo de negocio durante toda la ejecución de la aplicación.
Vista
UNIDAD 3 9
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Esta capa se encarga de generar lo que se va a mostrar al cliente, denominada vista. Generalmente aquí
radican los mecanismos, plantillas y demás, para la generación de páginas HTML dinámicas. La generación
de la vista será alimentada por los datos provistos por los objetos del Modelo.
Controlador
En la capa de Controlador se definen todos los puntos de entrada y salida de la aplicación, también llamados
endpoints.
Es habitual tener funciones dedicadas a atender las distintas rutas del servidor y mensajes HTTP, como por
ejemplo: GET /clientes/, PUT /clientes/id, etc.
Habrá un controlador por cada entidad que maneje la aplicación: un controlador para los Clientes, otro para
los Artículos, otro para los Proveedores, etc.
El controlador conoce la vista que tiene que responder a cada pedido del cliente.
Otras variantes
Además del modelo MVC existen otras variantes para realizar acciones distintas. Por ejemplo, es muy útil en
la actualidad diseñar una aplicación web que devuelva todas las respuestas en formatos de datos
estructurados tales como JSON o XML, en lugar de devolver una vista HTML ya cocinada para visualizar en
el cliente.
Este tipo de trabajo se ve en las APIs web y fundamentalmente en las APIs REST, que ya mencionaremos
en la próxima clase.
De ninguna manera pretendo que esta sea una lista exhaustiva, solo es un pantallazo para tener en cuenta
los nombres de algunos de los frameworks más populares hoy en la industria.
UNIDAD 3 10
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
Páginas dinámicas
Durante la primera generación de aplicaciones web, la cosa era muy sencilla: todo se generaba en el servidor
y el cliente solo visualizaba y recogía datos. Esto significa que el navegador no tenía muchas
responsabilidades y todo el peso de la aplicación recaía sobre el servidor. Este tipo de aplicaciones no daban
una buena experiencia de usuario, como sí la daban los sistemas Cliente/Servidor basados en interfaces ricas
de usuario, pero que no corrían sobre un navegador ni sus mensajes iban sobre protocolos de internet.
El problema de este modelo de aplicación web es que por cada cambio o interacción que realiza la o el
usuario, se requiere una actualización completa de toda la página, yendo y viniendo constantemente a través
de la red.
Con las mejoras alcanzadas en las plataformas cliente, concretamente con la llegada de Google Chrome, su
motor V8 y los avances en el lenguaje Javascript, se pudo comenzar a realizar tareas más complejas en el
cliente. A partir de esto se empezó a equilibrar la balanza y las responsabilidades se repartieron entre el
navegador y el servidor.
Este mecanismo ahorra ancho de banda, disminuye la latencia entre interacciones (se denomina latencia al
tiempo de espera entre una solicitud y su respuesta).
Como podemos imaginarnos, no es nada fácil programar un frontend con estas características,
completamente desde cero. Para esta tarea acuden a nuestro rescate los Frameworks del lado cliente.
De nuevo, si adaptamos la estructura de nuestra aplicación y nuestra forma de programar a los estándares
que marca cada Framework, podremos rápidamente ser beneficiarios de las ventajas que estos nos traen,
permitiéndonos desarrollar complejas interfaces de usuario basadas en componentes visuales modulares y
reutilizables.
UNIDAD 3 11
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)
• React, mantenido por Facebook (Meta). Por default usa ECMAScript (Javascript) pero se puede configurar
para programar en TypeScript.
• Electron. Este framework tiene la capacidad de mostrar aplicaciones web como si fueran aplicaciones de
escritorio.
Conclusión
Esta clase fue tan extensa como apasionante (por lo menos para mí). Pudimos ver el mapa de arquitectura
de aplicaciones web, tanto en la historia como para las aplicaciones actuales. Aprendimos lo indispensable
sobre servidores y navegadores web, sus evoluciones y características. Ahora conocemos sobre frameworks,
sus conceptos y aportes a la programación web.
En la próxima clase abordaremos el despliegue de aplicaciones web, middleware, API REST, Cloud
computing y mucho más!
Lo invitamos a resolver la actividad de autoevaluación correspondiente al módulo en el entorno
virtual. Luego, continuamos con el cuarto módulo del curso.
UNIDAD 3 12
Salta al contenido principal
Página Principal > Mis cursos > IN39838/23_IN-A3-51712 > Unidad 1: La web por dentro > Cuestionario - Unidad 1
1 2 3 4 5 6 7 8 9 10
Finalizar revisión
Estado Finalizado
lunes, 18 de septiembre de 2023, 09:01
Finalizado en
b.La Web es una topología de red física, tal como la topología de Estrella, Bus o Anillo.
c.La WWW o World Wide Web fue desarrollada por Tim Berners-Lee, investigador del CERN en
1990.
d.La World Wide Web fue desarrollada por Tim Berners-Lee, del Departamento de Defensa de
los Estados Unidos, como una parte importante del proyecto ARPANET.
Respuesta correcta
c.Los mensajes HTTP son mensajes de red de bajo nivel, están codificados en binario y son
inaccesibles para la lectura humana.
d.Los mensajes HTTP son estructuras de datos que representan solicitudes del cliente
(request) o respuestas del servidor (response). Su estructura es sencilla, generalmente
cuentan de tres partes: la primera línea, las cabeceras y el cuerpo del mensaje.
b.El término sistema de información se aplica exclusivamente a los sistemas que brindan
información crediticia de personas y empresas, tales como Veraz, Nosis o la Central de
Deudores del Banco Central de la República Argentina.
c.Un sistema de información es un conjunto de procedimientos organizados para administrar
la información de una entidad. Hoy en día, en general los sistemas de información son
sistemas informáticos, donde la principal herramienta es el software de computadora.
c.Se denomina aplicación Web sólo a la parte de un sistema que se ejecuta en el navegador
web, es decir el Frontend.
b.Los lenguajes de programación sirven para desarrollar programas. Algunos pueden ser
ejecutados en el servidor y otros en el cliente. Algunos lenguajes de programación populares
son: JavaScript, C#, Java, PHP y Python.
c.Se denomina lenguaje de programación a los lenguajes que solo se ejecutan en los
servidores web. El resto de los lenguajes son lenguajes de scripting.
Página Principal > Mis cursos > IN39838/23_IN-A3-51712 > Unidad 2: Lenguajes de Programación Web > Cuestionario - Unidad 2
1 2 3 4 5 6 7 8 9 10 11
Finalizar revisión
Estado Finalizado
lunes, 18 de septiembre de 2023, 10:35
Finalizado en
b.
Ninguna de las opciones.
c.Un lenguaje de programación es un conjunto de instrucciones, reglas y definiciones
sintácticas que permiten expresar acciones para ser ejecutadas por una computadora. Existen
lenguajes de alto y bajo nivel, los de alto nivel se acercan al lenguaje humano y los de bajo
nivel se acercan al lenguaje de máquina.
Pregunta 2 ¿Cuál es el proceso que se lleva a cabo para traducir las instrucciones de un programa al
Correcta lenguaje de máquina?
Se puntúa 0,50 sobre 0,50
Seleccione una:
a.Es el proceso de intercambio de mensajes HTTP entre un navegador web y un servidor web,
mediante el uso de protocolos de red, sobre Internet.
b.Este proceso se denomina Compilación. Es llevado a cabo por un programa llamado
Compilador, que lee el código fuente de alto nivel escrito por el programador y lo traduce a
instrucciones de bajo nivel que serán interpretadas y ejecutadas por el sistema operativo en el
microprocesador.
d.No existe tal diferencia, ya que hoy en día todos los lenguajes de programación son
compilados antes de su ejecución.
c.Los lenguajes script son compilados porque deben pasar por el proceso de compilación
previo a su ejecución.
b.Correrá bajo el control de un programa servidor web, tal como Apache, Tomcat o Nginx.
c.Bajo el control directo del sistema operativo, tal como Linux, macOS o Windows.
Pregunta 8 ¿Cuáles son los lenguajes más populares que corren del lado del Cliente?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.PHP, ASP y TypeScript.
d.Java, C# y Ruby.
c.El principal lenguaje de programación del lado del Cliente siempre fue JavaScript, y así se
mantiene en la actualidad.
c.Full Stack se refiere a los lenguajes y/o entornos de programación que permiten escribir una
aplicación web íntegramente en un sólo lenguaje de programación. Esto quiere decir que la
programación del Cliente (Frontend) y la programación del servidor (Backend) podrán
escribirse en el mismo lenguaje de programación. En la actualidad el principal lenguaje Full
Stack es JavaScript.
d.Full stack se refiere a las múltiples capas de procesamiento por las que pasa un programa,
partiendo desde la capa más alta del navegador hasta la capa más baja del sistema operativo.
El principal lenguaje Full Stack es C++.
Página Principal > Mis cursos > IN39838/23_IN-A3-51712 > Unidad 3: Plataformas Web Cliente/Servidor > Cuestionario - Unidad 3
1 2 3 4 5 6 7 8 9 10 11
Finalizar revisión
Estado Finalizado
lunes, 18 de septiembre de 2023, 12:38
Finalizado en
b.Si, porque se denomina cliente a toda la plataforma que se encuentra del lado del usuario.
Esto es tanto el hardware (PC, móvil, etc.) como el software (programas instalables,
navegador, frontend de una aplicación web, etc.).
c.No, porque el navegador primero se debe descargar desde un servidor y eso lo convierte en
una aplicación de servidor.
b.Código móvil es todo código que puede ser modificado, modularizado y reemplazado por
otro código de similares características.
c.Se denomina Código móvil al código hash que generan los servidores como token
identificador de sesión, como medida de protección de la seguridad.
d.Se denomina Código móvil a programas y scripts que viajan a través de internet, desde el
Servidor hasta el navegador web para ser ejecutado por este último.
Pregunta 4 ¿Qué significa Concurrencia y que tiene que ver con los Servidores?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Se denomina Concurrencia al acceso simultáneo de varios procesos (pueden ser clientes) a
un mismo recurso del servidor.
b.Se denomina Concurrencia al tráfico de red medido entre un nodo Servidor y un nodo Cliente,
a través de Internet.
d.Se denomina Concurrencia a la frecuencia con la que accede un navegador a un sitio web.
b.Se refiere a quién determina el orden en que se ejecuta una aplicación. En un programa
tradicional, la o el programador determina el orden de ejecución. En un programa que
implementa un Framework, es este último quién determina el orden de ejecución.
c.Se refiere a la inversión de circuitos a nivel de hardware. Estas operaciones son accesibles a
través de la interfaz POSIX, la cual poseen la mayoría de los sistemas operativos modernos.
b.Falso. Si bien, los primeros frameworks que aparecen son para el servidor, hoy en día hay
frameworks tanto para backend (servidor) como para frontend (cliente).
c.Verdadero. Los frameworks son para lenguajes de scripting del lado del servidor, tales como
Symfony para PHP o Ruby on rails para Ruby.
b.MVC significa Mode Virtual Call y se refiere a una tecnología de llamadas remotas en
entornos virtualizados.
c.Las siglas MVC se refieren al método Model Virtual Contoller y es utilizado para la
virtualización de controladores y enponits virtuales.
c.Falso. Si bien, es cierto que del lado del cliente abundan los frameworks de diseño gráfico,
también existen los frameworks de programación del lado del cliente.
d.Falso. Sólo existen frameworks de programación para el lado del Cliente. El diseño gráfico
de una interfaz de usuario se implementa mediante exclusivamente HTML5, CSS3 y Sass.
Página Principal > Mis cursos > IN39838/23_IN-A3-51712 > Unidad 4: Bases de datos. Despliegue, alojamiento y seguridad de aplicaciones Web > Cuestionario - Unidad 4
1 2 3 4 5 6 7 8 9 10 11 12 13
Finalizar revisión
Estado Finalizado
martes, 19 de septiembre de 2023, 13:57
Finalizado en
d.Falso. Si bien es cierto que en los ambientes web, el Middleware es una capa muy
importante para la simplificación de funcionamiento de cientos de tecnologías en conjunto, el
concepto Middleware es anterior a la invención de la World Wide Web.
c.REST es el estilo arquitectónico de sistema web más utilizado en la actualidad. Permite una
gran flexibilidad e interoperabilidad con sistemas externos al propio. La API es la interfaz de
programación que define la forma de comunicarse con el sistema web.
d.REST es el modo de bajo consumo en el cual entran los sistemas servidores cuando baja la
demanda de los clientes.
Pregunta 4 Una base de datos es una planilla de Excel estructurada y compartida por varios usuarios en la
Correcta red.
d.Falso. Una base de datos es una estructura mucho más compleja que relaciona tablas de
datos con una estructura de registros y campos bien definida. En general las bases de datos
residen dentro de programas denominados motores de bases de datos o DBMS.
Pregunta 5 Las Bases de datos Relacionales son sistemas que administran grandes cantidades de datos
Correcta estructurados y relacionados mediante el uso de Tablas y se consultan mediante el lenguaje
SQL.
Se puntúa 1,00 sobre 1,00
Seleccione una:
a.Falso. Se denominan Bases de datos relacionales a los libros de Excel que contienen varias
panillas estructuradas en filas y columnas, y que además estas planillas están referenciadas
entre sí (de ahí la propiedad relacional).
d.Verdadero. Los programas que gestionan las Bases de datos relacionales se denominan
DBMS, Database Management System o Sistema de administración de bases de datos.
b.Verdadero. El ISP asigna una IP pública a cada dispositivo que deba conectarse a Internet,
incluso si este se encuentra dentro de una red local.
d.Falso. No es necesario poseer una IP pública para conectarse a Internet. Una computadora
puede conectarse a Internet mediante la IP privada y dinámica que le asigna su router local.
Pregunta 7 El Web Hosting es un modelo de servicio para alojar páginas y sistemas Web en Internet.
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.
b.Verdadero. El método de Web Hosting fue el primero y ampliamente utilizado hasta hoy en
día para alojar sitios web o páginas sin demasiada complejidad en su operación.
b.Falso. No todo tipo de Hardware es virtualizable, solo aquel que cuente con primitivas de
fábrica para la virtualización.
c.Falso. No sólo se puede virtualizar Hardware, también software. Pero el uso más conocido
de esta técnica es la virtualización de equipos de hardware (máquinas virtuales).
Pregunta 11 Docker es un Hipervisor similar a VMWare o Virtual Box que sirve para virtualizar sistemas
Correcta operativos.
d.Verdadero. Docker es una versión reducida del hipervisor VMWare que corre sobre entornos
linux y provee una solución mucho más liviana.
b.Los servicios de Cloud Computing más conocidos son AWS, Google Cloud Platform y Azure.
d.Los servicios de Cloud Computing más conocidos son iCloud, One Note y Dropbox.