Para programar un servidot web BASICO deberas construir una aplicacion que cumpla con el estandar HTTP1.0 o HTTP1.1.
No te asustes, simplemente deberas escuchar las peticiones que te lleguen por el puerto 80 y atenderlas. Las peticiones te llegan en modo texto, y tienen el siguiente formato general:
GET <pagina web que te piden>
seguido de unos campos comunes que son:
- User-Agent: Informa del tipo de navegador que emplea el cliente
- Referer: URL del documento desde el que se accedió al actual
- If-Modified_Since: Sólo se quiere el documento si se ha modificado
- Accept: Lenguajes aceptados por el navegador
- Host: Servidor al que el cliente envía la petición
- Connection: Se emplea para mantener la conexión
- Accept: Tipos de datos aceptados por el cliente
Debes prestar atencion a la pagina que se te solicita despues del GET. La buscas, la abres y la vuelcas para enviarsela al cliente. Previamente debes establecer la cabecera:
HTTP/1.1 200 OK
el 200 es el codigo de que todo funciona correctamente, hay un conjunto de codigos que especifican el error (te suena el 404 de page not found? pues el servidor web lo dice en ese campo)
Otros campos de la cabecera de respuesta son:
- Location: Nueva localización del documento solicitado
- Server: Nombre y versión del software servidor
- Date: Día y hora en la que se transmite el documento
- MIME-version: Versión del protocolo MIME usada en el servidor
- Content-Length: Longitud en bytes del cuerpo de la respuesta
- Content-Type: Tipo MIME que identifica el tipo de dato de la respuesta
- Last-modified: Fecha y hora en la que se modificó por ultima vez
Si todo esta bien (los sockets o streams cerrados, segun el lenguaje que uses), el cliente recibirá la pagina web y la mostrara al cliente.
Como ves, esto sirve para implementar un servidor muy basico, detalles de permanencia de sesiones, cookies y demas van a parte (Aunque tendrias que ver la facilidad con la que se pueden crear cookies).
Bueno, ya nos cuentas, vaya rollo te he metido
Nos vemos