Infect-Zone
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.



 
ÍndiceÚltimas imágenesBuscarRegistrarseConectarse

 

 Protocolos HTTP, HTTPs, SMTP y DNS.

Ir abajo 
AutorMensaje
QhuleN
Administrador
Administrador
QhuleN


Mensajes : 6
Puntos : 53729
Reputación : 1
Fecha de inscripción : 12/01/2011
Edad : 32
Localización : Buenos Aires, Argentina

Protocolos HTTP, HTTPs, SMTP y DNS. Empty
MensajeTema: Protocolos HTTP, HTTPs, SMTP y DNS.   Protocolos HTTP, HTTPs, SMTP y DNS. EmptyDom Ene 16, 2011 9:32 pm

El protocolo HTTP
HTTP ( HyperText Transfer Protocol ) o Protocolo de Transferencia de Hipertexto es un conjunto de reglas que rigen la transferencia de datos en una comunicación Web.

En su base su finalidad es la transferencia de Hipertexto ( texto con componentes y enlaces a otros textos ) pero en la actualidad es utilizado tanto para la transferencia de Hipertexto cómo para transferencia de Ficheros ( carga y descarga de ficheros ), datos ( XML ), trafico de red ( SSLVPN )...

La comunicación HTTP

Los datos de una transacción HTTP son enviados en una comunicación TCP al puerto 80 ( por defecto) tipo cliente-servidor en la que el cliente ( navegador web ) envía una petición al servidor HTTP y el servidor responde cerrado o no la conexión.

El formato de la petición y la respuesta HTTP es el siguiente:
Código PHP:

Código:
Petición/Respuesta
Encabezado-1: Valor-1
...
Encabezado-N: Valor-n
 
[Cuerpo]  

Donde la primera línea ( Petición/Respuesta ) será:
En una petición
El método, el recurso solicitado y el protocolo/versión separados por espacios:
GET /index.htm HTTP/1.1

En una respuesta
El protocolo/versión, el código de estado y el detalle de estado separados por espacios:
HTTP/1.0 404 Not Found
Pudiendo tener cualquiera de los siguientes estados:
100 Continua
101 Cambio de protocolo
200 OK
201 Creado
202 Aceptado
203 Información no oficial
204 Sin Contenido
205 Contenido para reset
206 Contenido parcial
300 Múlpiples posibilidades
301 Mudado permanentemente
302 Encontrado
303 Vea otros
304 No modificado
305 Utilice un proxy
307 Redirección temporal
400 Solicitud incorrecta
401 No autorizado
402 Pago requerido
403 Prohibido
404 No encontrado
405 Método no permitido
406 No aceptable
407 Proxy requerido
408 Tiempo de espera agotado
409 Conflicto
410 No mapas disponible
411 Requiere longitud
412 Falló precondición
413 Entidad de solicitud demasiado larga
414 URI de solicitud demasiado largo
415 Tipo de medio no soportado
416 Rango solicitado no disponible
417 Falló expectativa
500 Error interno
501 No implementado
502 Pasarela incorrecta
503 Servicio no disponible
504 Tiempo de espera de la pasarela agotado
505 Versión de HTTP no soportada
Los encabezados ( Encabezado1-N ) son una combinación directiva: valor que contienen, en la petición, información del navegador y la petición, y en la respuesta información del servidor y el recurso.

El cuerpo contiene los datos a enviar/recibir.

Ejemplo:

Hacemos una petición:
Código PHP:

Código:
GET http://www.programacionweb.net/ HTTP/1.0
From: yo@miHost.example
User-Agent: HTTPTool/1.0  

Recibimos la respuesta:

Código:
HTTP/1.0 200 OK
Content-Type: text/html
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/4.4.1
Date: Tue, 20 Jun 2006 01:12:47 GMT
Connection: close
 
<html>
<body>
<h1>Página principal de tuHost</h1>
(Contenido)
 .
 .
 .
</body>
</html>  

