Linux

Solo disponible en BuenasTareas
  • Páginas : 38 (9323 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de noviembre de 2011
Leer documento completo
Vista previa del texto
Tema 1 Protocolo HTTP y aplicaciones web
El conocimiento del protocolo HTTP es indispensable para la correcta implementación de aplicaciones que utilicen la tecnología web. Al fin y al cabo, muchas de las funcionalidades que proporcionan los programas en la parte del servidor, como CGIs o servlets, no son más que implementaciones de alto nivel de funcionalidades básicas proporcionadas por elprotocolo. Este es el caso, por ejemplo, del manejo de cookies o del paso de parámetros e información entre el cliente y el servidor. El protocolo HTTP, básicamente, especifica el modo de comunicación entre un cliente y un servidor. El cliente solicita un documento, imagen o fichero del espacio de direcciones del servidor, y éste se lo sirve. En este tema vamos a estudiar el protocolo, relacionándolocon otros protocolos y servicios de internet, y facilitando bastantes ejemplos que nos ayudarán a comprender su utilización.

1.1. Protocolos y servicios de Internet
Protocolo TCP/IP
La red Internet se construye sobre el protocolo de transmisión de paquetes TCP (Transmision Control Protocol) y sobre un sistema de identificación de los computadores que la constituyen basada en el protocolo IP(Internet Protocol). TCP realiza el empaquetamiento de los datos a transmitir y el chequeo de errores de la transmisión y reenvío de paquetes cuando éstos se producen. Otro protocolo también utilizado es UDP (User Datagram Protocol), más simple que TCP ya que no realiza ningún control de errores en los paquetes. Se suele utilizar cuando se necesita velocidad en la transmisión y no es necesarioasegurar que la totalidad de los paquetes lleguen a su destino (fichero MP3, por ejemplo). El protocolo IP define una dirección IP para cada uno de los computadores existentes en la red. Una dirección IP es un número de 32 bits que suele representarse en forma decimal, separando cada uno de los 4 bytes que constituyen la dirección por puntos (por ejemplo “123.12.1.23”). Habitualmente se utilizannombres simbólicos para referirse a los computadores de la red, como "www.ua.es". La comunicación entre computadores utilizando TCP/IP se realiza mediante sockets. Un socket representa una conexión entre un computador y otro a través de la que se envían datos. Entre dos computadores pueden establecerse más de un socket, por lo que debemos especificar un identificador único que caracterice cada uno delos sockets. Este identificador es un número entero que se denomina puerto. Para programar con sockets es necesario realizar llamadas al sistema operativo que los implementa. Esto hace complicado escribir programas que usen sockets y que sean multiplataforma (que se compilen sin cambios en distintos sistemas operativos), ya que en cada sistema operativo deberíamos utilizar la librería propia demanejo de sockets. Una solución a este problema es el uso de Java como lenguaje de programación. Java incorpora clases estándar con las que utilizar sockets. Por ejemplo, para conectarse a un socket en el puerto 8080 del computador "www.ua.es" no hay más que escribir las siguientes líneas de código:

Tema 1. Protocolo HTTP y aplicaciones web

java.net.Socket connection; try { connection = newjava.net.Socket("www.ua.es", 8080); } catch (Exception e) { }

TCP/IP funciona como un modelo de comunicación cliente/servidor, en el que un computador (cliente) solicita un servicio (como el envío de una página Web) a otro computador (servidor) de la red. Veamos cómo se podría implementar en Java este esquema. En el código aparecen sombreadas las líneas de código más relevantes. El programa quese lista a continuación implementa la parte del servidor. Listado 1.1. Server.java Ejemplo de servidor
import java.io.*; import java.net.*; import java.util.*; public class Server { private static void printUsage() { System.out.println("uso: java Server "); } public static void main(String[] args) { int port; if (args.length < 1) { printUsage(); return; } try { port = Integer.parseInt(args[0]);...
tracking img