Necesito construir un servidor HTTP simple en C. ¿Alguna guía? ¿Enlaces? Muestras
Necesito construir un servidor HTTP simple en C. ¿Alguna guía? ¿Enlaces? Muestras
Respuestas:
Le sugiero que eche un vistazo a la pequeña httpd . Si desea escribirlo desde cero, entonces querrá leer detenidamente RFC 2616 . Utilice sockets BSD para acceder a la red a un nivel realmente bajo.
tiny httpd
también está en github aquí: github.com/larryhe/tinyhttpd
Te recomiendo que eches un vistazo a: Una guía práctica para escribir clientes y servidores
Lo que tiene que implementar en pasos incrementales es:
Un servidor HTTP es conceptualmente simple:
Se vuelve más difícil dependiendo de la cantidad de HTTP que desee admitir: POST es un poco más complicado, los scripts, el manejo de múltiples solicitudes, etc.
Pero la base es muy sencilla.
Mongoose (anteriormente Simple HTTP Daemon) es bastante bueno. En particular, es integrable y se compila en Windows, Windows CE y UNIX.
Mire nweb (el servidor web de Nigel), "un servidor web pequeño y seguro [...] con sólo 200 líneas de código fuente C":
https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing
http://www.ibm.com/developerworks/systems/library/es-nweb/
El artículo incluye pseudocódigo, explicaciones y comentarios.
EDITAR: el enlace de IBM ha muerto. He guardado un PDF de la página web en Google Drive. Aquí está la descarga del código:
https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing
@ ankushagarwal ha realizado algunos cambios y ha subido su versión a GitHub: https://github.com/ankushagarwal/nweb
He escrito el mío propio que puedes usar. Este funciona tiene sqlite, es seguro para subprocesos y está en C ++ para UNIX.
Debería poder separarlo y usar el código compatible con C.
La especificación HTTP y Firebug fueron muy útiles para mí cuando tuve que hacerlo por mi tarea.
Buena suerte con el tuyo. :)
Sugeriría buscar en la fuente algo como lighthttpd .
http://www.manning.com/hethmon/ - "Guía ilustrada de HTTP por Paul S. Hethmon" de Manning es un muy buen libro para aprender el protocolo HTTP y será muy útil para alguien que lo implemente / amplíe.
Hay un duplicado con más respuestas. .
Un candidato que aún no se menciona es spserver .