El protocolo HTTPS
El protocolo HTTPS es una versión segura del protocolo HTTP que implementa un canal de comunicación seguro y basado en SSL ( Secure Socket Layers ) entre el navegador del cliente y el servidor HTTP.

¿Porque utilizar HTTPS?

TCP/IP es un canal de comunicación no seguro, donde para ir de un cliente a un servidor, la información realiza un seguido de saltos entre diferentes routers que se encargan de hacer llegar la información a su destino.

En cada uno de estos saltos, la informacion es transmitida en la red local del router, siendo recibida tambien ( dependiendo del dispositivo que crea dicha red ) por todos los dispositivos de la misma red, pudiendo ser capturada para fines malintencionados.

No podemos evitar esto, pero podemos encriptar esta información para que una vez capturada no pueda conocerse su contenido y así poder enviar con tranquilidad numeros de cuenta, datos personales...

Diferéncias con HTTP

A diferéncia de HTTP, HTTPS trabaja por defecto por el puerto 443 TCP, y antes de enviar los datos realiza algunas acciones prévias.
Para hacer esta negociación, el cliente, envía al servidor las opciones de cifrado, compresión y versión de SSL junto con algunos bytes aleatorios llamados Challenge de Cliente.

El servidor, escoje las opciones de cifrado, compresión y versión de SSL entre las que ha ofertado el cliente y le envía su decisión y su certificado.

Ambos negocian la clave secreta llamada master secret y usando esta clave, la Challenge de Cliente y las opciones pactadas se envían la información encriptada de tal manera que de ser interceptada no se puede descifrar.

El certificado del servidor

Para que nos entendamos, un certificado de clave pública es un "documento" que certifica que el interlocutor ( el servidor HTTPS en el caso de HTTPS ) es quien realmente dice ser, esto se hace para evitar que un atacante pueda hacerse pasar por el servidor y recibir la comunicación segura en su lugar.

Estos certificados pueden generarse con herramientas cómo OpenSSL y para una mayor seguridad pueden ser firmados por una autoridad certificadora, por ejemplo:
VeriSign
Thawte
GoDaddy
GeoTrust
Aunque también puede ser auto-firmado, en este caso, evitaremos desenbolsar la cantidad de dinero que cobran las autoridades certificadoras manteniendo el cifrado del canal de datos, pero el cliente no tendrá total seguridad que la información está siendo enviada al servidor correcto.



El protocolo SMTP
SMTP ( Simple Mail Transfer Protocol ) o Protocolo Simple de Transferencia de Correo Electrónico es un conjunto de reglas que rigen el formato y la transferéncia de datos en un envío de Correo Electrónico ( e-mail ).

La transferéncia del correo
Cuando enviamos un correo electrónico iniciamos un seguido de pasos que desencadenan diferentes comunicaciones SMTP que detallaremos en el próximo punto, primero vamos a ver que comunicaciones se realizan y porque.
Paso 1
El autor del mensaje utiliza un cliente de correo ( puede ser un programa o una aplicacion web ) para escribir un mensaje a un destinatário, el cliente de correo genera el codigo SMTP del mensaje y lo envía a un servidor SMTP saliente.

Paso 2
El servidor saliente utiliza una consulta DNS para conocer los servidores de correo entrante del dominio del destinatário ( llamados MX primário, MX secundário... ) y envía el correo SMTP al primero de ellos que responde.

Citación :

Nota:
Para que el receptor reciba el mensaje tiene que tener los MX configurados en su servidor de DNS de manera que apunten a los servidores SMTP entrantes

Protocolos HTTP, HTTPs, SMTP y DNS. Smtp

Paso 4
Finalmente el destinatário se conecta al servidor de correo entrante usando los protocolos POP3, IMAP4 o similar... y descarga el correo de su almacén.

La comunicación SMTP
La comunicación SMTP se realiza por TCP y normalmente en el puerto 25, es una comunicación tipo orden - respuesta delimitada por CRLF ( Retorno de carro + Salto de línea ) que podemos realizar de manera manual utilizando el comando telnet o con un cliente de correo:

Código:
telnet smtp.example.com 25  

En esta comunicación usaremos las siguientes ordenes SMTP:
HELO - Abre una sesión con el servidor
MAIL FROM - Indica el autor del mensaje
RCPT TO - Indica los destinatarios del mensaje
DATA - Cuerpo del mensaje, finaliza con la órden .
. - Final del cuerpo del mensaje ( orden DATA )
QUIT - Cierra la sesión
Y las respuestas que recibiremos serán, un código y un texto donde el código será:
2XX - Orden realizada correctamente
3XX - Orden correcta recibida pero no requiere acción.
4XX - Repetir orden correctamente
5XX - Error


Ejemplo

Vamos a ver un ejemplo de envío de correo usando telnet:

Código:
telnet smtp.example.com 25
< 220 relay2.programacionweb.com ESMTP Postfix (Debian/GNU)
> HELO localhost
< 250 relay2.programacionweb.com
> MAIL FROM: eloi@example.com
< 250 Ok
> RCPT TO: eloi@programacionweb.com
< 250 Ok
> DATA
> Subject: Prueba
>
> Prueba de envío
> .
< 250 Ok: queued as 3BDCD2DE91D
> QUIT
< 221 Bye  

El protocolo DNS
El DNS ( Domain Name System ) o Sistema de Nombres de Dominio es una base de datos jerárquica y distribuida que almacena informacion sobre los nombres de dominio de de redes cómo Internet. También llamamos DNS al protocolo de comunicación entre un cliente ( resolver ) y el servidor DNS.

La función más común de DNS es la traducción de nombres por direcciones IP, esto nos facilita recordar la dirección de una máquina haciendo una consulta DNS ( mejor recordar Programación Web - Programación y diseño de Páginas Web que 62.149.130.140 ) y nos proporciona un modo de acceso más fiable ya que por multiples motivos la dirección IP puede variar manteniendo el mismo nombre de dominio.

La estructura jerárquica

Un nombre de dominio consiste en diferentes partes llamadas etiquetas y separadas por puntos. La parte situada más a la derecha es el llamado dominio de primer nivel ( Top Level Domain ) y cada una de las partes es un subdominio de la parte que tiene a su derecha.

De esta manera, si tenemos Programación Web - Programación y diseño de Páginas Web:
net - Es el dominio de primer nivel
programacionweb - Es un subdominio de net
www - Es un subdominio de programacionweb
Cada dominio o subdominio tiene una o más zonas de autoridad que publican la información acerca del dominio y los nombres de servicios de cualquier dominio incluido.Al inicio de esa jerarquía se encuentra los servidores raíz, que responden cuando se busca resolver un dominio de primer nivel y delegan la autoridad a los servidores DNS autorizados para dominios de segundo nivel.

Protocolos HTTP, HTTPs, SMTP y DNS. Dns02

Tipos de consulta

Una consultas de un cliente (resolver) a un servidor DNS puede ser recursiva si el servidor al que consultamos consulta a su vez otro servidor o iterativa si responde a partir de los datos que tiene almacenados localmente.

Tipos de regístro

Hay diferentes tipos de regístro DNS que se pueden consultar:
A (Dirección) - Este registro se usa para traducir nombres de hosts a direcciones IP.
CNAME (Nombre Canónico) - Se usa para crear nombres de hosts adicionales, o alias, para los hosts de un dominio.
NS (Servidor de Nombres) - Define la asociación que existe entre un nombre de dominio y los servidores de nombres que almacenan la información de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres.
MX (Intercambiador de Correo) - Define el lugar donde se aloja el correo que recibe el dominio.
PTR (Indicador) - También conocido como 'registro inverso', funciona a la inversa del registro A, traduciendo IPs en nombres de dominio.

Fuente: Programacionweb
Volver arriba Ir abajo
https://infect-zone.activo.mx
 
Protocolos HTTP, HTTPs, SMTP y DNS.
Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
Infect-Zone :: ..:: Diseño General ::.. :: Desarrollo de Páginas Web-
Cambiar a: