CodeGym /Blog Java /Random-ES /Parte 1. Lo que necesitas saber antes de aprender Spring ...
John Squirrels
Nivel 41
San Francisco

Parte 1. Lo que necesitas saber antes de aprender Spring y JavaEE

Publicado en el grupo Random-ES
Si ya terminó (o está cerca) de aprender Java SE, entonces es hora de pensar en sus próximos pasos para conquistar la profesión de desarrollador de Java. Parte 1. Lo que necesita saber antes de aprender Spring y JavaEE - 1 Por un lado, ya tienes un buen conocimiento de Java: sabes cómo trabajar con un IDE, escribir programas y mucho más. Pero, ¿qué debe hacer a continuación con sus programas? ¿Cómo los haces aún más geniales y "los liberas en el mundo"? Cada vez es más evidente que ha llegado el momento de emprender el estudio de las tecnologías empresariales. Y ahora comienza la diversión. No importa con qué pila de tecnología decida comenzar. Ya sea JavaEE o Spring, es probable que te encuentres con un montón de cosas que están mucho más allá de tu comprensión. Entre los conceptos básicos de Java y las tecnologías avanzadas, queda un paso intermedio en el conocimiento que debe tomarse para retener lo que queda de su autocontrol y confianza en sí mismo mientras lee documentación voluminosa. Por lo tanto,es brindarle el conocimiento teórico mínimo necesario para su estudio posterior de JavaEE o Spring. Este material se divide en 7 partes:
  1. Hablaremos un poco de networking.
  2. Examinaremos la arquitectura cliente-servidor y de tres niveles.
  3. Exploraremos los protocolos HTTP/HTTPS.
  4. Aprenderemos todo lo que necesitas saber sobre Maven.
  5. Estamos hablando de registro.
  6. Acerca de los contenedores de servlets.
  7. Y finalmente, sobre MVC.

Parte 1. Hablaremos un poco sobre networking.

Comencemos con lo que más importa al hablar sobre en qué se basa cada red social, servicio web y aplicación web, mensajería instantánea y sitio web simple: la red (en el contexto de esta serie de artículos, el término "red" significa Internet ) . La red consta de una gran cantidad de computadoras: están interconectadas y pueden comunicarse. Es importante entender cómo lo hacen, porque las aplicaciones web envían información de una computadora a otra.

modelo OSI

El modelo de interconexión de sistemas abiertos (OSI) crea un enfoque escalonado para construir una red. Muestra claramente cómo y en qué capa las entidades de la misma red pueden interactuar entre sí. En total, este modelo contiene 7 capas:
7 Solicitud
6 Presentación
5 Sesión
4 Transporte
3 Red
2 Enlace de datos
1 Físico
Dividir el modelo en capas de abstracción permite a los desarrolladores que trabajan en la capa de transporte, por ejemplo, no tener que pensar en los detalles de implementación a nivel de la red y las capas de sesión. Este enfoque también se utiliza en la programación. Consideremos todas las capas del modelo OSI y determinemos cuáles nos interesan:
  1. Capa física : esta capa se ocupa de las leyes de la física y cómo usarlas para nuestros propósitos. Por ejemplo, crear cables y tenderlos a entidades en la red.

    Esta capa no nos interesa.

  2. Capa de enlace de datos : esta capa es responsable de transmitir datos a los nodos de la red y crear canales de transmisión de datos para objetos físicos.

    Esta capa no nos interesa a menos que quieras escribir firmware para el hardware que establece enlaces de datos.

  3. Capa de red : esta capa sirve para determinar las direcciones de los usuarios de la red individuales y las rutas hacia ellos. Es valioso aprender más sobre los detalles de esta capa, es decir, las direcciones de red.

    Las direcciones de red están definidas por un protocolo especial: el más común es IPv4 (Protocolo de Internet versión 4). Este es el protocolo que un programador web necesita usar para contactar a otro usuario de la red.

    Una dirección IPv4 consta de cuatro valores de bytes separados por puntos, por ejemplo: 192.0.2.235. Debe recordar que estos valores son bytes, lo que significa que se encuentran dentro del rango 0..255.

    Las direcciones IP, a su vez, se dividen en clases. No podemos simplemente asignarnos una hermosa combinación de números, pero no profundizaremos mucho aquí. Es suficiente entender que una dirección IP identifica de manera única a un usuario de la red y puede usarse para contactar a ese usuario.

  4. Capa de transporte : esta capa maneja la entrega de información a un destinatario. Se utilizan varios protocolos para lograr esto. Por ahora, no estamos interesados ​​en ellos. Estamos mucho más interesados ​​en el concepto de puerto , que aparece en esta capa.

    Los puertos son responsables de identificar una aplicación específica en una computadora. Por ejemplo, suponga que escribe una aplicación de chat en Java, la instala en 2 computadoras y desea enviar un mensaje a su amigo. Su mensaje se empaqueta, se envía a una dirección IP específica y se entrega a su amigo, pero su computadora no sabe qué hacer con la información recibida porque no entiende qué aplicación debe procesar su mensaje. Cuando las entidades de red se comunican, los puertos se utilizan para indicar qué aplicación debe procesar la información.

    El puerto es un número en el rango de 0 a 65535. Se agrega a la dirección IP después de dos puntos: 192.0.2.235:8080 . Pero no puede usar todos los puertos en el rango especificado: algunos de ellos están reservados para el sistema operativo, otros se usan habitualmente para propósitos específicos. No profundizaremos en los propósitos de los diferentes puertos. Por ahora, basta con comprender su papel en el proceso de comunicación en la red.

  5. Capa de sesión : esta capa crea y administra sesiones de comunicación. En esta capa, es posible que las aplicaciones interactúen y envíen solicitudes de nivel de servicio. Lo que necesitamos saber es que en esta capa se abre una sesión entre dos usuarios, y tenemos que trabajar con la sesión.

    Una sesión es una entidad creada cuando se establece una conexión entre dos usuarios. Puede almacenar la información necesaria sobre un usuario y sobre el historial de interacción con el usuario. Un detalle importante es que cuando se detiene el intercambio de información, la sesión no desaparece. En cambio, conserva su estado durante un período de tiempo determinado, por lo que los usuarios pueden continuar intercambiando información después de un descanso.

    Si una aplicación se comunica con varios usuarios al mismo tiempo, se establece un número correspondiente de conexiones (y, por lo tanto, de sesiones). Cada sesión tiene un identificador (ID) único , que permite a la aplicación distinguir entre los usuarios con los que se está comunicando.

  6. Capa de presentación : esta capa es responsable de codificar/decodificar datos. Obviamente, si necesitamos enviar la cadena "Hola web" a otro usuario, primero se convierte (codifica como) código binario, y solo entonces se envía. Al llegar al destinatario, el mensaje se vuelve a convertir (decodificar) y el destinatario puede ver la cadena original. Estas acciones tienen lugar en la capa de presentación.

  7. La capa de aplicación es la capa más interesante para nosotros. Permite que las aplicaciones se comuniquen con la red. En esta capa, recibimos y enviamos mensajes, y hacemos solicitudes a servicios y bases de datos remotas.

    Hay muchos protocolos utilizados en esta capa: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET y, por supuesto, HTTP/HTTPS. Un protocolo es un acuerdo universal al que nos adherimos a la hora de comunicarnos. Definitivamente proporcionaremos una discusión detallada por separado de HTTP/HTTPS.

Parte 1. Lo que necesita saber antes de aprender Spring y JavaEE - 2No necesitamos saber cómo funciona cada capa del modelo. Lo principal es entender los principios detrás del funcionamiento de los elementos con los que tendremos que trabajar al escribir aplicaciones web, a saber:
  • Dirección IP — La dirección del usuario en la red
  • Puerto: la dirección de la aplicación de un usuario específico
  • Sesión — Una entidad que existe a lo largo del período de comunicación entre dos usuarios
  • Protocolos de aplicación (HTTP/HTTPS): estas son reglas que seguiremos al redactar y enviar mensajes.
Cuando visitamos una tienda online, por ejemplo, indicamos su dirección y puerto. En nuestra primera visita, se crea una sesión. La tienda puede registrar información en la sesión. Por ejemplo, la tienda podría guardar información sobre artículos que dejamos en el carrito de compras. Si cerramos la pestaña con la tienda online y luego volvemos a entrar, nuestros artículos seguirán en el carrito porque están guardados en la sesión. Por supuesto, toda la información que recibimos de la tienda la recibimos a través del protocolo HTTP/HTTPS, y nuestro navegador sabe cómo procesarla. Puede objetar, diciendo que nunca ingresó la dirección y el puerto en el navegador, y en parte tendría razón. Lo que hizo fue ingresar el nombre de dominio, que fue convertido por un servidor DNS. Veamos mejor qué es qué aquí.

DNS (Sistema de nombres de dominio)

Como ya hemos aprendido, cada usuario de la red tiene una dirección única. Si estamos hablando de la aplicación, su dirección única será IPv4-address:port . Si conoce esta dirección, puede acceder directamente a la aplicación. Imagine que escribimos una aplicación web que muestra la temperatura promedio del aire en todos los países en tiempo real. Lo implementamos en un servidor con la dirección 226.69.237.119, en el puerto 8080. Para poder recibir información nuestra, el usuario debe ingresar 5 números en el navegador: 226.69.237.119:8080. A la gente no le gusta memorizar conjuntos de números: muchos de nosotros no podemos recordar más de dos números de teléfono. Es por eso que el Sistema de Nombres de Dominiofue inventado. Podemos crear un "alias" para nuestra dirección, por ejemplo, world-temperature.com. En lugar de buscarnos usando una dirección que consta de cinco números difíciles de recordar, el usuario puede ingresar nuestro nombre de dominio en la barra de direcciones del navegador. Hay servidores DNS que asignan nombres de dominio a direcciones reales. Por ejemplo, cuando un usuario ingresa codegym.cc en un navegador, su solicitud se envía a un servidor DNS, que la convierte en la dirección real. Parte 1. Lo que necesita saber antes de aprender Spring y JavaEE - 4Es importante que entendamos esto, porque nuestras aplicaciones llamarán a servicios remotos tanto por nombres de dominio como por direcciones reales. Necesitamos entender que en cualquier caso los servicios son los mismos. ¡Eso es todo por ahora! En este artículo, analizamos los conceptos básicos de las redes, que serán útiles a medida que comience a aprender programación web.La próxima vez veremos qué es una arquitectura cliente-servidor y por qué es tan importante entenderla. Parte 2. Hablemos un poco sobre la arquitectura de software Parte 3. HTTP/HTTPS Parte 4. Los conceptos básicos de Maven Parte 5. Servlets y la API de Java Servlet. Escribiendo una aplicación web simple Parte 6. Contenedores de Servlet Parte 7. Introducción al patrón MVC (Modelo-Vista-Controlador)
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION