Este es un pequeño servidor web escrito en C que admite un subconjunto de las especificaciones HTTP 1.0. El servidor;
• Debería poder manejar solicitudes simultáneas
• Implementar los métodos http get and dientes
• Manejar y responder a solicitudes no válidas.
Debería poder demostrar que su servidor web es capaz de entregar su página de inicio a un navegador web. Debe implementar la versión 1.0 de HTTP, como se define en RFC 1945, donde se envían solicitudes HTTP separadas para cada componente de la página web. El servidor podrá manejar múltiples solicitudes de servicio simultáneas en paralelo. Esto significa que el servidor web está multiproceso. En el hilo principal, el servidor escucha un puerto fijo. Cuando recibe una solicitud de conexión TCP, establece una conexión TCP a través de otro puerto y presta servicios a la solicitud en un hilo separado.
Para simplificar esta tarea de programación, desarrollaremos el código en dos etapas. En la primera etapa, puede escribir un servidor de múltiples subprocesos que simplemente muestre el contenido del mensaje de solicitud HTTP que recibe. Una vez que este programa se ejecute correctamente, puede agregar el código requerido para generar una respuesta apropiada.
A medida que desarrolla el código, puede probar su servidor desde un navegador web, como Chrome, Safari, Firefox Web Browser como aplicación HTTP Cliente. Pero recuerde que no está sirviendo a través del puerto estándar 80, por lo que debe especificar el número de puerto dentro de la URL que le da a su navegador. Por ejemplo, si el nombre de su máquina es testhost.mydomain.com Su servidor está escuchando el puerto 6789, y desea recuperar el archivo index.html, entonces especificaría la siguiente URL dentro del navegador: http: // testhost.mydomain.com:6789/index.html
Si omite ": 6789", el navegador asumirá el puerto 80 que probablemente no tendrá un servidor escuchando en él.
Cuando el servidor encuentra un error, envía un mensaje de respuesta con la fuente HTML apropiada para que la información de error se muestre en la ventana del navegador.
Requisitos generales:
• Se utilizará la biblioteca POSIX (PTHREAD).
• El servidor toma demasiadas solicitudes, pero puede devolver la respuesta solo 10 solicitudes. Se rechazan más de 10 solicitudes. En este estado, el servidor devuelve un mensaje "servidor está ocupado"
• El servidor acepta las solicitudes que serán archivos HTML y JPEG. Los otros tipos no aceptarán