Vous êtes sur la page 1sur 12

Curso de Redes:

Cuando una persona accede a una pgina web, establece una comunicacin HTTP o HTTPS a travs de Internet con un seguido de ordenadores en lo que denominaremos comunicacin clienteservidor. Llamamos cliente al ordenador que inicia la comunicacin (el de la persona que quiere acceder a una pgina web) mientras que el servidor ser el ordenador remoto que atiende esta peticin y la responde. El ordenador cliente utiliza un seguido de protocolos distintos para poder comunicarse con los servidores que participarn en la comunicacin, servidores que a su vez utilizaran protocolos parecidos para comunicarse con el cliente o con otros servidores.

Comunicacion cliente-servidor Algunos de los servidores que frecuentemente participan cuando accedemos a una pgina web son: 1.- Servidores HTTP 2.- Servidores HTTPS 3.- Servidores DNS 4.- Servidores Proxy 5.- Servidores de bases de datos ... Estos conceptos, que explicaremos mas adelante, es importante que nos queden muy claros para entender mejor ciertos aspectos de la programacin de paginas web y sobretodo para saber porque funcionan o porque no funcionan las cosas que hacemos en nuestra web.

El ordenador cliente
Antes de empezar la comunicacin con el servidor, es nescesario conoder la direccin de Internet ( direccion IP ) de este servidor, para conocerla, deberemos transformar la direccin de nombre de dominio introducida por el usuario ( por ejemplo www.programacionweb.net ) a una direccin IP ( por ejemplo 213.223.12.87 ) mediante el protocolo DNS. ArribaTabla de contenido y La consulta del nombre de dominio

Ejemplo de consulta

ArribaLa consulta del nombre de dominio Para traducir el nombre de dominio a una direccin IP (lo que se conoce como resolver el nombre de dominio o resolucin DNS) nuestro ordenador deber conocer la direccin IP de un servidor DNS, este dato nos lo dar nuestro proveedor de acceso a Internet y se lo indicaremos a nuestro ordenador en la configuracin de red Conociendo el servidor de DNS, nuestro ordenador iniciar una comunicacin con l en la que le preguntar cual es la ip del nombre de dominio que se quiere resolver. El servidor consultar una base de datos interna para ver si sabe que IP corresponde con este nombre de dominio, en el caso de no encontrar el nombre preguntado en su base de datos, preguntar a otro servidor DNS que realizar los mismos pasos hasta que alguno sepa contestar los datos.

El que sabe la IP, se la enviar al primero de los servidores y este nos enviar la respuesta y se guardar durante un tiempo el resultado por si se lo volvemos a preguntar. ArribaEjemplo de consulta Conociendo el protocolo DNS veamos una consulta de un regstro de direccin y su respuesta: 000 > www.programacionweb.net 001 < www.programacionweb.net. 39332 </CODE< code>
Maximizar Seleccionar

IN IN

A A

62.149.130.140

Podemos ejecutar consultas con el comando nslookup, podemos tambien obtener informacion con la utilidad dig

La comunicacin con los servidores


Antes de enviar una informacin a travs de Internet, el sistema operativo del ordenador, se encarga de cortar esta informacin en pequeas porciones y aadir a cada porcion algunos datos para que pueda ser entregada a su destinatario, formando lo que llamamos paquetes. Cada paquete, esta destinado a un ordenador (direccion IP), proviene de otro (direccion IP) y es enviado a un ordenador / router (direccion MAC), el paquete se ir enviando de MAC en MAC hasta encontrar su destinatario, pero solo puede enviarse a direcciones MAC que estan en nuestra misma red. Para saber a que IP de nuestra red se tiene que enviar el paquete, cada ordenador o router, tiene una tabla de rutas, en esta tabla se le indica la direccin final y a que direccion de nuestra red tenemos que enviar la informacion, si no se encuentra el destinatario en esta tabla, se enviar la informacion a la puerta de enlace.

Sabiendo a que IP hay que enviar el paquete, entonces el ordenador o router debe conocer la MAC a la que corresponde esa IP para enviarle el paquete, para esto enva un paquete ARP (en rojo en el esquema), recibe una respuesta ARP y lo guarda en la cache de direcciones ARP.

Proceso de envo de un paquete

Como vemos, el paquete ser enviado siempre de router en router usando sus direcciones MAC, enviando los paquetes ARP que hagan falta para ir conociendo las MAC de las IP que encontramos en la tabla de rutas hasta que llegemos a la red de destino y el paquete pueda ser entregado a la MAC del servidor. Seguidamente el servidor perparar la informacion de respuesta y la enviar siguiendo el mismo procedimiento hacia la IP de origen (que ahora ser destino) exactamente de la misma manara, pero ahora no haran falta los paquetes ARP porque las direcciones MAC ya estan guardadas en la cache.

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 comunicacin 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 cmo para transferencia de Ficheros ( carga y descarga de ficheros ), datos ( XML ), trafico de red ( SSLVPN )... ArribaTabla de contenido

