¿Cómo funciona cuando envío un email
desde una Laptop para un teléfono?
Tienes tu Laptop
Escribes un
email
Asumamos que
lo escribes en
Gmail
Lo envías
presionando el
botón ENTER
El teclado a
través de una
señal de teclado
Manda una
señal
eléctrica a la
tarjeta
madre de tu
Laptop
Esa señal eléctrica
es intervenida por
el procesador
Que la manda a una
capa más arriba de
la electricidad
Que es donde
corre el Sistema
Operativo (O.S)
Una vez capturada
esta señal se le tiene
que enviar a alguien
para que haga algo
El O.S entiende algo que
se llama Estado, en el
instante en el que yo
estoy, donde estoy y
donde tengo el foco
Estábamos en
el Navegador
Por lo que el O.S sube
una capa más, y en la
capa del software en la
que corre el O.S
Le envía al
navegador la
señal : ALGUIEN
OPRIMIÓ ENTER
Asumiendo
que el
Navegador el
Google Chrome
El cual entiende
otra capa de
software aun
más arriba
El software
sobre el que
corre internet
La cara que los usuarios ven de
internet, utiliza una tecnología llamada
Front-End (HTML, CSS y JavaScript)
Recibimos a través
de JavaScript (JS)
mediante un
EVENTO
Internamente JS
esta utilizando
el API
AJAX
Que encapsula los
datos del email en un
formato de Archivo
llamado JASON
Los envía a un API del
lado del servidor
llamado REST
Estos datos se
transmiten mediante
HTTP
De aquí vamos a la
capa de internet
En esta capa
existen
direcciones
Ejemplo :
http://www.gmail.com/enviar_email
Una Vez
encontrada la IP
Se hace una Petición
al Servidor
Pero para llegar a Java tenemos
que pasar por varias capas
La primera es el Linux, que es
el O.S que corre un servidor
El Driver reinterpreta la
electricidad en una capa de red
esto es conocido como Ethernet
Ethernet envía esta señal a Linux
Linux la convierte
en datos
Esos datos están encapsulados en un super
protocolo llamado TCP/IP a través del cual se
transmite todo lo de internet
Luego TCP/IP crea los datos hacia HTTP que es la
forma en que los navegadores se conectan
HTTP es recibido por un servidor
de HTTP dentro de LInux
Asumiendo que uno de ellos corren
internamente es este servidor
Este servidor agarra las señales que le llegan a
través de un navegador como JASON, HTTP, etc.
Y el código de
programación las
procesa
Aquí el lenguaje sabe que se le envió la
orden de enviar un email, porque el
lenguaje también recibe la URL completa
Con esos datos
sabe como enviarlo
Guarda estos
datos en una
base de datos
Lo siguiente que se hace es
enviar el email, pero los email
tienen sus propios servidores
y sus propios protocolos
Para enviar el email a internet
en general, se tiene que utilizar
un servidor de correo, el cual
viene en la petición
Digamos que el
correo se lo enviamos
a cursos@platzi.com
Asumiendo que Platzi tiene
sus propios servidores
Estos protocolos más los nuevos protocolos que existen se conectan a
un servidor final que no necesariamente es el mismo servidor de HTTP
o es el mismo servidor de otros protocolos, ya que se pueden tener
múltiples servidores diferentes
Este servidor funciona igual que el DNS
Los servidor de email también tienen
nombres, uno de los más populares es
POstfix
Postfix toma el email y entiende a
quien le mandaron el email y lo
redirecciona a la base de datos
conocida cono Bandeja de Entrada
Luego los servidores de correo crean una
notificación de email que es mandado al
teléfono mediante un servidor de notificaciones
Este servidor tiene una base de datos de todos los
teléfonos, mediante un ID único y una IP que le muestra
donde se encuentra el teléfono en todo momento
Le manda mediante el protocolo UDP
la notificación al usuario del teléfono
Los emails funcionan similar a enviar una petición
a la web, tienen un dominio y a través de ese
dominio se sabe cual es la IP a la cual se va a
conectar para enviar el correo. Y tienen un nombre
al cual se le va a enviar el email
Como la mayoría de las personas corre sus correos en Gmail, este se salta todos estos
protocolos. Ya que se mantiene en la base de datos, hace un cambio y luego manda las
notificaciones sin pasar por los protocolos. Sin embargo cuando se tiene que conectar con
otros servidores igualemente deberia pasar por estos protocolos
En el mundo moderno los emails
no funcionan tan fácil es mucho
más complejo
El protocolo que
utilizan los correos
se llama SMTP/POP
POP3 (Post Office Protocol) Es un
protocolo de recepción de correos
SMTP (Search Results Web results Simple Mail
Transfer Protocol) Es un protocolo de envio
Se guarda en una base de Datos para poder en un futuro acceder a
estos correos de manera estructurada
Este código esta hecho en lenguajes
que corren del lado del servidor
como Java, PHP, Python, GO, etc.
Los servidores a nivel de software son
aplicaciones que corren en el O.S, en este
ejemplo es Linux
Uno es MGINX y
el otro Apache
Tiene Drivers que le permiten conectarse a
la electricidad del cable de red
El cable de red, a través de una serie de
routers switch que son los que transmiten
esta información de la IP
La IP son los que le dicen al servidor : Mira
esta electricidad y ve que haces con ella
El servidor puede ser una serie de
servidores o un computador gigantesco. Aquí
se ejecuta el código real con el que esta
escrito Gmail, este código esta famosamente
escrito en el lenguaje de JAVA
Las URL están compuestas
de múltiples partes
La primera es el protocolo a través
del cual se transmite la información
Hay muchos
tipos de
Protocolos
El primero es HTTP
que es donde
funciona la web
Si envías archivos
grandes probablemente
uses en algún punto uno
llamado FTP
Cuando quieres controlar
de manera remota un
servidor a través de una
consola de texto, usas SSH
Cuando descargas distribuciones
de LINUX u otros archivos de
manera masiva Peer to Peer ,
utilizas BitTorrent
Es utilizado por Blizzard para
actualizar sus juegos
También es utilizado para transmitir la
información de juegos multi-player
SSH (Secure
SHell)
FTP (File Transfer Protocol) Protocolo
de transferencia de archivos
Un poco obsoleto
pero todavía existe
La segunda es el dominio, éste es el
nombre con el que nosotros
encontramos en internet al servidor .
En este caso seria www.gmail.com
Por último después del slash
va la instrucción dentro del
servidor. En este caso seria
enviar_email
Sin embargo internet no funciona así,
internet funciona con direcciones IP
Los nombres luego se convierten
en IPs, en direcciones exactas que
es donde estan los servidores
A el se llega a
través del DNS
DNS (Domain Name System o Servidor de
Nombres de Dominio) Es una serie de servidores
globales en el cual todos lo países colaboran.
Es una base de datos gigantesca que internamente
para cada IP tiene asociado un nombre
HTTP (Hypertext Transfer
Protocol) Protocolo de
Transferencia de Hipertexto
Es como
funciona
internet
Es eso que esta al
principio de todos los
sitios web
Es donde se mueve HTML,
CSS, JS, AJAX, JASON,
RECT, entre muchos
otros.
A veces te lo encuentras una
(s) enfrente = (https). Esta
significa que el protocolo va
cifrado, va encriptado.
Significa que del lado del
servidor se envió una llave,
la cual encripto la conexión
para que solo tú y el
servidor la vean sin que
nadie más la intervenga
Existe un ataque muy
común en el que las
personas intervienen las
conexiones de internet
mientras están viajando,
porque una conexión de
internet no viaja en línea
recta. Es por esto que
existe este cifrado para
evitar eso
JASON (JavaScript
Object Notation)
JS encapsula los
todos los datos
para enviárselo a
internet
Evento ENTER (el botón
ENTER es presionado)
Evento CLICK (se presiona
el click) Evento TOUCH
(Cuando se toca)