Está en la página 1de 47

Programación Web Full

Stack (Nivel 1)
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)

UNIDAD 1

La Web por dentro

Curso: Programación Web Full Stack (Nivel 1)

UNIDAD 1 2
PROGRAMACIÓN WEB FULL STACK (NIVEL 1)

Unidad 1: La Web por dentro


• Introducción
• La World Wide Web: su historia
• Los protocolos de comunicación
• Los sistemas Web de información
• Lenguaje de marcas, hojas de estilo y programación
• Conclusión

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.

Está basada principalmente en el intercambio de mensajes, documentos y datos hypermedia (datos en


distintos formatos), tales como páginas html, imágenes, archivos de audio y video, streaming de canciones y
películas, etc.

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.

La World Wide Web: su historia


La World Wide Web fue creada en 1990 por Tim Berners-Lee, un investigador del CERN (Organización
Europea para la Investigación Nuclear). Primeramente la propuso como una arquitectura sobre Internet y
luego de un tiempo de trabajo y programación, logró poner en funcionamiento sus cuatro componentes
fundamentales:

• El protocolo de aplicación, HTTP.

• El lenguaje de marcado para la representación de documentos, HTML.

• Un servidor web llamado HTTP daemon.

• Un cliente web o navegador.

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


En líneas generales, un protocolo es un conjunto de reglas y comportamientos a llevar a cabo frente a cierto
evento o situación. Existen protocolos en el ámbito político y diplomático, en el ámbito médico, institucional y
en la mayoría de las actividades humanas organizadas.

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.

Habitualmente a cada mensaje de solicitud se denomina Request y el mensaje de respuesta se denomina


Response.

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.

Estructura de un mensaje de solicitud (Request)


Como ya se mencionó, un mensaje de solicitud o request está conformado por un texto plano dividido en tres
partes fundamentales: la primera línea, las cabeceras y el cuerpo del mensaje.

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.

GET /index.html HTTP/1.1

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

El cuerpo del mensaje

El cuerpo o body del mensaje de solicitud es el tercer componente.

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.

Estructura de un mensaje de respuesta (Response)


Tal como sucede con los mensajes de solicitud, los mensajes de respuesta tienen prácticamente la misma
estructura compuesta de tres partes: la primera línea, las cabeceras y el cuerpo del mensaje.

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.

HTTP/1.1 404 Not found

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)

• 100 a 199: Respuestas informativas.

◦ Cuando el cliente solicita información técnica, no necesariamente la representación de un recurso o la


ejecución de una acción (verbo), el servidor puede responder con mensajes informativos.

• 200 a 299: Respuestas satisfactorias.

◦ 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.

• 300 a 399: Redirecciones.

◦ 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.

• 400 a 499: Errores de los clientes.

◦ 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.

• 500 a 599: Errores de los servidores.

◦ 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.

El cuerpo del mensaje

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.

HTTP Seguro: HTTPS


Como mencionamos anteriormente, HTTP fue concebido como un protocolo simple, de fácil interpretación,
incluso para un ser humano. La razón fue garantizar la transparencia en la forma de intercambiar mensajes y
facilitar la implementación del protocolo en distintas plataformas.

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.

Comunicación en tiempo real: Websockets


Dentro del modelo Cliente/Servidor, en el cual está basado HTTP, al cliente se lo considera activo porque es
quién realiza las solicitudes y al servidor se lo denomina pasivo porque sólo responde las solicitudes de los
clientes.

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.

Los sistemas web de información


Los sistemas de información son procedimientos para generar, almacenar y organizar la información de una
entidad dada. Hoy en día, casi en su totalidad, los sistemas de información son implementados como sistemas
informáticos donde la principal herramienta es el software de computadora. Pero no siempre los sistemas de
información fueron sistemas computacionales.

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.

Generalmente, al software que se ejecuta en el servidor web se lo denomina Backend y al ejecutado en el


navegador se lo llama Frontend.

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.

Lenguaje de marcas, hojas de estilo y programación


De a poco vamos adentrándonos en los detalles de la construcción de software para la web. Para el desarrollo
de un sistema web se requieren varios tipos de elementos:

• 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.

Lo invitamos a resolver la actividad de autoevaluación correspondiente al módulo en el entorno virtual. Luego,


continuamos con el segundo módulo del curso.

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)  
 

Unidad  2:  Lenguajes  de  programación  Web

•          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.  

En   el   momento   de   la   ejecución   de   un   programa,   la   computadora   (específicamente   su   unidad   central   de  


procesamiento  o  CPU)  necesita  leer  datos  e  instrucciones  expresados  en  lenguaje  de  máquina.

 
 
 
 
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.

Los  lenguajes  de  programación

Un   lenguaje   de   programación   es   un   conjunto   de   instrucciones,   reglas   y   definiciones   sintácticas   que,  


