Para este servidor se implementará parcialmente la versión 1.0 de HTTP, como está definida en el RFC 1945, donde las solicitudes (request) HTTP son enviadas separadas para cada componente de la página web. El servidor debe ser capaz de manipular solicitudes de servicio simultáneas en paralelo. Esto significa que el servidor es multi-hilos (multi-threaded). En el hilo principal, el servidor escuchará por un puerto fijo. Cuando reciba una solicitud de conexión TCP, establecerá una conexión TCP a través de otro socket (socket de conexión) y atenderá la solicitud en un hilo separado. Para simplificar el proceso de programación, el código debe ser desarrollado en dos etapas. En la primera se escribirá un servidor multi-hilos que simplemente mostrará en la pantalla el contenido de la solicitud (request) HTTP que recibe. Cuando este código esté funcionando de manera correcta, usted podrá agregar, en la segunda etapa, el código requerido para generar una respuesta HTTP apropiada al browser.
A medida que usted avance en el código, puede probarlo desde un browser para web. No se utilizará el puerto 80 para ofrecer el servicio, por esto deberá incluir el número de puerto en el URL. Por ejemplo, si su máquina está identificada como www.miservidor.edu, su servidor atenderá las solicitudes a través del puerto 6789, y, suponiendo que se desea recuperar el archivo index.html, entonces usted debe especificar el siguiente URL:
http://www.miservidor.com:6789/index.htmlCuando el servidor encuentre un error enviará un mensaje de respuesta en HTML para que sea mostrado por el browser.
Servidor Web en lenguaje Java: Parte I (servidor web multi-hilos que mostrará el contenido de la solicitud (request) HTTP que recibe). Servidor Web en lenguaje Java: Parte II (servidor web multi-hilos que genera una respuesta HTTP apropiada). Servidor web simple de ejemplo (no es multi-hilos)