Servidor web escrito en Java apto para el envío de páginas escritas en html así como de archivos enlazados en las mismas de forma concurrente (es capaz de atender varias peticiones a la vez).
Antes de mirar el código es necesario conocer como se realiza la comunicación entre el navegador y el servidor web. Suponiendo que es el servidor de ejemplo que incluye esta publicación y que estará en la misma máquina desde la que realizaremos las pruebas.
- Introducimos en el navegador la dirección de la página web que será localhost (al igual que hacemos con www.google.es). Esto hará que nuestro navegador busque el servidor y le pida la página principal (raíz). Si fuese algo como www.google.com/maps le pediría la raiz del directorio “maps”.
- Cuando establece la conexión con www.google.com le envía un texto. La petición. Que se parece a esto:
GET /index.html HTTP/1.1 Host: www.example.com User-Agent: nombre-cliente [Línea en blanco]
- El servidor de ejemplo solo comprobará el tipo de petición:
- GET.- Enviar la página.
- HEAD.- Enviar la información de la página, pero no el contenido.
- /index.html será la página que quiere. Esta estará en la carpeta donde está nuestra web.
- HTTP/1.1 que será el protocolo, aunque no lo tendremos en cuenta.
- Host: Debe hacernos referencia a nosotros mismos. Pero la ignoraremos porque ya sabemos quienes somos.
- El resto de las líneas dan información del navegador, como la versión, los formatos que acepta, resolución de pantalla, etc. Al igual que antes, no lo tendremos en cuenta.
- El servidor responderá con algo parecido a esto:
HTTP/1.1 200 OK Date: Fri, 31 Dec 2003 23:59:59 GMT Content-Type: text/html Content-Length: 1221 <html> <body> <h1>Página principal de tuHost</h1> (Contenido) . </body> </html>
- De la primera línea nos interesa el número. Este indica el estado. Si empieza por 2xx significará que todo es correcto. Si es del tipo 3xx significa que se ha redireccionado a otra dirección (no lo haremos). Si es del tipo 4xx significa que ha habido problemas con el archivo, por ejemplo cuando no lo encuentre que será error 404. Y los que empiezan por 5xx que significará que es un error del servidor.
- Se da otra serie de información como datos sobre el servidor, fecha, tipo y tamaño del archivo, etc.
- Después hay dos saltos de línea.
- Y a continuación se envía el archivo html normalmente, también puede ser una imagen, u otro típo como zip, pdf, etc.
- Tras esto se cierra la conexión. El navegador podría pedirnos que no lo hiciésemos si quisiera pedirnos más archivos y así evitar perder tiempo, pero no se ha contemplado esta posibilidad.
El servidor está comprimido como un proyecto de netbeans.
El código está en la carpeta src.
Y para ejecutarlo se ha de posicionar en la carpeta dist y mediante la orden java -jar ejecutable.jar parámetros… Se iniciará el programa.
Si se cambia el puerto de escucha del servidor en el navegador se debe escribir algo así http://localhost:puerto/ruta