combinadas   correctamente,   permiten   expresar   acciones   a   ser   ejecutadas   por   una   computadora.   Estas  
instrucciones  son  siguiendo  cierta  estructura  en  un  archivo  de  texto  con  determinada  extensión.  Por  ejemplo  
los   programas   Java   se   escriben   en   archivos   con   extensión   .java,   los   archivos   C#:   .cs,   javascript:   .js   y   así.  
Como  se  mencionó  anteriormente,  existen  lenguajes  de  bajo  nivel  (lenguaje  de  máquina  y  cercanos  a  él)  y  
lenguajes  de  alto  nivel  (más  cercanos  al  lenguaje  humano).

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.

Compilación  previa  a  la  ejecución


Con  este  método,  luego  de  escribir  un  programa,  este  se  compila  antes  de  ser  ejecutado.

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.

Compilación  en  tiempo  de  ejecución


Existe  otra  forma  de  compilación  donde  no  interviene  la  o  el  programador.  En  este  caso,  luego  de  escribir  un  
programa  se  pasa  directamente  al  proceso  de  ejecución.  La  ejecución  del  programa  la  realiza  un  intérprete  

 
 
 
 
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.

Lenguajes  script:  los  amos  de  la  Web  

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.

Lenguajes  del  lado  del  Servidor

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)  
 

Lenguajes  del  lado  del  Cliente

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)  
 

Lenguajes  Full  Stack

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)  
 

Unidad  3:  Plataformas  Web  Cliente/Servidor  


•          Introducción  
•          El  cliente  Web  por  excelencia:  el  Navegador  
•          Sevidores  Web  
•          ¿Qué  es  un  Framework?  
•          Frameworks  del  lado  del  Servidor  
•          Frameworks  del  lado  del  Cliente  
•          Conclusión  

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.  

Para   sistemas   Cliente/Servidor   no   basados   en   Internet,   generalmente   es   necesario   instalar   el   programa  


cliente   en   cada   computadora   para   cada   usuaria   o   usuario.   Esto   demanda   una   complejidad   en   el  
mantenimiento   del   sistema   porque   hay   que   instalar   individualmente   cada   programa   cliente   y   por   cada  
actualización  del  software  se  requiere  

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)  
 

El  cliente  Web  por  excelencia:  el  Navegador

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.

Historia  de  los  navegadores  web

1990  El  primer  navegador:  WorldWideWeb  


El  primer  navegador  web  fue  creado  en  el  CERN,  en  1990  por  el  mismísimo  Tim  Berners-­Lee;;  el  creador  del  
protocolo   HTTP   y   la   Web,   al   cual   bautizó   con   el   nombre   de   WorldWideWeb.   Este   primer   navegador   era  
bastante  sofisticado  gráficamente  pero  sólo  funcionaba  en  computadoras  NexT  y  obviamente  para  la  primera  
y  rudimentaria  versión  del  protocolo  HTTP.

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).

1994  Netscape  Navigator  


El  gran  salto  a  la  popularidad  lo  dió  el  navegador  Netscape  Navigator,  creado  por  Marc  Andreesen,  uno  de  
los  autores  de  Mosaic.  Este  navegador  fue  el  mejor  en  su  época,  en  eficiencia  y  prestaciones,  fue  el  primero  
en  incorporar   la   ejecución  de   scripts  Javascript,   de   hecho   este   lenguaje   fue   inventado   para   correr   en   este  
navegador.  Netscape  Navigator  fue  el  primer  navegador  comercial.  

 
 
 
 
UNIDAD  3   3  
PROGRAMACIÓN  WEB  FULL  STACK  (NIVEL  1)  
 

1995  Microsoft  Internet  Explorer  


 
Por  su  parte,  Microsoft  llega  de  forma  tardía  al  negocio  de  Internet.  Lo  hace  de  la  mano  de  su  controversial  
Internet  Explorer.  

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.

2003  Apple  Safari  


En  este  año,  Apple  lanza  su  propio  navegador  caracterizado  por  ser  más  seguro  y  rápido  en  el  ecosistema  
Apple,  además  de  ser  el  más  adoptado  por  sus  usuarias  y  usuarios.

2004  Mozilla  Firefox


Este   es   el   navegador   que   conocemos   en   la   actualidad.   Ampliamente   adoptado   por   la   comunidad   de  
desarrolladoras  y  desarrolladores,  como  también  por  la  comunidad  Linux,  ya  que  en  la  actualidad  este  es  el  
navegador  que  viene  por  defecto  en  las  distribuciones  basadas  en  Ubuntu.

2008  Google  Chrome


Fue  en  este  año  que  Google  desató  una  verdadera  revolución  en  internet.  Desde  la  creación  de  su  motor  V8,  
la  ejecución  de  programas  Javascript  tuvo  un  verdadero  rendimiento  y  fue  a  partir  de  este  evento  que  dicho  
lenguaje  fue  tomado  realmente  en  serio.  El  lenguaje  siguió  evolucionando  a  la  par  que  el  navegador  y  gracias  
a  ello  surgieron  entornos  como  node.js:  programación  de  sistemas  backend  basados  en  V8  y  Javascript.

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.

2015  Microsoft  Edge


Para  quitarse  el  mal  gusto  que  le  dejara  el  viejo  Internet  Explorer,  Microsoft  desarrolla  su  nuevo  navegador  
desde  cero:  Microsoft  Edge.  Edge  es  un  sistema  mucho  más  eficiente  que  su  antecesor  Internet  Explorer,  
aporta   novedades   como   la   lectura   de   e-­books   y   varias   integraciones   con   el   sistema   operativo   Windows.  

 
 
 
 
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.

El  Navegador  como  plataforma  para  aplicaciones  web


Para   nuestra   fortuna,   hoy   en   día   existen   muchos   navegadores   pero   pocas   variantes   de   núcleos,   en   la  
actualidad  hay  tres:  el  motor  de  Mozilla  Firefox,  el  de  Google  Chrome  y  el  de  Apple  Safari.

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.

Estos   lenguajes   de   programación,   necesitan   de   un   procesador   o   intérprete.   Algunos   servidores   web  


incorporan  estos  intérpretes  como  extensiones  o  plugins,  para  otros  la  interpretación  y  ejecución  de  scripts  
forman  parte  de  su  estructura  y  funcionamiento  principal.  

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.

¿Dónde  se  encuentran  los  servidores  web?


Un  servidor  web  puede  funcionar  en  el  mismo  equipo  donde  reside  el  cliente,  este  es  el  caso  de  las  estaciones  
de  trabajo  para  la  programación.  Las  y  los  desarrolladores  solemos  tener  corriendo  en  nuestra  PC  un  servidor  
web  para  ir  probando  la  aplicación  que  se  está  desarrollando.

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.

Servidores  web  actuales


Hoy  existe  una  diversidad  de  servidores  web,  dependiendo  del  ámbito  de  uso.  Siguen  vigentes  servidores  
clásicos  como  Apache  o  IIS  (Internet  Information  Services),  pero  hace  unos  años  surgió  una  nueva  generación  
de  servidores  altamente  performantes,  es  el  caso  de  Nginx.  Veamos  brevemente  sus  características.

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.

Apache,  un  clásico


Durante  décadas,  Apache  web  server  fue  el  servidor  dominante  en  internet.  Su  funcionamiento  interno  está  
basado   en   una   arquitectura   clásica   de   servidor,   la   cual   está   basada   en   procesos.   Apache   crea   un   nuevo  
proceso  para  cada  cliente  que  se  conecta  y  lo  atiende  en  paralelo,  en  un  proceso  aparte,  al  igual  que  al  resto  
de  los  clientes.  La  creación  de  un  proceso  consume  muchos  recursos  del  servidor.

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)  
 

Nginx,  la  nueva  generación


A   causa   de   los   problemas   de   concurrencia   mencionados   anteriormente,   nace   una   nueva   generación   de  
servidores  basados  en  la  gestión  de  eventos  y  resolución  asincrónica  de  solicitudes  de  clientes.  

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.

¿Qué  es  un  Framework?

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.

Inversión  de  control


Los  Frameworks  van  más  allá  de  lo  que  hacen  las  librerías,  que  son  colecciones  de  funciones  disponibles  
para  que  las  y  los  programadores  utilicen  dentro  de  su  código,  sin  más.  

 
 
 
 
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.

Frameworks  del  lado  del  Servidor

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.

Modelo  Vista  Controlador


Los  Frameworks  web  siguen  ciertas  estructuras  o  modelos  arquitectónicos.  El  más  conocido  de  ellos  es  el  
modelo  MVC:  Model-­View-­Controller,  Modelo-­Vista-­Controlador.

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.

Frameworks  actuales  para  el  servidor


Vamos  a  enumerar  algunos  de  los  frameworks  más  conocidos  y  utilizados  en  la  actualidad  por  la  comunidad  
de  desarrollo  web.

       •  Express.js  para  node.js,  se  puede  programar  en  Javascript  y  TypeScript.

       •  Symfony,  Doctrine,  Laravel  o  Codeigniter  para  PHP.

       •  ASP  .Net  y  ASP  .Net  Core  para  C#.

       •  Ruby  on  Rails  para  Ruby.

       •  Gin,  Beego,  Martini  o  Gorilla  para  Go  Lang.

       •  Django,  Flask  o  Pyramid  para  Python.

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)  
 

