Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Contenido
HISTORIA DE LA WEB..........................................................................................................................4
WEB 1.0..........................................................................................................................................4
Web 2.0..........................................................................................................................................4
Web 3.0..........................................................................................................................................5
Web 4.0..........................................................................................................................................5
ARPANET o Advanced Research Projects Agency network:............................................................6
AT&T:.............................................................................................................................................6
Internet..........................................................................................................................................6
WWW.............................................................................................................................................7
Mosaic............................................................................................................................................7
Dsl:.................................................................................................................................................7
Navegador......................................................................................................................................7
Buscador........................................................................................................................................7
XHTML............................................................................................................................................8
PAGINA WEB......................................................................................................................................9
SITIOS WEB.......................................................................................................................................10
APLICACIÓN WEB.............................................................................................................................11
HOSTING Y DOMINIO.......................................................................................................................12
BACK-END Y FRONT-END..................................................................................................................13
HTML................................................................................................................................................14
CSS...................................................................................................................................................17
JavaScript.........................................................................................................................................18
ARQUITECTURA CLIENTE SERVIDOR.................................................................................................19
JSP....................................................................................................................................................21
SERVLET............................................................................................................................................22
OBJETOS REQUEST Y RESPONSE.......................................................................................................24
OBJETO REQUEST.........................................................................................................................24
OBJETO RESPONSE.......................................................................................................................24
METODO GET Y POST.......................................................................................................................25
PATRON DE DISEÑO DAO.................................................................................................................26
PATRON DE DISEÑO DTO.................................................................................................................27
LIBRERÍA JSTL...................................................................................................................................28
2
HttpSession......................................................................................................................................32
Como crear una sesión o login en JSP..........................................................................................35
Generic Interfaces............................................................................................................................37
CRIPTOGRAFIA.................................................................................................................................38
HASH................................................................................................................................................41
IMPLEMENTADO EN JAVA............................................................................................................46
CONCLUCIONES................................................................................................................................49
WEB:.............................................................................................................................................49
Páginas Web.................................................................................................................................49
Sitio Web......................................................................................................................................49
Aplicaciones Web.........................................................................................................................49
Dominio y Hosting........................................................................................................................49
Back-End y Front-end...................................................................................................................49
HTML............................................................................................................................................50
CSS................................................................................................................................................50
JavaScript.....................................................................................................................................50
Arquitectura Cliente Servidor.......................................................................................................50
JSP................................................................................................................................................50
Servlet..........................................................................................................................................50
Objetos Request y Response........................................................................................................50
Método get y post........................................................................................................................50
Patrón de Diseño DAO..................................................................................................................51
Patrón de Diseño DTO..................................................................................................................51
LIBRERÍA JSTL...............................................................................................................................51
HttpSession..................................................................................................................................51
CRIPTOGRAFIA..............................................................................................................................51
Referencias.......................................................................................................................................52
3
HISTORIA DE LA WEB
WEB 1.0
La WEB 1.0 empezó en los años 60’s junto al internet, comenzando con solo texto eran
bastante rápido y simple después de los 90’s surgió HTML (Hyper TextMarkup Language)
e hizo que las páginas Web sean más agradables a la vista y puedan contener componentes
como imágenes, formatos y colores. Los primeros navegadores visuales fueron Netscape e
internet Explorer.
(Tomado de
https://sites.google.com/site/elrendimientoscolar/evolucion-de-la-web/web-1-0-2-0-3-0-4-0)
[ CITATION sit20 \l 3082 ]
Web 2.0
La Web 2.0 da nuevo paso en la historia de desarrollo de tecnología Web, que esta basa en
“comunidades de usuarios y en una amplia gama de herramientas, como las redes sociales,
blogs, wikis y otros, que fomentan la colaboración y el intercambio de información. La
Web2.0 es también llamada Web social por el enfoque colaborativo y de construcción
social de esta herramienta, donde el usuario es el ente más importante de
información”[ CITATION sit20 \l 3082 ].
(Tomado de
https://sites.google.com/site/lawebjm/we
b-2-0)
4
Web 3.0
La Web 3.0 ” es considerada también como una extensión de Web Semántica definida por
el premio Nobel Sir Timothy “Tim” John Berners – Lee. Y trata de poder enriquecer la
comunicación mediante metadatos semánticos (ontologías) que aportan un valor añadido a
la información, la diferencian y la hacen más inteligente. Por lo que los contenidos ahora ya
no son tratados por su sintáctica sino por su semántica”,[ CITATION sit20 \l 3082 ].
(Tomado de https://sites.google.com/site/elrendimientoscolar/evolucion-de-la-web/web-
1-0-2-0-3-0-4-0)[ CITATION sit20 \l 3082 ]
Web 4.0
“La Web4.0 es un término que se va acuñando recientemente y trata de movernos hacia una
Web Ubicua donde el objetivo primordial será el de unir las inteligencias, para que tanto las
personas como las cosas se comuniquen entre sí para generar la toma de decisiones,
[ CITATION sit20 \l 3082 ]”.
(Tomado de https://sites.google.com/site/elrendimientoscolar/evolucion-de-la-web/web-1-0-2-0-
3-0-4-0).[ CITATION sit20 \l 3082 ]
5
ARPANET o Advanced Research Projects Agency network:
“Fue la primera red en la que se puso en uso un protocolo de comunicación por paquetes
que no requería de computadoras centrales, si no que era –como lo es la actual Internet-
totalmente descentralizada.” (González, 2016)
“es el precedente directo de Internet, una red que entró en funcionamiento en octubre de
1969 después de varios años de planificación.” (González, 2016)
Entro en funcionamiento en 1983, en una base militar EEUU (MILNET) de ARPANET, y
debido a su crecimiento en el sector civil desapareció en 1989.
(tomado de https://sistemas.com/arpanet.php)
AT&T:
Es una empresa de telecomunicaciones más grande que tiene el mundo, que ofrece servicios
de teléfono móvil y telefonía fija, por lo cual era de los más capacitados como para hacer la
conexiones en diferentes puntos para ARPANET
Internet
Internet es una red de computadoras que se encuentran interconectadas a nivel mundial para
compartir información. Se trata de una red de equipos de cálculo que se relacionan entre sí
a través de la utilización de un lenguaje universal. (Raffino, 2020)
El concepto Internet tiene sus raíces en el idioma inglés y se encuentra conformado por el
vocablo inter (que significa entre) y net (proveniente de network que quiere decir red
electrónica). Es un término que siempre debe ser escrito en mayúscula ya que, hace
referencia a “La Red” (que conecta a las computadoras mundialmente mediante el
protocolo TCP/IP) y sin un artículo que lo acompañe (el/la) para hacerle referencia.
(Raffino, concepto, 2020)
6
WWW
Worl wide web, es una red informática de alcance mundial, que consiste en un complejo
sistema de hipertextos e hipermedios interconectados entre sí y a los que puede tenerse
acceso mediante una conexión a Internet y un conjunto de software especializado. (Raffino,
Concepto.de, 2019)
El software necesario para visitar la WWW es un navegador o explorador, tales como
Internet Explorer, Mozilla Firefox, Google Chrome, etc., que representa en una serie de
ventanas dotadas de texto y multimedios cada página web visitada. Estas últimas suelen
requerir de una dirección html (HyperText Markup Language, o lenguaje de marcas de
hipertexto) que inicia con las siglas www. (Raffino, Concepto.de, 2019)
Mosaic
Navegador Mosaic fue el segundo navegador gráfico disponible para visualizar páginas
web (el considerado como primer navegador gráfico es ViolaWWW, cuya primera versión
completa data de 1992), y el primer navegador gráfico para Microsoft Windows. La
primera versión funcionaba sobre sistemas Unix, pero fue tal su éxito que en agosto del
mismo año se crearon versiones para Windows y Macintosh. (EcuRed, s.f.).
Dsl:
Digital Subscriber line o en español línea de abandono digital, es una familia de tecnologías
que proporcionan el acceso a Internet mediante la transmisión de datos digitales a través del
par trenzado de hilos de cobre convencionales de la red telefónica básica o conmutada,
constituida por las líneas de abonado.
Navegador
Es un programa informático que permite al usuario ingresar a las páginas Web que desee,
siempre que conozca la dirección URL en donde se encuentra (por ejemplo:
www.google.com) o bien que haga clic en un hipervínculo que conduzca a dicha página.
(Raffino, Concepto.de, 2018)
Un navegador web no hace otra cosa que conectarse a través de la Internet con el servidor
en el que está la información que buscamos, y solicitarle las instrucciones de diseño y de
ensamblaje visual que le permiten recuperar el texto, las imágenes y el ordenamiento de las
mismas, para componer una página web y mostrárnosla ya terminada. (Raffino,
Concepto.de,2018)
Buscador
En informática, un buscador es un sistema que opera indexando archivos y datos en la web
para facilitar la búsqueda de los mismos respecto de términos y conceptos relevantes al
usuario con sólo ingresar una palabra clave. Al entrar el término, la aplicación devuelve un
listado de direcciones Web en las cuales dicha palabra está incluida o mencionada. La
utilización de buscadores web se ha convertido en uno de los principales motivos de uso de
Internet, facilitando la obtención de información y el trabajo de índole investigativa.
(González, Definición ABC , 2009)
7
XHTML
XHTML es un lenguaje similar a HTML, pero con algunas diferencias que lo hacen más
robusto y aconsejable para la modelación de páginas web. Las siglas corresponden con las
palabras inglesas eXtensible Hypertext Markup Language, XHTML es una vuelta hacia
atrás, que intenta recuperar la línea marcada por los estándares, pero que trata de solucionar
diversos casos de uso del HTML, a la vez que lo prepara para adaptarse a las nuevas
necesidades y corrientes tecnológicas. (desarrolloweb.com, 2011)
8
PAGINA WEB
9
SITIOS WEB
Los sitios Web están organizados por jerarquía “En este sentido, la información principal es
la página de portada, que coincide con la URL raíz del website. Desde esta homepage,
encontraremos, como si fuera el tronco de un árbol, los hipervínculos hacia el resto de
páginas que integran el sitio, ofreciéndosenos aquí por tanto la estructura general de todo el
contenido.”[ CITATION sof20 \l 3082 ].
(Tomado de https://www.yeeply.com/blog/mapa-web-encuentra-la-estructura-que-tu-sitio-
necesita/)
10
APLICACIÓN WEB
(tomado de
https://www.neosoft.es/blog/
que-es-una-aplicacion-web/)
11
12
HOSTING Y DOMINIO
Dominio
¿Qué es Dominio?
Es un derecho a usar un nombre en internet como por ejemplo udistrital.edu.co y para que
sea fácil la búsqueda de la página, los dominios no incluyen espacio en la web, ni acceso
por FTP, y tampoco cuentas de correo, en si los dominios sirven para registrar el nombre y
poder apuntarlo a un hosting asignado unos servidores DNS.
Hosting
¿Qué es Hosting?
El hosting es el conjunto de servicios que se pueden usar con cualquier dominio, y es
necesario usarlos para tener la web y el correo electrónico, los hostings incluyen espacios
en el servidor para instalar, por ejemplo: WordPress, usar un constructor web, subir tu web
por FTP, crear cuentas de correo o bases de datos. Es decir, todo lo necesario para alojar tu
web.
(Tomado de https://clientes.ecohosting.cl/knowledgebase.php?action=displayarticle&id=2 )
13
BACK-END Y FRONT-END
Front-end
¿Qué es Front-end?
“Frontend es la parte de un programa o dispositivo a la que un usuario puede acceder
directamente. Son todas las tecnologías de diseño y desarrollo web que corren en el
navegador y que se encargan de la interactividad con los usuarios.”[ CITATION Nic20 \l 3082 ].
Por lo general un desarrollador Back-end debe saber usar lenguajes como (HTML, CSS Y
JavaScript), y adicionalmente debe poder usar algunos frameworks o liberas que expandan
capacidades para crear cualquier tipo de interfaces de usuarios.
Back-end
¿Qué es Back-end?
“Backend es la capa de acceso a datos de un software o cualquier dispositivo, que no es
directamente accesible por los usuarios, además contiene la lógica de la aplicación que
maneja dichos datos. El Backend también accede al servidor, que es una aplicación
especializada que entiende la forma como el navegador solicita cosas.” [ CITATION Nic20 \l
3082 ]
Algunos de los lenguajes de programación de Backend son Python, PHP, Ruby, C# y Java,
y así como en Frontend, cada uno de los anteriores tiene diferentes frameworks que te
permiten trabajar mejor según el proyecto que estás desarrollando.
14
(Tomado de https://platzi.com/blog/que-es-frontend-y-backend/)
15
HTML
El lenguaje HTML no es otra cosa, que un lenguaje estandarizado con el que los
navegadores interpretan la información que contienen la multitud de páginas que componen
la World Wide Web o WWW. Es un lenguaje de marcación de texto que permite al
navegador conectado interpretar la página que solicita al servidor. No es un lenguaje de
programación y no tiene compiladores, por lo tanto, si hay algún error en los documentos
que interpreta, lo visualiza de la manera en que no lo ha entendido. El lenguaje HTML se
basa principalmente en un sistema de etiquetas que indica al navegador dónde está el
cuerpo de un documento cuándo hay que colorear un texto, etc. HTML tiene sus
limitaciones y por ello posteriormente se desarrollarán «lenguajes auxiliares», como; CSS,
JavaScrip para implementar estilos o ejecutar acciones en los documentos Web. (Gutiérrez,
2014)
Estructura de HTML
(Tomado de https://www.w3schools.com/html/default.asp)
La etiqueta h1 hasta la h6 se usa para los tamaños de las palabras
<h1>This is heading 1</h1>
<h2>This is heading 2</h2>
<h3>This is heading 3</h3>
<h4>This is heading 4</h4>
16
<h5>This is heading 5</h5>
<h6>This is heading 6</h6>
La etiqueta <p> se usa para los saltos de línea
La etiqueta <a> se usa para introducir enlaces;
<a href="https://www.w3schools.com">This is a link</a>
La etiqueta <img> se usa para introducir imágenes, hay que introducir las medias de
las imágenes;
<img src="w3schools.jpg" alt="W3Schools.com" width="104" h
eight="142">
La etiqueta <button> se usa para poner un botón.
La etiqueta <ul> o <ol> se usa para poner listas, general mente van acompañadas de
la etiqueta <li> que sirve para enumerar, o poner un punto ejemplo;
(Tomado de https://www.w3schools.com/html/default.asp )
La etiqueta <iframe> se usa para introducir un frame, se le puede ingresar
las medias de la siguiente manera;
<iframe src="demo_iframe.htm" height="200" width="300"></i
frame>
17
(Tomado de https://www.w3schools.com/html/default.asp)
18
CSS
CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada, es un
formato recomendado para las páginas escritas en formato HTML, que ayuda a crear
páginas web de una manera más exacta. Que está orientado al diseño, dándole al
desarrollador posibilidades de mejorar el resultado final como; que se pueda incluir
márgenes, tipos de letra, fondos, colores etc.
Sintaxys importante:
(Tomado de
https://developer.mozilla.org/es/docs/Learn/Getting_started_with_the_web/CSS_basics )
19
JavaScript
Una página web dinámica es aquella que incorpora efectos como texto que aparece y
desaparece, animaciones, acciones que se activan al pulsar botones y ventanas con
mensajes de aviso al usuario.
(Tomado de https://developer.mozilla.org/es/docs/Learn/JavaScript/First_steps/Qu
%C3%A9_es_JavaScript)
20
ARQUITECTURA CLIENTE SERVIDOR
(Tomado de https://www.monografias.com/docs114/telecomunicaciones-arquitectura-cliente-
servidor/telecomunicaciones-arquitectura-cliente-servidor.shtml )
Funcionamiento
El Esquema de funcionamiento de un Sistema Cliente/Servidor sería:
1. El cliente solicita una información al servidor.
21
2. El servidor recibe la petición del cliente.
Componentes:
El modelo Cliente/Servidor es un modelo basado en la idea del servicio, en el que el cliente
es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios.
Además, esta relación está establecida en función del intercambio de mensajes que es el
único elemento de acoplamiento entre ambos.
Esta descomposición principalmente consiste en separar los elementos estructurales de esta
tecnología en función de aspectos más funcionales de la misma:
Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los
datos.
22
JSP
¿QUE ES?:
JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como
Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con
programación en Java.
Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de
múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Las páginas
JSP están compuestas de código HTML/XML mezclado con etiquetas especiales para
programar scripts de servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con
nuestro editor HTML/XML habitual.
JSPs y servlets se ejecutan en una máquina virtual Java, lo cual permite que, en principio,
se puedan usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java
para él.
(Tomado de https://desarrolloweb.com/articulos/images/dia-jsp.gif)
23
SERVLET
Es una tecnología que nos permite crear aplicaciones web interactivas (dinámicas), es decir,
le permite al usuario interactuar con la aplicación (hacer consultas, insertar y eliminar
datos).
Un Servlet es un objeto java que pertenece a una clase que extiende de
javax.servlet.http.HttpServlet
Son pequeños programas escritos en Java que admiten peticiones a través del protocolo
HTTP. Los servlets reciben peticiones desde un navegador web, las procesan y devuelven
una respuesta al navegador, normalmente en HTML. Para realizar estas tareas podrán
utilizar las clases incluidas en el lenguaje Java. Estos programas son los intermediarios
entre el cliente (casi siempre navegador web) y los datos (BBDD).
24
(Tomado de https://codea.app/java/que-es-un-servlet-en-java )
Por lo tanto nos encontramos en una arquitectura Cliente-Servidor. Lo normal para esto es
utilizar Apache Tomcat como contenedor de servlets. Recordar que apache es un servidor
HTTP.
25
OBJETOS REQUEST Y RESPONSE
OBJETO REQUEST
El objeto Request nos devuelve informaciones del usuario que han sido enviadas por medio de
formularios, por URL o a partir de cookies (veremos de qué se tratan seguidamente). También nos
informa sobre el estado de ciertas variables del sistema como pueden ser la lengua utilizada por el
navegador, el número IP del cliente.
OBJETO RESPONSE
El objeto Response es uno de los objetos predefinidos de ASP que nos va a servir para devolver al
cliente una página web, para redireccionar una petición a otra página y para manejar la creación
de cookies.
(Tomado de http://desarrollodeaplicacioneswebenasp.blogspot.com/2013/12/el-objeto-
response.html)
26
METODO GET Y POST
GET y POST son dos técnicas eficientes que pueden enviar los datos a un servidor o
navegador y necesariamente que estos se comuniquen. Los dos métodos son distintos
cuando el método GET añade los datos codificados a la URI, mientras que en el caso del
método POST los datos se añaden al cuerpo y no a la URI. Además, se utiliza el método
GET para recuperar los datos. Por el contrario, el método POST se utiliza para almacenar o
actualizar los datos.
(Tomado de https://pc-solucion.es/2018/06/06/diferencias-entre-el-metodo-get-y-post/ )
27
PATRON DE DISEÑO DAO
el patrón DAO propone separar por completo la lógica de negocio de la lógica para acceder
a los datos, de esta forma, el DAO proporcionará los métodos necesarios para insertar,
actualizar, borrar y consultar la información; por otra parte, la capa de negocio solo se
preocupa por lógica de negocio y utiliza el DAO para interactuar con la fuente de datos.
(Tomado de https://www.oscarblancarteblog.com/2018/12/10/data-access-object-dao-pattern/)
28
PATRON DE DISEÑO DTO
Los DTO (Data Transfer Object) son utilizados por DAO para transportar los datos desde la
base de datos hacia la capa de lógica de negocio y viceversa. Por ejemplo, cuando la capa
de lógica de negocio llama al método create(), ¿qué es lo que hace DAO? inserta un nuevo
dato… ¿pero qué dato? el que la capa de lógica de negocio le pase como parámetro… ¿y
cómo se lo pasa este dato? bueno, a través de un DTO.
Podría decirse que un DTO es un objeto común y corriente, que tiene como atributos los
datos del modelo, con sus correspondientes accessors (getters y setters).
Por ejemplo, si tuviéramos una base de datos relacional con una tabla empleados, con los
campos id, nombre y salario. Entonces tendríamos que crear una clase EmpleadoDTO, con
los atributos id, nombre y salario, que van a utilizar la capa de negocio y de persistencia
para transportar los datos entre las dos capas.
Entonces cuando la capa de lógica de negocio quiera guardar un dato en la base de datos, va
a crear un objeto EmpleadoDTO, a través de los accessors va a modificar los atributos, y
después se lo va a pasar al método create() de DAO. Entonces DAO va a leer los datos del
DTO, y los va a guardar en la base de datos. Lo mismo pasaría para eliminar datos. Y para
actualizarlos además se le pasaría el ID, para saber que dato actualizar. Para buscar datos,
sería parecido, ya que se le pasa al método read() el DTO para usarlo como patrón de
búsqueda, pero con la diferencia de que este método tiene valor de retorno, ya que devuelve
otro DTO con los datos del resultado de la búsqueda. (pigexception, 2016)
29
(Tomado de https://www.oscarblancarteblog.com/wp-content/uploads/2018/11/mapping.png )
30
LIBRERÍA JSTL
JSP Standard Tag Library (JSTL) es una colección de etiquetas JSP, que encapsula las
aplicaciones JSP comunes funcionalidad básica.
JSTL apoyo para tareas genéricas, estructurados, tales como la manipulación de
documentos iteración, condicionales, XML, las etiquetas de internacionalización, etiquetas
SQL. Además de éstos, que proporciona un marco para utilizar la integración de etiquetas
personalizadas JSTL.
De acuerdo con la funcionalidad proporcionada por las etiquetas JSTL, se puede dividir en
cinco categorías.
etiquetas básicas
etiquetas de formato
etiqueta de SQL
Las etiquetas XML
función JSTL
etiquetas básicas
para llamar la librería se hace de la siguiente manera:
31
(Tomado de http://www.w3big.com/es/jsp/jsp-jstl.html)
32
Etiqueta de SQL
biblioteca de etiquetas JSTL SQL proporciona una base de datos relacional (Oracle,
MySQL, SQL Server, etc.). no son recomendadas porque se puede estar perdiendo el
modelo vista controlador
Para llamar la librería:
Función JSTL
JSTL incluye una serie de funciones estándar, la mayoría de las cuales son funciones
genéricas de manejo de cadenas. sintaxis de referencia de la biblioteca JSTL es el siguiente:
33
34
HttpSession
¿Qué es?
sirve para almacenar información entre diferentes peticiones HTTP ya que este
protocolo es stateless (sin estado). Así pues en muchas ocasiones nos encontraremos
con el problema de compartir estado (datos usuario) entre un conjunto amplio de
páginas de nuestra Aplicación.
(Tomado de https://www.arquitecturajava.com/usando-java-session-en-aplicaciones-
web/)
Java Session
- Para solventar este problema en la plataforma Java EE se usa de forma muy habitual
la clase HttpSession que tiene una estructura de HashMap (Dicccionario) y permite
almacenar cualquier tipo de objeto en ella de tal forma que pueda ser compartido
por las diferentes páginas que como usuarios utilizamos.
35
(Tomado de https://www.arquitecturajava.com/usando-java-session-en-aplicaciones-
web/)
Funcionamiento
- Cada vez que un usuario crea una session accediendo a una página (que la genere)
se crea un objeto a nivel de Servidor con un HashMap vacío que nos permite
almacenar la información que necesitamos relativa a este usuario. Realizado este
primer paso se envía al navegador del usuario una Cookie que sirve para
identificarle y asociarle el HashMap que se acaba de construir para que pueda
almacenar información en él. Este HashMap puede ser accedido desde cualquier
otra página permitiéndonos compartir información.
(Tomado de
https://www.arquite
cturajava.com/usand
o-java-session-en-
aplicaciones-web/)
36
Usuarios y Sessiones
- El concepto de Session es individual de cada usuario que se conecta a nuestra
aplicación y la información no es compartida entre ellos. Así pues cada usuario
dispondrá de su propio HashMap en donde almacenar la información que resulte útil
entre páginas.
(Tomado de https://www.arquitecturajava.com/usando-java-session-en-aplicaciones-
web/)
37
Como crear una sesión o login en JSP
Primero se debe crear la vista en el que el se ingrese los datos del usuario para poder mirar
si está registrado o no
(Tomado de https://www.galisteocantero.com/sesiones-en-servlets-y-jsp-ejemplo-login-logout/ )
Cuando se oprima enviar ira a capturar los datos y ahí comenzar la verificación
38
(Tomado de https://www.galisteocantero.com/sesiones-en-servlets-y-jsp-ejemplo-login-logout/ )
Ya verificado se puede pasar a mostrar una vista de inicio para el usuario.
39
Generic Interfaces
Las interfaces genéricas se especifican al igual que las clases genéricas. Por ejemplo :
(Tomado de https://hajsoftutorial.com/java-generic-interfaces/ )
MyInterface es una interfaz genérica que declara el método llamado myMethod (). En
general, una interfaz genérica se declara de la misma manera que una clase genérica. En
este caso, el parámetro de tipo es T. A continuación, MyClassface implementa MyInterface.
Myclass es una clase no genérica. Por supuesto, si una clase implementa un tipo específico
de interfaz genérica, entonces la clase implementadora no necesita ser genérica.
(Tomado de https://hajsoftutorial.com/java-generic-interfaces/ )
40
CRIPTOGRAFIA
¿Qué es criptografía?
Criptografía es la ciencia y arte de escribir mensajes en forma cifrada o en código. Es parte
de un campo de estudios que trata las comunicaciones secretas, usadas, entre otras
finalidades, para:
Con el creciente auge y desarrollo de la informática, esta fue ampliamente divulgada y
modificada para su uso. Ahora se basa en complejos algoritmos matemáticos que se
encargan de cifrar los mensajes. Tienen la tarea de garantizar confidencialidad entre las
partes y la integridad de la información. A su vez que ofrece la autenticación tanto del
emisor como del receptor, garantiza que el emisor o el receptor pueda repudiar el mensaje.
Y, por último, garantiza que el mensaje es nuevo, es decir, que no es repetido
Actualmente se usa:
autentificar la identidad de usuarios
autentificar y proteger el sigilo de comunicaciones personales y de transacciones
comerciales y bancarias
proteger la integridad de transferencias electrónicas de fondos
Criptografía y seguridad
La criptográfica es muy fundamental en la actualidad porque estas permiten el
funcionamiento de la red y garantiza la integridad de blockchain.
Para garantizar que nadie externo puede acceder a los datos se utiliza la criptografía de
clave pública y la criptografía de clave secreta. El cifrado de clave pública genera un hash
que hace más sencilla la distribución de la información mientras que la clave privada cifra y
descifra la información entre el emisor y el receptor.
Tipos de criptografía
41
(Tomado de https://academy.bit2me.com/que-es-criptografia/ )
42
(Tomado de https://academy.bit2me.com/que-es-criptografia/ )
43
HASH
¿Qué es Hash?
- El nombre de hash se usa para identificar una función criptográfica muy importante
en el mundo informático. Estas funciones tienen como objetivo primordial codificar
datos para formar una cadena de caracteres única. Todo ello sin importar la cantidad
de datos introducidos inicialmente en la función. Estas funciones sirven para
asegurar la autenticidad de datos, almacenar de forma segura contraseñas, y la firma
de documento electrónicos.
¿Cómo funcionan?
- Las funciones hash funcionan gracias a una serie de complejos procesos
matemáticos y lógicos. Estos procesos, son trasladado a un software de ordenador
con el fin de usarlos desde el propio ordenador. Desde allí, podemos tomar
cualquier serie de datos, introducirlos en la función y procesarlos. Con esto se busca
obtener una cadena de caracteres de longitud fija y única para los datos
introducidos. A la vez que se hace prácticamente imposible realizar el proceso
contrario. Es decir, es prácticamente imposible obtener los datos originales desde un
hash ya formado. Esto gracias a que el proceso de creación de hashes, es un proceso
de un solo sentido.
44
(Tomado de https://academy.bit2me.com/que-es-hash/)
Lo que podemos ver con estas imágenes es que el SHA-256 y el MD5 así se haga
una pequeña modificación en los caracteres de entrada, tanto como el SHA-256 y
MD5 nos retornan cosas totalmente diferentes, por lo cual hace difícil adivinar las
claves.
Características de las funciones de Hash
1. Son fáciles de calcular: Los algoritmos de hash son muy eficientes y no
requieren de gran potencia de cálculo para ejecutarse.
2. Es compresible: Esto quiere decir que, sin importar el tamaño de la entrada
de datos, el resultado siempre será una cadena de longitud fija. En el caso de
SHA-256, la cadena tendrá una longitud de 64 caracteres.
3. Funcionamiento tipo avalancha: Cualquier mínimo cambio en la entrada de
datos, origina un hash distinto a la entrada de datos original.
4. Resistencia débil y fuerte a colisiones: Hace referencia a que es imposible
calcular un hash, que permita encontrar otro hash igual. Mejores conocidos
como pre-imagen y segunda pre-imagen, es el concepto base de la seguridad
de los hashes.
5. Son irreversibles: Tomar un hash y obtener los datos que dieron origen al
mismo, en la práctica no puede ser posible. Esto es uno de los principios que
hacen a los hashes seguros.
45
Tipos de SHA:
(Tomado de https://es.wikipedia.org/wiki/SHA-2)
46
AES
¿Qué es?
El estándar de cifrado avanzado (AES, por sus siglas en inglés) describe una fórmula
matemática o algoritmo, para la conversión de datos electrónicos en una forma ininteligible,
denominada texto cifrado. El texto cifrado no puede ser leído por cualquier persona que no
sea el destinatario. El AES funciona alimentando una clave de cifrado, esencialmente una
cadena de dígitos en el algoritmo de cifrado y realizando de una serie de operaciones
matemáticas basadas en esa clave de cifrado.
Operación básica
El AES puede ser descrito como un bloque cifrado iterativo y simétrico. El AES utiliza una
estructura de bucle para realizar repetidamente reordenamientos de datos, o permutaciones.
El bucle reemplaza una unidad de datos con otra para datos de entrada. La rutina de cifrado
utiliza la misma clave para cifrar y descifrar los datos, y aplica esa clave a los bloques de
datos de longitud fija.
Programa clave
La rutina de cifrado de AES almacena la clave de cifrado principal en una matriz. Una
matriz es un grupo de objetos con los mismos atributos que pueden ser abordados de forma
individual. La matriz consta de cuatro filas, conteniendo cada uno cuatro, seis u ocho bytes,
dependiendo del tamaño de la clave. Tras bambalinas, la rutina de cifrado utiliza esta matriz
para generar una tabla, conocida como un programa clave, que contiene varias claves. Estas
claves se denominan claves redondas para distinguirlas de la llave maestra original.
Matriz de estado
El AES utiliza una clave de cifrado que puede ser 128, 192 o 256 bits de largo, y se aplica
en unidades de datos, llamados bloques, cada uno de los cuales es de 128 bits de largo. El
algoritmo AES comienza copiando cada bloque de 16 bits en una matriz bidimensional
llamada el Estado, para crear una matriz de bytes de 4x4. El algoritmo realiza una
operación exclusiva "O" que devuelve "verdadero" si uno u otro de sus operando es
verdadero. Esto se conoce como "AddRoundKey", y está entre las primeras cuatro filas del
programa clave y la matriz de Estado.
Operaciones matemáticas
Tras la operación inicial exclusivo "O", el algoritmo de cifrado AES entra en su bucle
principal, en el que realiza repetidamente cuatro operaciones matemáticas diferentes en la
matriz de Estado: "SubBytes", "ShiftRows", "MixColumns" y "AddRoundKey". Estas
operaciones emplean una combinación de suma, multiplicación, rotación y sustitución para
cifrar cada byte en la matriz de Estado. El bucle principal se ejecuta 10, 12 o 14 veces
dependiendo del tamaño de la clave de cifrado. Una vez que se completa la ejecución, el
algoritmo copia la matriz de estado a su salida en forma de texto cifrado.
47
(Tomado de https://es.wikipedia.org/wiki/Advanced_Encryption_Standard )
48
IMPLEMENTADO EN JAVA
1. Java proporciona la clase Cipher la cual pertenece al paquete javax.crypto y ofrece
las funcionalidades de un algoritmo de cifrado criptográfico para cifrar y descifrar
información.
2. Entonces, para utilizar el algoritmo de cifrado simétrico AES se debe importar la
clase javax.crypto.Cipher. Además, también se deben importar las clases
javax.crypto.KeyGenerator y javax.crypto.SecretKey que serán utilizadas para
generar la clave secreta con la cual se va a cifrar y descifrar la información
(Tomado de https://fluidattacks.com/web/defends/java/cifrar-usando-aes/?
fbclid=IwAR1KIyhAK0ccV-h3jA4Y9R31FaNyos0-Yw6pigtyJD7indyERKKvmgFqR9s )
3. De igual forma, hay que importar algunas clases que permitirán tratar las
excepciones que ocurran durante el proceso. Estas excepciones deben ser
controladas por las clases que consuman el servicio de cifrado simétrico.
4. Para utilizar una instancia del algoritmo AES se debe utilizar el método estático
getInstance de la clase Cipher especificando el nombre del algoritmo.
49
6. Para cifrar la información se debe establecer el modo de operación
ENCRYPT_MODE y pasar como parámetro la clave secreta con la cual se va a
cifrar la información.
8. Finalmente se imprimen los resultados obtenidos tanto cuando se cifra como cuando
se descifra el texto.
50
Ejemplo tomado de (https://fluidattacks.com/web/defends/java/cifrar-usando-aes/?
fbclid=IwAR1KIyhAK0ccV-h3jA4Y9R31FaNyos0-Yw6pigtyJD7indyERKKvmgFqR9s )
51
CONCLUCIONES
WEB:
Como conclusión de las Web 1.0,2.0,3.0,4.0 pode vemos evidenciar que como ha avanzado
rápidamente después de la Web 2.0, en la cual es la que ya comienza a tomar terreno en la
sociedad de haber pasado de una web que solo era meramente de información a pasar a
conectar personas en tiempo real, y después de la llegada de la Web 3.0 para comenzarnos a
ofrecernos las aplicaciones Web haciendo que los desarrolladores puedan ofrecer cosas más
interesantes y para las empresas, y para finalizar la Web 4.0 ya implementa tecnologías de
comunicación total hasta inteligencia artificial.
Páginas Web
Las páginas Web tienen como finalidad mostrar contenido para las personas mediante
imágenes, videos y videos, pero como se pudo ver hay dos clases de páginas Web las
estáticas y las Dinámicas, en la cual las Estáticas solo se enfocan mostrar la página sin
interacción alguna mientras que la Dinámica se está desarrollada por algún lenguaje de
programación interpretado y cuentan con interacciones con los usuarios como puede ser un
formulario.
Sitio Web
Como conclusión un sitio es un lugar donde está alojada información que son relacionadas
que pueden ser buscadas por su dominio y que están organizados por una jerarquía donde la
información principal es la página de portada, que es el URL raíz del sitio web y el resto
son direcciones que hipervínculos hacia otras páginas.
Aplicaciones Web
la aplicación web tiene infinitas aplicaciones en la Web como la de hacer una aplicación de
ventas y estas están funcionan con tres pasos una base datos, código de aplicación y el
usuario, con lo anterior podemos decir que las aplicaciones Web traen ventajas ya que no
toca instalar nada para poder usarla solo es necesario tener un navegador, y a su vez se
puede acceder desde cualquier dispositivo haciéndolas prácticas.
Dominio y Hosting
Por lo tanto, para poder montar la Web en internet es necesario adquirir un servidor para
que en este podamos subir nuestra página Web y subir todos los recursos que sean
necesarios para que la página Web funcione, y seguidamente debemos adquirir un dominio
para que las demás personas puedan buscar nuestra web.
Back-End y Front-end
En conclusión, el front-end se usa para el diseño de interfaces; es decir que la presentación
de las páginas. Y cuando las paginas ya poseen interacciones con los usuarios ya se
comienza a mencionar que se está utilizando un back-end, que es el que está encargado de
llevar toda la lógica de la página; por ejemplo, cuando hay un formulario para los usuarios.
52
HTML
Como conclusión de HTML se puede decir que, es un lenguaje estandarizado para las
paginas, que está basado en etiquitas, y en las cuales se pueden uno debe estar en orden
para la estructuración de las páginas web o lo que se desee hacer el programador, además
este lenguaje lo puede correr cualquier navegador por ser un estándar universal.
CSS
De CSS se puede concluir que esta echo para que el desarrollador les agregue diseño y
estilos a las páginas web, aplicaciones Web y sitios web, para que éstas se vuelvan más
atractivas o agradables para el usuario, y no que no solo se queden con lo el diseño que
tiene depre terminado html.
JavaScript
Es un lenguaje de programación que es usada para la Web necesita de lógica para
solucionar un problema, por lo general se usan para paginas dinámicas como por ejemplo
puede ser un formulario, o cuando se desea enviar alertas al usuario, pero de igual manera
JavaScript se puede usar para hacer mejores diseños en la página web.
Arquitectura Cliente Servidor
Este modelo de arquitecturas son aplicaciones en donde están repartidas entre los
proveedores de servicios que se les conoce; como servidores y las peticiones del cliente o
usuario, el beneficio que trae al usar esta arquitectura es que se están corriendo dos
apelaciones simultáneamente la primera que es la servidora que es la que recibe, envía y
procesa los datos que le envía la aplicación del cliente.
JSP
JSPs se ejecuta en una máquina virtual Java, lo cual permite que, en principio, se puedan
usar en cualquier tipo de ordenador, siempre que exista una máquina virtual Java para él. Y
además se tienen contenido código HTML/XML, para páginas web.
Servlet
Son programas escritos en Java que están rígidos por el protocolo HTTP que se usan en
páginas web dinámicas, y está encargada de recibir y devolver los datos que envió el cliente
por lo, lo que es muy parecido a la arquitectura Cliente Servidor.
Objetos Request y Response
Como se mencionó Request tiene la responsabilidad de devolvernos la información del
cliente y mientras que el objeto Response es para retornar valores al usario.
Método get y post
En conclusión, se puede decir que el método get es más inseguro que el método post, ya que el
get esta colocando los parámetros en la URI, además get se usa para recuperación de documentos
mientras que post se usa para la actualización de los datos, y para finalizar el método get se
guardan los datos en la cache mientras que post no.
53
Patrón de Diseño DAO
El propósito del DAO es que se creen método que puedan hacer el CRUD (Create, Read,
Update, Delate) para los datos que se les quiera hacer persistencia, bien sea en una base de
datos o en un archivo de texto.
Patrón de Diseño DTO
Como se observó en el DAO, el DTO nos ayuda para la transportación de datos, desde una
base de datos hacia una capa lógica del negocio, por lo cual se puede decir que el patrón de
diseño DAO y DTO es necesario que trabajen juntos.
LIBRERÍA JSTL
Las librerías JSTL son muy útiles ya que nos ayudan mejor para la transmisión de datos
entre el selvelt y el JSP, ya que proporciona funciones útiles como c:out para mostrar datos
en HTML o tal vez C:for each para hacer ciclos dentro, por lo cual nos da más funciones
para implementar más lógica dentro de los programas.
HttpSession
El HttpSession nos ayuda cuando queremos tener un login en el programa, entonces como
se pudo evidenciar podemos guardar una sesión en tondo el programa, por lo cual se puede
solicitar ese objeto en cualquier página o en los servert, por lo cual nos puede servir como
para que validar sesiones en cualquier momento.
CRIPTOGRAFIA
Como conclusión la criptografía nos sirve para no exponer los datos de los usuarios al
momento de guardar los datos en una base de datos y asi implementar seguridad, pero para
hacer estos se requiere de algoritmo como el SHA-256 que mediante de este algoritmo se le
envía el texto y se envía en parámetros grandes y ase se le hace más difícil al atacante
conocer la clave.
54
55
Referencias
Chapaval, N. (27 de Junio de 2020). platzi. Obtenido de platzi: https://platzi.com/blog/que-es-
frontend-y-backend/
Gonzáñez, D., Carvajal, B., Manrique, J., & Quijije, G. (29 de Junio de 2020). monografias. Obtenido
de monografias: https://www.monografias.com/docs114/telecomunicaciones-
arquitectura-cliente-servidor/telecomunicaciones-arquitectura-cliente-servidor.shtml.
56
uniwebsidad. (s.f.). Obtenido de uniwebsidad: https://uniwebsidad.com/libros/javascript/capitulo-
1
57