Уверенный, что вы могли бы написать его самостоятельно. Протокол HTTP обширен, но вам не обязательно быть полностью совместимым веб-сервером для запуска вашего собственного приложения.
Приложение C должно будет прослушивать запросы на любом порту, на котором вы решили запустить сервер (по умолчанию 80). Существуют различные request methods в HTTP, но, как минимум, вам придется реализовать GET
или, может быть, даже POST
, но этот аспект вы можете контролировать со своего веб-приложения.
Вот пример базового запроса, программа, которую C следует разобрать:
GET /index.html HTTP/1.1
Host: www.example.com
И возвращает ответ с запрашиваемым контентом и ответными заголовками, такие как:
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
я, возможно, уже упоминалось об этом, но протокол HTTP действительно огромный. Браузеры с различными возможностями могут получить доступ к сайту, и вам придется отвечать соответствующим образом. Сказав это, поскольку все это под вашим контролем, вы можете начать с малого, возможно, с небольшим подмножеством запросов/заголовков, которые вы хотите обрабатывать, однопоточными, по одному запросу за раз и т. Д., А затем построить его из там.
Как Калеб сказал, что если C может использоваться в ОС и космических кораблей, то мы можем определенно написать веб-сервер приложений и с ним :)
Примечания: Если вы думаете о запуске небольшой программы для веб каждого запроса, его масштабируемость будет ограничено способность операционной системы создавать новые процессы. –