Frameworks  del  lado  del  Cliente

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.

SPA:  Single  Page  Application


A  raíz  de  que  los  navegadores  permiten  ahora  la  programación  de  aplicaciones  complejas,  surgieron  las  SPA:  
Single   Page   Application   o   aplicación   de   una   sola   página.   Este   tipo   de   organización   local   de   la   interfaz   de  
usuario  evita  refrescar  continuamente  la  página  por  cada  minúsculo  cambio.  Ahora  el  navegador  contiene  la  
interfaz  de  usuario  completa,  esto  es  el  frontend.  Mediante  complejas  funciones  de  Javascript  el  navegador  
va  presentando  distintas  secciones  de  la  aplicación,  sin  necesidad  de  traerlas  desde  el  servidor.  Al  servidor  
solamente  se  lo  invoca  para  obtener  datos  o  realizar  operaciones  puntuales.

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)  
 

Frameworks  o  librerías  de  diseño  gráfico


Además,  este  tipo  de  Framework  siempre  vienen  acompañados  con  plantillas  o  librerías  de  diseño  CSS,  tales  
como  Bootstrap  o  Material.  Estas  librerías  nos  simplifican  la  vida  brindándonos  diseños  gráficos  profesionales  
y  responsivos  (que  se  adaptan  tanto  a  pantallas  de  PC  como  de  celulares).

Frameworks  actuales  para  el  cliente


Mencionemos  algunos  de  los  frameworks  web  para  cliente  más  conocidos  en  el  mercado.

       •  Angular,  mantenido  por  Google.  Basado  en  TypeScript  y  Javascript.

   •  React,  mantenido  por  Facebook  (Meta).  Por  default  usa  ECMAScript  (Javascript)  pero  se  puede  configurar  
para  programar  en  TypeScript.

       •  VueJS,  creado  por  Evan  You.  Basado  en  Javascript.

       •  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

lunes, 18 de septiembre de 2023, 08:53


Comenzado el

Estado Finalizado
lunes, 18 de septiembre de 2023, 09:01
Finalizado en

Tiempo empleado 7 minutos 53 segundos


10,00 de 10,00 (100%)
Calificación

Pregunta 1 ¿Qué es la Web?


Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.Ninguna de las anteriores.

b.La Web es una topología de red física, tal como la topología de Estrella, Bus o Anillo.

c.La Web es un compendio de protocolos de comunicación y diversas tecnologías


informáticas que permiten la comunicación, la colaboración y compartir recursos en Internet.

d.La Web es sinónimo de Internet, se refiere a la interconexión de servidores, routers, firewalls


y computadoras personales alrededor del mundo.

¡Muy bien! Tu respuesta es correcta.

Pregunta 2 ¿Quién inventó la Web?


Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.La Web fue inventada por el matemático británico Alan Turing mientras intentaba descifrar el
código Enigma del ejército alemán, durante el desarrollo de la Segunda Guerra Mundial.

b.Ninguna de las anteriores.

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.

¡Muy bien! Tu respuesta es correcta


Pregunta 3 ¿Cuáles fueron los cuatro elementos fundamentales que conformaron la creación de la Web?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las anteriores.

b.Los cuatro elementos fundamentales que conformaron la creación de la Web fueron: el


lenguaje HTML, un servidor web, un navegador web y el protocolo HTTP para transmitir los
mensajes entre el navegador y el servidor.

c.Los cuatro elementos fundamentales que conformaron la creación de la Web fueron: el


cliente, el servidor, el protocolo TCP y el protocolo IP.

d.Los cuatro elementos fundamentales que conformaron la creación de la Web fueron: el


protocolo HTML, el lenguaje de programación Java y el navegador Internet Explorer.

¡Muy bien! tu respuesta es correcta!

Pregunta 4 ¿Qué es un protocolo de comunicación?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Los protocolos de comunicación son conjuntos de reglas y comportamientos
implementados en sistemas y redes informáticas, que especifican un formato de mensajes
para intercambiar información entre dos o más participantes.

b.El término protocolo de comunicación se refiere exclusivamente a los procedimientos a


realizar en el ámbito médico, especialmente frente a una pandemia.
c.Los protocolos de comunicación se utilizan exclusivamente en el ámbito de la telefonía,
especifican el criterio para la numeración, el marcado y la duración de llamadas.

d.Ninguna de las anteriores.

Respuesta correcta

Pregunta 5 HTTP es…


Correcta
Seleccione una:
Se puntúa 1,50 sobre 1,50
a.HTTP es un protocolo de red diseñado para unificar distintos tipos de redes. Lo utilizan
principalmente los modems.
b.HTTP es un protocolo de comunicación del nivel de aplicación. Fue diseñado para el
intercambio de mensajes en Internet. En la actualidad es el protocolo principal y fue un
componente fundamental para la creación de la Web.