y y

La comunicacin HTTP Ejemplo

ArribaLa comunicacin HTTP Los datos de una transaccin HTTP son enviados en una comunicacin TCP al puerto 80 ( por defecto) tipo cliente-servidor en la que el cliente ( navegador web ) enva una peticin al servidor HTTP y el servidor responde cerrado o no la conexin. El formato de la peticin y la respuesta HTTP es el siguiente: 000 001 002 003 004 005 Peticin/Respuesta Encabezado-1: Valor-1 ... Encabezado-N: Valor-n [Cuerpo]
Maximizar Seleccionar

Donde la primera lnea ( Peticin/Respuesta ) ser: En una peticin El mtodo, el recurso solicitado y el protocolo/versin separados por espacios: GET /index.htm HTTP/1.1 En una respuesta El protocolo/versin, el cdigo 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 Informacin no oficial 204 Sin Contenido 205 Contenido para reset 206 Contenido parcial 300 Mlpiples posibilidades 301 Mudado permanentemente 302 Encontrado 303 Vea otros 304 No modificado 305 Utilice un proxy 307 Redireccin temporal 400 Solicitud incorrecta 401 No autorizado 402 Pago requerido 403 Prohibido 404 No encontrado 405 Mtodo no permitido 406 No aceptable 407 Proxy requerido 408 Tiempo de espera agotado 409 Conflicto 410 No mapas disponible 411 Requiere longitud

412 Fall precondicin 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 Versin de HTTP no soportada Los encabezados ( Encabezado1-N ) son una combinacin directiva: valor que contienen, en la peticin, informacin del navegador y la peticin, y en la respuesta informacin del servidor y el recurso. El cuerpo contiene los datos a enviar/recibir. ArribaEjemplo Hacemos una peticin: 000 GET http://www.programacionweb.net/ HTTP/1.0 001 From: yo@miHost.example 002 User-Agent: HTTPTool/1.0 003
Maximizar Seleccionar

Recibimos la respuesta: 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 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>Pgina principal de tuHost</h1> (Contenido) . . . </body> </html> </CODE< code>
Maximizar Seleccionar XML

Podeis ver los encabezados HTTP de un servidor con nuestro visor de encabezados</A< td>

El protocolo HTTPS
El protocolo HTTPS es una versin segura del protocolo HTTP que implementa un canal de comunicacin seguro y basado en SSL ( Secure Socket Layers ) entre el navegador del cliente y el servidor HTTP. ArribaTabla de contenido y y y Porque utilizar HTTPS? Diferncias con HTTP El certificado del servidor

ArribaPorque utilizar HTTPS? TCP/IP es un canal de comunicacin no seguro, donde para ir de un cliente a un servidor, la informacin realiza un seguido de saltos entre diferentes routers que se encargan de hacer llegar la informacin 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 informacin para que una vez capturada no pueda conocerse su contenido y as poder enviar con tranquilidad numeros de cuenta, datos personales... ArribaDiferncias con HTTP A diferncia de HTTP, HTTPS trabaja por defecto por el puerto 443 TCP, y antes de enviar los datos realiza algunas acciones prvias. Para hacer esta negociacin, el cliente, enva al servidor las opciones de cifrado, compresin y versin de SSL junto con algunos bytes aleatorios llamados Challenge de Cliente. El servidor, escoje las opciones de cifrado, compresin y versin de SSL entre las que ha ofertado el cliente y le enva su decisin y su certificado. Ambos negocian la clave secreta llamada master secret y usando esta clave, la Challenge de Cliente y las opciones pactadas se envan la informacin encriptada de tal manera que de ser interceptada no se puede descifrar. ArribaEl certificado del servidor Para que nos entendamos, un certificado de clave pblica 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 comunicacin segura en su lugar. Estos certificados pueden generarse con herramientas cmo OpenSSL y para una mayor seguridad pueden ser firmados por una autoridad certificadora, por ejemplo: VeriSign Thawte GoDaddy GeoTrust Aunque tambin 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 informacin est siendo enviada al servidor correcto.

El protocolo SMTP
SMTP ( Simple Mail Transfer Protocol ) o Protocolo Simple de Transferencia de Correo Electrnico es un conjunto de reglas que rigen el formato y la transferncia de datos en un envo de Correo Electrnico ( e-mail ). ArribaTabla de contenido y y y La transferncia del correo La comunicacin SMTP Ejemplo

ArribaLa transferncia del correo Cuando enviamos un correo electrnico iniciamos un seguido de pasos que desencadenan diferentes comunicaciones SMTP que detallaremos en el prximo 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 destinatrio, el cliente de correo genera el codigo SMTP del mensaje y lo enva a un servidor SMTP saliente. Paso 2 El servidor saliente utiliza una consulta DNS para conocer los servidores de correo entrante del dominio del destinatrio ( llamados MX primrio, MX secundrio... ) y enva el correo SMTP al primero de ellos que responde. 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 Paso 3 Este servidor almacena el correo en el buzn de correo en el servidor del destinatrio.

