Bien sûr, vous pouvez en écrire un vous-même. Le protocole HTTP est vaste, mais vous n'avez pas besoin d'être un serveur Web entièrement compatible pour exécuter votre propre application.
L'application C devrait écouter les requêtes sur le port sur lequel vous décidez d'exécuter le serveur (par défaut 80). Il y a divers request methods dans HTTP, mais au minimum vous devrez implémenter GET
, ou peut-être même POST
mais cet aspect que vous pouvez contrôler depuis votre application web.
Voici un exemple d'une demande de base que vous programme C devrait analyser:
GET /index.html HTTP/1.1
Host: www.example.com
Et retourner une réponse avec le contenu demandé et en-têtes de réponse, tels que:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8
je peux avoir déjà mentionné cela, mais le protocole HTTP est vraiment vaste. Les navigateurs ayant des capacités variables pourraient accéder au site, et vous devrez réagir en conséquence. Cela dit, puisque tout est sous votre contrôle, vous pouvez commencer petit avec peut-être un petit sous-ensemble des demandes/en-têtes que vous souhaitez gérer, monothread, une requête à la fois, etc., puis le construire à partir de Là.
Comme Kaleb dit, si C peut être utilisé dans les systèmes d'exploitation et des vaisseaux spatiaux, alors nous pouvons certainement écrire un web et le serveur d'applications avec elle :)
Note: Si vous pensez à lancer un petit programme pour chaque demande Web, son évolutivité sera limitée par la capacité du système d'exploitation à créer de nouveaux processus. –