c.Ninguna de las anteriores.


d.HTTP es la alternativa antigua a buscar una página web directamente en la omnibox de
Google.

¡Muy bien! tu respuesta es correcta

Pregunta 6 ¿Cómo son los mensajes HTTP?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Los mensajes HTTP son los paquetes binarios utilizados por sistemas de mensajería
instantánea como Whatsapp, Telegram y Facebook Messenger.

b.Ninguna de las anteriores.

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.

¡Muy bien! tu respuesta es correcta


Pregunta 7 ¿Qué es un sistema información?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Un sistema de información es un servicio de notificaciones provisto por alguna empresa a
través de Internet.

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.

d.Ninguna de las anteriores.

¡Muy bien! Tu respuesta es correcta.

Pregunta 8 Una aplicación Web…


Correcta
Seleccione una:
Se puntúa 1,50 sobre 1,50
a.Una aplicación Web es cualquier programa disponible en la Web que puede ser descargado e
instalado en la computadora del usuario, para luego ser ejecutado sin conexión a Internet.

b.Una aplicación Web es un sistema de información basado en tecnologías web y que


funciona sobre esta. Son sistemas de software alojados en servidores web y que pueden ser
consumidos (utilizados) desde un navegador web, tanto desde una PC como desde un
dispositivo móvil.

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.

d.Ninguna de las anteriores.

¡Muy bien! Tu respuesta es correcta.

Pregunta 9 Lenguajes de marcas.


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Se denomina Lenguaje de marcas a todo aquel lenguaje basado en etiquetas, que permite
estructurar un documento para ser presentado en la pantalla de usuario. Los más conocidos
son HTML5 y XHTML.

b.Todos los lenguajes de programación son, en definitiva lenguajes de marcas o de marcado,


pues todos ellos poseen palabras clave como “if” o “for” que pueden ser considerados como
marcas.
c.El término Lenguaje de marca pertenece al ámbito del marketing digital y se refiere a
establecer un lenguaje de comunicación visual para una marca en particular, dentro de una
campaña publicitaria.

d.Ninguna de las anteriores.

¡Muy bien! Tu respuesta es correcta.


Pregunta 10 Lenguajes de programación
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las anteriores.

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.

d.Se denomina lenguaje de programación exclusivamente a los lenguajes que permiten


desarrollar aplicaciones instalables en una PC.

¡Muy bien! Tu respuesta es correcta


Salta al contenido principal

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

lunes, 18 de septiembre de 2023, 10:27


Comenzado el

Estado Finalizado
lunes, 18 de septiembre de 2023, 10:35
Finalizado en

Tiempo empleado 7 minutos 44 segundos


10,00 de 10,00 (100%)
Calificación

Pregunta 1 Un lenguaje de programación es…


Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.Un lenguaje de programación es un conjunto de instrucciones alfanuméricas expresadas en
sistema binario, para ser interpretadas directamente por el microprocesador de la
computadora.

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.

d.Un lenguaje de programación es un conjunto de instrucciones numéricas hexadecimales


para ser interpretadas directamente por el microprocesador de la computadora.

¡Muy bien! Tu respuesta es correcta.

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.

c.Ninguna de las opciones.


d.Es el proceso denominado Ejecución. Todos los lenguajes de programación pasan por este
proceso para poder funcionar en una computadora.

¡Muy bien! Tu respuesta es correcta.


Pregunta 3 Diferencia entre lenguajes interpretados y no interpretados.
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.No existe tal diferencia, ya que hoy en día todos los lenguajes de programación son
interpretados antes de su ejecución.

b.Ninguna de las opciones.


c.En los lenguajes interpretados, los programas son leídos directamente desde el código
fuente escrito por la o el programador. Esta tarea la realiza un programa denominado
Intérprete y realiza esta tarea cada vez que se debe ejecutar el mismo programa. Por el
contrario, los lenguajes no interpretados son los lenguajes que pasan por el proceso de
compilación previa a la ejecución.

d.No existe tal diferencia, ya que hoy en día todos los lenguajes de programación son
compilados antes de su ejecución.

¡Muy bien! Tu respuesta es correcta

Pregunta 4 ¿Los lenguajes script son interpretados o compilados?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.
b.Todos los lenguajes son interpretados por el sistema operativo, por lo tanto los lenguajes
script son interpretados.

c.Los lenguajes script son compilados porque deben pasar por el proceso de compilación
previo a su ejecución.

d.Históricamente, los lenguajes script fueron interpretados. Luego la mayoría de lenguajes


script evolucionaron en su arquitectura incorporando un compilador JIT (Just In Time) para
finalmente ejecutar código compilado.

¡Muy bien! Tu respuesta es correcta.

Pregunta 5 ¿Que es el Backend de un sistema web?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.
b.Se denomina Backend al código que reacciona ante los eventos del teclado y el mouse, en
una interfaz de usuario.

c.Backend son solo los motores de bases de datos.


d.Se denomina Backend a la parte de un sistema web que se ejecuta en el servidor. Toda la
lógica de negocio, el acceso a bases de datos y otros servicios se ubican en el backend. Es lo
contrario al Frontend, que es la parte visual del sistema.

¡Muy bien! Tu respuesta es correcta

Pregunta 6 ¿Cuáles de estos lenguajes corren del lado del servidor?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.ASP, C#, JavaScript, Java, Python, PHP, TypeScript.

b.Visual Basic, Clipper, Turbo Pascal, COBOL.

c.HTML, Java, JavaScript, CSS, Visual Basic.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta


Pregunta 7 Si desarrollamos un programa para ser ejecutado en el servidor, nuestro programa correrá bajo
Correcta el control de…

Se puntúa 1,00 sobre 1,00


Seleccione una:
a.Correrá bajo el control del navegador web, tal como Microsoft Edge, Mozilla Firefox o Google
Chrome.

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.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta.

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.

b.HTML, JavaScript y CSS.

c.Ninguna de las opciones.

d.Java, C# y Ruby.

¡Muy bien! Tu respuesta es correcta

Pregunta 9 ¿Cuál es el principal lenguaje de programación del lado del Cliente?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.El principal lenguaje de programación del lado del Cliente es PHP.

b.El principal lenguaje de programación del lado del Cliente es Java.

c.El principal lenguaje de programación del lado del Cliente siempre fue JavaScript, y así se
mantiene en la actualidad.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta.

Pregunta 10 ¿Que significa el término Full Stack y cuál es el principal lenguaje?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.
b.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 servidor web hasta la capa mas baja del sistema
operativo. El principal lenguaje Full Stack es JavaScript.

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++.

¡Muy bien! Tu respuesta es correcta.


Pregunta 11 ¿Existe sólo un lenguaje Full Stack?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.No. Cualquier lenguaje de programación actual tiene la capacidad de ser implementado
tanto en el Cliente como en el Servidor, por lo tanto todos pueden ser Full Stack.

b.Ninguna de las opciones.


c.No. Entre los lenguajes de programación más conocidos, además de JavaScript, se puede
considerar Full Stack a C#, ya que mediante su framework Blazor de .Net Core es posible
programar sistemas web íntegramente en C#.

d.Si. JavaScript es el único lenguaje de programación Full Stack.

¡Muy bien! Tu respuesta es correcta


Salta al contenido principal

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

lunes, 18 de septiembre de 2023, 12:33


Comenzado el

Estado Finalizado
lunes, 18 de septiembre de 2023, 12:38
Finalizado en

Tiempo empleado 4 minutos 54 segundos


10,00/11,00
Puntos

Calificación 9,09 de 10,00 (91%)

Pregunta 1 ¿Es el navegador un programa cliente?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.

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.

d.Si, porque el término cliente es sinónimo de usuario.

¡Muy bien! Tu respuesta es correcta

Pregunta 2 ¿Qué es el Código móvil?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.

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.

¡Muy bien! Tu respuesta es correcta


Pregunta 3 Los Servidores Web pueden correr dentro de los Navegadores Web.
Incorrecta
Seleccione una:
Se puntúa 0,00 sobre 1,00
a.Falso. Los servidores y navegadores web son componentes independientes y deben estar
distribuidos en diferentes equipos para trabajar de manera óptima.

b.Ninguna de las opciones.

c.Verdadero. Esto es posible gracias a la virtualización del código móvil.

d.Falso. Es al revés; los navegadores vienen incluidos en los servidores web.

Tu respuesta es incorrecta. Te sugerimos volver a ver el video y leer la bibliografía obligatoria de la


unidad 3

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.

c.Ninguna de las opciones.

d.Se denomina Concurrencia a la frecuencia con la que accede un navegador a un sitio web.

¡Muy bien! Tu respuesta es correcta

Pregunta 5 Un Framework es un driver para adaptar tecnologías diversas...


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Falso. Un Framework es un marco teórico de trabajo en el ámbito de las ciencias de la
computación.

b.Falso. Un Framework es un conjunto de librerías de objetos y funciones que simplifican


muchas tareas repetitivas en las aplicaciones que los usan.

c.Ninguna de las opciones.

d.Verdadero. Es también conocido por el término Driver multiplataforma o Patrón Adapter.

¡Muy bien! Tu respuesta es correcta

Pregunta 6 ¿Qué significa Inversión de Control?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.La Inversión de Control sucede cuando el navegador web atiende los eventos de teclado y
mouse emitidos por los controles de usuario (botones, listas, cajas de texto, etc.), en lugar de
que esta tarea la realice el servidor.

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.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta


Pregunta 7 Los Frameworks funcionan solo en el Servidor.
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Falso. Los frameworks funcionan exclusivamente del lado del cliente, como Angular o
Bootstrap.

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.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta

Pregunta 8 ¿Que significa MVC?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Las siglas MVC se refieren al patrón de arquitectura de software llamado Modelo-Vista-
Controlador.

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.

d.Ninguna de las anteriores.

¡Muy bien! Tu respuesta es correcta

Pregunta 9 Los Frameworks más comunes para el Servidor son:


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Angular, React y Blazor.

b.Ninguna de las opciones.

c.Angular, React, Blazor, Express.js y Symfony.

d.Express,js, Symfony, Doctrine, Laravel, Django y Flask.

¡Muy bien! Tu respuesta es correcta

Pregunta 10 ¿Qué es una SPA?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Ninguna de las opciones.
b.La sigla SPA se refiere a Single Point Access o Único punto de acceso, y se utiliza como
acceso unificado al servidor.

c.SPA es Server Process Access. Es un método de acceso a procesos internos que


implementan los sistemas operativos de servidor basados en POSIX.
d.La sigla SPA se refiere a Single Page Application o Aplicación de una sola página. Este tipo
de aplicaciones permite desarrollar sistemas web que no deben pedir al servidor cada página
o pantalla, sino que todo el frontend se genera localmente en el cliente.

¡Muy bien! Tu respuesta es correcta


Pregunta 11 Del lado del Cliente sólo existen Frameworks de diseño gráfico.
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Falso. Del lado servidor también existen frameworks de diseño gráfico.

b.Ninguna de las opciones.

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.

¡Muy bien! Tu respuesta es correcta


Salta al contenido principal

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

martes, 19 de septiembre de 2023, 13:53


Comenzado el

Estado Finalizado
martes, 19 de septiembre de 2023, 13:57
Finalizado en

Tiempo empleado 3 minutos 50 segundos


10,00 de 10,00 (100%)
Calificación

Pregunta 1 El Middleware es un concepto incorporado a la informática a partir de la creación de la World


Correcta Wide Web.

Se puntúa 0,50 sobre 0,50


Seleccione una:
a.Ninguna de las opciones.

b.Verdadero. El Middleware son los sistemas intermediarios de red para establecer la


conexión por internet. Estos dispositivos pueden ser, por ejemplo: routers, firewalls, switches,
gateways, modems, etc.
c.Verdadero. Este concepto vió la luz con la llegada de los servidores web, servidores de
aplicaciones y servidores de bases de datos que operan en conjunto para que funcione
correctamente un sistema de información web.

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.

¡Muy bien! Tu respuesta es correcta

Pregunta 2 ¿Qué es una API REST?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.REST es un servicio web basado en el estándar SOAP.

b.Ninguna de las opciones.

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.

¡Muy bien! Tu respuesta es correcta


Pregunta 3 ¿Cómo funcionan los Microservicios?
Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.La arquitectura de Microservicios define una forma segmentada y distribuida para crear
aplicaciones. Estas pueden interoperar entre sí, siendo autónomas al mismo tiempo,
permitiéndose evolucionar cada una de ellas por su cuenta.

b.Microservicios es una técnica de organizar los hipervínculos y menúes dentro de una


interfaz de usuario, en el navegador web. Propone organizar todas las operaciones como
pequeños servicios para las y los usuarios.

c.Ninguna de las opciones.

d.Los Microservicios son funciones de los microprocesadores Intel, disponibles en ambientes


virtualizados del lado del servidor.

¡Muy bien! Tu respuesta es correcta

Pregunta 4 Una base de datos es una planilla de Excel estructurada y compartida por varios usuarios en la
Correcta red.

Se puntúa 0,50 sobre 0,50


Seleccione una:
a.Falso. El término base de datos se aplica solamente a los archivos .accb, .mdb y .dbf. Estos
tipos de archivos corresponden a los sistemas Access, dBase y Visual Fox Pro,
respectivamente.

b.Ninguna de las opciones.


c.Verdadero. En efecto, se denomina base de datos a toda planilla de Excel que estructure en
filas y columnas una gran cantidad de datos que luego pueden ser consultados por varios
usuarios de la 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.

¡Muy bien! Tu respuesta es correcta

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).

b.Falso. Las bases de datos relacionales se basan en estructuras flexibles e indefinidas de


documentos, por lo tanto, cada entidad registrada puede ser muy distinta a las demás.

c.Ninguna de las opciones.

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.

¡Muy bien! Tu respuesta es correcta