Paso 4 Finalmente el destinatrio se conecta al servidor de correo entrante usando los protocolos POP3, IMAP4 o similar... y descarga el correo de su almacn. ArribaLa comunicacin SMTP La comunicacin SMTP se realiza por TCP y normalmente en el puerto 25, es una comunicacin tipo orden - respuesta delimitada por CRLF ( Retorno de carro + Salto de lnea ) que podemos realizar de manera manual utilizando el comando telnet o con un cliente de correo: 000 telnet smtp.example.com 25
Maximizar Seleccionar CMD

En esta comunicacin usaremos las siguientes ordenes SMTP: HELO - Abre una sesin 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 sesin Y las respuestas que recibiremos sern, un cdigo y un texto donde el cdigo ser:

2XX - Orden realizada correctamente 3XX - Orden correcta recibida pero no requiere accin. 4XX - Repetir orden correctamente 5XX - Error ArribaEjemplo Vamos a ver un ejemplo de envo de correo usando telnet: 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 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 envo > . < 250 Ok: queued as 3BDCD2DE91D > QUIT < 221 Bye </CODE< code>

El protocolo DNS
El DNS ( Domain Name System ) o Sistema de Nombres de Dominio es una base de datos jerrquica y distribuida que almacena informacion sobre los nombres de dominio de de redes cmo Internet. Tambin llamamos DNS al protocolo de comunicacin entre un cliente ( resolver ) y el servidor DNS. La funcin ms comn de DNS es la traduccin de nombres por direcciones IP, esto nos facilita recordar la direccin de una mquina haciendo una consulta DNS ( mejor recordar www.programacionweb.net que 62.149.130.140 ) y nos proporciona un modo de acceso ms fiable ya que por multiples motivos la direccin IP puede variar manteniendo el mismo nombre de dominio. ArribaTabla de contenido y y y La estructura jerrquica Tipos de consulta Tipos de regstro

ArribaLa estructura jerrquica Un nombre de dominio consiste en diferentes partes llamadas etiquetas y separadas por puntos. La parte situada ms 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 www.programacionweb.net: 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 ms zonas de autoridad que publican la informacin acerca del dominio y los nombres de servicios de cualquier dominio incluido.Al inicio de esa jerarqua se encuentra los servidores raz, 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.

ArribaTipos 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. ArribaTipos de regstro Hay diferentes tipos de regstro DNS que se pueden consultar: A (Direccin) - Este registro se usa para traducir nombres de hosts a direcciones IP. CNAME (Nombre Cannico) - Se usa para crear nombres de hosts adicionales, o alias, para los hosts de un dominio. NS (Servidor de Nombres) - Define la asociacin que existe entre un nombre de dominio y los servidores de nombres que almacenan la informacin 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) - Tambin conocido como 'registro inverso', funciona a la inversa del registro A, traduciendo IPs en nombres de dominio

El ordenador servidor
Igual como dijimos con los ordenadores clientes, el ordenador servidor puede ser cualquier ordenador con conexin a Internet o a nuestra red privada y con un determinado software. ArribaTabla de contenido y y El software servidor Tipos de servidores

ArribaEl software servidor Un software servidor (o servicio), es un programa que se ejecuta de manera permanente en el ordenador servidor a la espera de que un ordenador client le realice una peticin, en este momento, el programa servidor, realizar las acciones nescesrias para enviar el resultado de

vuelta al cliente. Para que puedan coexistir diferentes servicios en un mismo ordenador servidor, cada servicio esta escuchando por unos determinados puertos, toda comunicacin se iniciar con un puerto de destino y un puerto de origen, y ser contestada con manteniendo estos puertos pero en orden inverso:

ArribaTipos de servidores Cmo webmasters, nos interesar conocer principalmente los siguientes tipos de servidores: Servidores HTTP - Servidores de pginas web Servidores HTTPS - Servidores de pginas web seguros Servidores de Base de Datos - Servidores de datos Servidores de Aplicacin - Servidores de programas de servidor En los siguientes artculos explicaremos con ms detalle estos servidores y aprofundizaremos en los ms importantes de ellos, cmo por ejemplo Apache HTTP Server, Microsoft IIS..

Servidores HTTP
Llamamos servidor HTTP tanto al programa como el ordenador que recibe peticiones HTTP desde un ordenador cliente con un visor HTTP (navegador). El servidor HTTP, una vez ha recibido la peticin prepara la pgina HTML (tambien imagenes, archivos...) leyendola de un archivo (*.html, *.htm, *.xml ...), interpretando un cdigo ( *.asp, *.php, *.pl ... ), conectando con un servidor de aplicaciones ( *.jar )... dependiendo de como est configurado el programa servidor HTTP y enva este resultado al navegador del cliente.

Existen muchos programas servidor HTTP ( Apache, IIS...) , en la siguiente grfica podemos ver su cuota de mercado:

Vous aimerez peut-être aussi