Parte 2 - Tema 8 Flashcards

Aplicaciones web

1
Q

¿Qué es la arquitectura de desarrollo web?

A

Es la estructura y organización de un sitio web o aplicación web, definiendo cómo se relacionan los diferentes componentes y cómo interactúan entre sí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cuál es el objetivo principal de una buena arquitectura web?

A

Crear aplicaciones web escalables, mantenibles, seguras y eficientes, que satisfagan las necesidades de los usuarios y del negocio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Separación de preocupaciones (SoC)

A

Separar las diferentes funcionalidades de una aplicación en módulos independientes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

No repetirse (DRY)

A

Evitar la duplicación de código, promoviendo la reutilización.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

KISS (Keep It Simple, Stupid)

A

Optar por soluciones simples y fáciles de entender.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

YAGNI (You Aren’t Gonna Need It)

A

Implementar solo lo que se necesita en este momento, evitando funcionalidades innecesarias.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Alta cohesión y bajo acoplamiento

A

Los módulos deben ser altamente cohesivos (alta relación entre sus componentes) y bajo acoplamiento (baja dependencia de otros módulos).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Abstracción

A

Ocultar la complejidad interna de los componentes, exponiendo solo las interfaces necesarias.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Modularidad

A

Dividir el sistema en módulos independientes que puedan ser desarrollados, probados y desplegados por separado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se garantiza la escalabilidad y el rendimiento en una arquitectura web?

A
  • Horizontal scaling: Agregar más servidores para manejar un mayor número de usuarios.
  • Vertical scaling: Mejorar el hardware de un servidor existente.
  • Caching: Almacenar resultados de cálculos costosos para reducir el tiempo de respuesta.
  • Optimización de bases de datos: Indexar tablas, utilizar consultas eficientes.
  • Minificación y compresión: Reducir el tamaño de archivos HTML, CSS y JavaScript.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cuáles son los principales aspectos a considerar en la seguridad de una arquitectura web?

A
  • Autenticación y autorización: Verificar la identidad de los usuarios y controlar sus permisos.
  • Encriptación: Proteger los datos sensibles.
  • Gestión de errores: Manejar correctamente los errores para evitar la divulgación de información sensible.
  • Protección contra ataques: Protegerse contra ataques como inyección SQL, XSS, CSRF.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Inyección SQL (SQL Injection)

A

Es una vulnerabilidad que permite a los atacantes inyectar código SQL malicioso en las consultas de una base de datos, lo que puede llevar a la exposición, modificación o eliminación de datos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cross-Site Scripting (XSS)

A

Es una vulnerabilidad que permite a los atacantes inyectar código cliente (generalmente JavaScript) en una página web, que luego se ejecuta en el navegador del usuario.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cross-Site Request Forgery (CSRF)

A

Es un ataque en el que un atacante engaña a una víctima autenticada para que ejecute acciones no deseadas en una aplicación web.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es el desarrollo frontend?

A

Es la parte de la programación web que se encarga de la interfaz de usuario, es decir, todo lo que el usuario ve e interactúa en un sitio web.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué es un framework JavaScript?

A

Es una biblioteca de código preescrito que proporciona una estructura y herramientas para desarrollar aplicaciones web de manera más eficiente.

17
Q

¿Cuáles son algunos frameworks JavaScript populares?

A

React, Angular, Vue.js

18
Q

¿Qué es el backend?

A

Es la parte de una aplicación web que no es visible para el usuario, encargada de la lógica del negocio, la gestión de bases de datos, la seguridad y la interacción con otros sistemas.

19
Q

¿Cuál es la diferencia entre frontend y backend?

A

El frontend es la interfaz de usuario, mientras que el backend es la parte del servidor que gestiona las solicitudes y proporciona los datos al frontend.

20
Q

¿Qué es un framework backend?

A

Es una estructura predefinida que proporciona herramientas y bibliotecas para agilizar el desarrollo de aplicaciones web, ofreciendo una base sólida y convenciones para organizar el código.

21
Q

¿Qué es una API?

A

Es un conjunto de reglas y especificaciones que permiten que diferentes aplicaciones se comuniquen entre sí.

22
Q

¿Cuáles son los principales aspectos de la seguridad en el backend?

A
  • Autenticación: Verificar la identidad de los usuarios.
  • Autorización: Controlar los permisos de los usuarios.
  • Encriptación: Proteger los datos sensibles.
  • Prevención de ataques: Proteger contra ataques como inyección SQL, XSS, CSRF.
23
Q

¿Qué es un servicio web?

A

Es una aplicación que expone una interfaz a través de una red (generalmente Internet) para permitir que otras aplicaciones se comuniquen y utilicen sus funcionalidades.

24
Q

¿Cuál es la diferencia entre un servicio web y una API?

A

Aunque a menudo se usan como sinónimos, un servicio web es una implementación específica de una API, generalmente basada en estándares web como HTTP, XML o JSON.

25
Q

¿Cuáles son los principales estándares y protocolos utilizados en servicios web?

A
  • HTTP: Protocolo de transferencia de hipertexto, utilizado para la comunicación entre el cliente y el servidor.
  • XML: Lenguaje de marcado extensible, utilizado para estructurar datos.
  • JSON: Formato de intercambio de datos ligero y legible por humanos, basado en JavaScript.
  • SOAP: Protocolo Simple Object Access Protocol, un protocolo de intercambio de mensajes basado en XML.
  • REST: Arquitectura de estilo de transferencia representacional, un conjunto de restricciones arquitectónicas que simplifican el desarrollo de servicios web.
26
Q

¿Cuál es la diferencia entre SOAP y REST?

A
  • SOAP: Más pesado, basado en XML, utiliza un modelo de solicitud-respuesta estricto.
  • REST: Más ligero, utiliza formatos como JSON, es más flexible y fácil de implementar.
27
Q

¿Qué significa interoperabilidad en el contexto de los servicios web?

A

La capacidad de diferentes sistemas y aplicaciones para comunicarse e intercambiar información de manera efectiva, independientemente de la plataforma, el lenguaje de programación o el sistema operativo utilizado.

28
Q

¿Cómo se logra la interoperabilidad en los servicios web?

A
  • Adherencia a estándares: Utilizando protocolos y formatos estándar.
  • Documentación clara: Proporcionando una descripción detallada de la API.
  • Pruebas exhaustivas: Asegurando que el servicio funcione como se espera en diferentes entornos.
29
Q

¿Cuáles son los principales desafíos de seguridad en los servicios web?

A
  • Autenticación: Verificar la identidad de los usuarios.
  • Autorización: Controlar el acceso a los recursos.
  • Confidencialidad: Proteger la información sensible.
  • Integridad: Asegurar que los datos no sean alterados.
  • Disponibilidad: Garantizar que el servicio esté disponible cuando sea necesario.
30
Q

¿Cómo se abordan estos desafíos?

A
  • HTTPS: Protocolo seguro para la comunicación web.
  • Tokenización: Reemplazar datos sensibles con tokens.
  • Encriptación: Codificar los datos para protegerlos.
  • Firewall: Proteger la red de ataques externos.
  • WAF (Web Application Firewall): Proteger contra ataques web comunes.
31
Q

¿Qué es la arquitectura SOA?

A

Es un estilo arquitectónico que estructura una aplicación como una colección de servicios que se comunican entre sí. Estos servicios son independientes y pueden ser reutilizados en diferentes aplicaciones.

32
Q

¿Cuáles son los principales componentes de una arquitectura SOA?

A
  • Servicios: Unidades de trabajo que encapsulan una funcionalidad específica.
  • ESB (Enterprise Service Bus): Un intermediario que facilita la comunicación entre servicios.
  • Repositorio de servicios: Un catálogo donde se registran y describen los servicios disponibles
33
Q

¿Cuáles son las ventajas de SOA?

A
  • Reutilización de servicios.
  • Flexibilidad y escalabilidad.
  • Facilidad de mantenimiento.
34
Q

¿Qué son los microservicios?

A

Son una evolución de SOA, donde los servicios son aún más pequeños, independientes y escalables. Cada microservicio se ejecuta en su propio proceso y puede ser desarrollado y desplegado de forma independiente.

35
Q

¿Cuáles son las diferencias entre SOA y microservicios?

A
  • Tamaño de los servicios: Los microservicios son más pequeños y granulares.
  • Comunicación: Los microservicios suelen comunicarse a través de protocolos ligeros como HTTP y formatos como JSON.
  • Despliegue: Los microservicios se despliegan de forma independiente.
36
Q

¿Cuáles son las ventajas de los microservicios?

A
  • Escalabilidad independiente.
  • Desarrollo ágil.
  • Tecnología heterogénea.
37
Q

¿Qué es una plataforma de gestión de APIs?

A

Es una herramienta que permite diseñar, publicar, documentar y gestionar APIs.

38
Q

¿Cuáles son las principales funcionalidades de una plataforma de gestión de APIs?

A
  • Diseño: Crear y modelar APIs.
  • Publicación: Publicar APIs para que sean consumidas por otros desarrolladores.
  • Documentación: Generar documentación automáticamente.
  • Gestión: Monitorear el uso de las APIs y aplicar políticas de seguridad.