Pregunta 6 Toda computadora conectada a Internet posee una IP pública para su uso exclusivo.
Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.Falso. En general las computadoras están conectadas a una red local junto a otros
dispositivos como celulares, tablets, TVs y otras computadoras. Todos los dispositivos de una
red local comparten una única IP pública asignada por el proveedor de Internet, para
comunicarse con la Web.

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.

c.Ninguna de las opciones.

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.

¡Muy bien! Tu respuesta es correcta

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.

c.Verdadero. El Web Hosting es el alquiler de un servidor físico conectado a Internet para


poder alojar sistemas y sitios web en él.

d.Falso. El Web Hosting es sinónimo de Cloud Computing, por lo tanto no se lo considera un


modelo de servicio en la actualidad.

¡Muy bien! Tu respuesta es correcta

Pregunta 8 ¿A qué denominamos Web Hosting Privado?


Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Web Hosting Privado es el servicio brindado por los ISP privados, en contrapartida a los
servicios públicos como los de Nic.ar.
b.Según las definiciones volcadas en este curso, denominamos Web Hosting Privado a todo
servicio web que para brindar acceso a las y los usuarios, requiere de un proceso previo de
registración, aprobación y finalmente el ingreso con nombre de usuario y contraseña.
c.Según las definiciones volcadas en este curso, denominamos Web Hosting Privado a los
sistemas web alojados en un servidor privado, dentro de una red local o privada, sin acceso
desde Internet. Este tipo de configuración se ve en empresas, escuelas y otras instituciones.

d.Ninguna de las opciones.

¡Muy bien! Tu respuesta es correcta

Pregunta 9 ¿Cuál es la definición del concepto de Virtualización?


Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.La Virtualización es la técnica de almacenamiento en discos virtuales en la nube.
b.
Ninguna de las opciones.

c.La Virtualización es una compleja técnica de computación y se refiere a la forma de crear


máquinas y dispositivos virtuales, mediante el uso de software.

d.La Virtualización es la técnica de comunicación a través de internet para la realización de


reuniones y charlas virtuales.

¡Muy bien! Tu respuesta es correcta


Pregunta 10 ¿Sólo se puede virtualizar Hardware?
Correcta
Seleccione una:
Se puntúa 1,00 sobre 1,00
a.Verdadero. El único elemento real y tangible es el hardware, el software es intangible, por lo
tanto, el hardware es lo único que se puede virtualizar.

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).

¡Muy bien! Tu respuesta es correcta

Pregunta 11 Docker es un Hipervisor similar a VMWare o Virtual Box que sirve para virtualizar sistemas
Correcta operativos.

Se puntúa 1,00 sobre 1,00


Seleccione una:
a.Ninguna de las anteriores.

b.Verdadero. VMWare y Virtual Box pertenecen a una generación anterior de hipervisores.


Docker es una nueva generación, pero está basado en los mismos principios que sus
antepasados, para brindar una solución más liviana y rápida de virtualización.

c.Falso. Docker es un contenedor, no un hipervisor. La diferencia entre estos dos tipos de


virtualización radica en que los Hipervisores virtualizan instancias del hardware. Por el
contrario, los contenedores no virtualizan hardware, utilizan directamente las primitivas del
sistema operativo anfitrión.

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.

¡Muy bien! Tu respuesta es correcta

Pregunta 12 La Computación en la nube (Cloud Computing) se refiere a computadoras especiales que no


Correcta requieren el uso de la Virtualización para brindar una mejor calidad de servicio.

Se puntúa 1,00 sobre 1,00


Seleccione una:
a.Falso. La Computación en la nube es un conjunto de equipamiento real (data centers) que
ofrecen en alquiler los proveedores para alojar allí cualquier tipo de aplicación web o de otro
tipo. Y, fundamentalmente, la Computación en la nube está basada principalmente en técnicas
de virtualización.

b.Falso. La Computación en la nube no necesita el uso de servidores ni computadoras, todo


está distribuido en la nube de Internet. Esta técnica es también conocida como Serverless
computing.

c.Ninguna de las opciones.


d.Verdadero. Estas computadoras especiales están distribuidas por todo el mundo, creando
una super computadora distribuida a nivel mundial, tal como la red Ethereum y es una
evolución del Grid Computing, utilizado para cálculos científicos y astronómicos.

¡Muy bien! Tu respuesta es correcta


Pregunta 13 ¿Cuáles son los servicios de Cloud Computing más afamados?
Correcta
Seleccione una:
Se puntúa 0,50 sobre 0,50
a.Los servicios de Cloud Computing más conocidos son PC Tools, Norton Commander y el
sistema CP/M.

b.Los servicios de Cloud Computing más conocidos son AWS, Google Cloud Platform y Azure.

c.Ninguna de las opciones.

d.Los servicios de Cloud Computing más conocidos son iCloud, One Note y Dropbox.

¡Muy bien! Tu respuesta es correcta

También podría gustarte