Preciso construir um servidor HTTP simples em C. Alguma orientação? Links? Amostras?
c
httpserver
Nathan H
fonte
fonte
Respostas:
Eu sugiro que você dê uma olhada no tiny httpd . Se você quiser escrever a partir do zero, então você vai querer cuidadosamente ler RFC 2616 . Use soquetes BSD para acessar a rede em um nível realmente baixo.
fonte
tiny httpd
também está no github aqui: github.com/larryhe/tinyhttpdEu recomendo que você dê uma olhada em: Um Guia Prático para Escrever Clientes e Servidores
O que você precisa implementar em etapas incrementais é:
fonte
Um servidor HTTP é conceitualmente simples:
Fica mais difícil dependendo de quanto de HTTP você deseja oferecer suporte - POST é um pouco mais complicado, scripts, manipulação de várias solicitações, etc.
Mas a base é muito simples.
fonte
Mongoose (anteriormente Simple HTTP Daemon) é muito bom. Em particular, ele pode ser incorporado e compilado no Windows, Windows CE e UNIX.
fonte
Abra um soquete TCP na porta 80, comece a ouvir novas conexões e implemente isso . Dependendo de seus objetivos, você pode ignorar quase tudo. Na melhor das hipóteses, você pode enviar a mesma resposta para cada solicitação, o que envolve apenas a gravação de texto no soquete.
fonte
Veja o nweb (Nigel's Web Server), "um servidor web minúsculo e seguro [...] com apenas 200 linhas de código-fonte C":
https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing
http://www.ibm.com/developerworks/systems/library/es-nweb/O artigo inclui pseudocódigo, explicações e comentários.
EDIT: o link da IBM morreu. Salvei um PDF da página da web no Google Drive. Aqui está o download do código:
https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing
@ Ankushagarwal tem feito algumas mudanças e enviou a sua versão no GitHub: https://github.com/ankushagarwal/nweb
fonte
Eu escrevi meu próprio para você usar. Este funciona em sqlite, é thread-safe e está em C ++ para UNIX.
Você deve ser capaz de separá-lo e usar o código C compatível.
http://code.google.com/p/mountain-cms/
fonte
A especificação HTTP e Firebug foram muito úteis para mim quando tive que fazer isso para o meu dever de casa.
Boa sorte com o seu :)
fonte
Eu sugiro olhar a fonte para algo como lighthttpd .
fonte
http://www.manning.com/hethmon/ - "Guia Ilustrado para HTTP por Paul S. Hethmon" de Manning é um livro muito bom para aprender o protocolo HTTP e será muito útil para alguém implementá-lo / estendê-lo.
fonte
Use funções de soquete específicas da plataforma para encapsular o protocolo HTTP, assim como os caras do Apache fizeram.
fonte
Há uma duplicata com mais respostas .
Um candidato não mencionado ainda é spserver .
fonte