Кодирование веб-сайта в C?

Код PowerShell для этого фрагмента оболочки очень похож на оригинальный:

foreach ($g in cat 'C:\path\to\input.txt') {
    echo $g; Invoke-Expression "$(symsg -sid $g list -v)" > 'C:\path\to\output.txt'
}

И в следующий раз, пожалуйста, попробуйте сначала сделать это самостоятельно. ТАК не бесплатная услуга перевода. Я просто делаю исключение сегодня, потому что погода такая хорошая.

6
задан Gaurav Dadhania 3 March 2009 в 04:22
поделиться

5 ответов

Я не знаю, как meebo делает это, но, учитывая, что это - программное обеспечение чата, им, вероятно, записали пользовательский сервер в C для обработки фактического трафика сообщений.

Однако Apache и большинство других серверов HTTP всегда могли назвать программы C, как они могут назвать PHP, CGI и другие языки для определенных запросов. Некоторые веб-сайты даже записаны в Lisp.

Бэкенд должен быть скомпилирован каждый раз, в отличие от интерпретируемого языка, но это происходит при развертывании и является частью сценариев сборки/производства.

Данные полномочия и учетная запись пользователя, что прогоны программы C под должны быть тщательно выбраны, и конечно веб-сайт C, страдают от тех же проблем, на которые любая другая программа C может попасться, такие как переполнение буфера, segfault, stackoverflow, и т.д. Пока Вы выполняете его с уменьшенными полномочиями, Вы лучше защищены, и это не хуже, чем какой-либо другой язык/платформа/архитектура.

Для серверов, однако, это все еще используется широко - золотой стандарт, я предполагаю. Можно найти много серверов записанным в Java, C++ и любом языке, но C просто, кажется, слоняется поблизости.

- Adam

9
ответ дан 8 December 2019 в 13:03
поделиться

Meebo использует пользовательский модуль Lighttpd, названный mod_meebo. Это не полностью отвечает на Ваш вопрос, но я думал, что Вам могло бы быть интересно.

3
ответ дан 8 December 2019 в 13:03
поделиться

Я насыпал неблокирующиеся серверы HTTP 1.1 всего 50 (редких) строк кода или несколько сотен (лучше), до приблизительно 5k (безопасный). Серверы загрузили бы динамические общие объекты как модули для обработки определенных видов запросов.

Родительский код обработал бы отслеживание соединения, сохранить alives, ПОЛУЧАТЬ/POST/ВОЗГЛАВЛЯТЬ запросы и подать их прочь к обработчикам, которые были загружены на запуске. Я сделал это, когда я работал с Очень небольшим количеством комнаты колена на встроенных устройствах, которые должны были иметь некоторую веб-панель управления.. конкретно устройство, которое управляло розетками.

Точка входа к каждому DSO была определена URL и используемым методом (т.е. / нечто вело себя по-другому в зависимости от типа запроса, которому это служило).

Мой небольшой сервер вполне успел, мог обработать приблизительно 150 клиентов без ветвлений или потоков и даже имел миленькую шаблонную систему, таким образом, люди UI могли изменить страницы, не нуждаясь в содержании руки.

Я наиболее решительно не использовал бы этот вид установки ни на каком виде места производства, даже Ваше основное привет мировая домашняя страница с гостевой книгой.

Теперь, если все, что я должен сделать, слушают на порте 80/443, принимают запросы с маленькой полезной нагрузкой POST, санируют их и передают им другим клиентам... это немного отличается. Но это - задача определенный сервер, который симулирует быть веб-сервером, не использование C для генерации динамических страниц.

3
ответ дан 8 December 2019 в 13:03
поделиться

Много программ серверной стороны может быть сделано в C, не говоря уже о программировании CGI. Они могли также Использовать C с MySQL, который очень возможен. Но без доступа к их исходному коду, у нас нет способа знать, сколько C они используют.

Утверждение, что они - "один из некоторых вокруг тихого использования C", было, вероятно, просто шуткой. Со статистикой как это, по крайней мере, я надеялся бы так.

- John

2
ответ дан 8 December 2019 в 13:03
поделиться

Вы видите хороший пример веб-сайта в C с исходным кодом: окаменелость.

Это использует SQLite для бэкэнда.

1
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: