C++ и Web-программирование
От: Green_B  
Дата: 06.02.03 22:15
Оценка:
Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!
Да
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.02.03 22:34
Оценка: 15 (2)
... << RSDN@Home 1.0 beta 6 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: C++ и Web-программирование
От: Aquary Россия https://wmspanel.com/
Дата: 06.02.03 23:54
Оценка:
GB>Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!

Можно и ещё как...

Программирование CGI — оно не зависит от языка. Поищи на Гугле "c++ CGI" — я в свое время много библиотек готовых накопал для их написания.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re: C++ и Web-программирование
От: Crush Россия http://www.ael.ru/_crush/
Дата: 07.02.03 02:55
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!


Можно обойтись без всяких библиотек, все что надо сделать — принять строку запроса, обработать ее соответствующим образом и сгенерить HTML файл, учитывая указать в начале http заголовок, по меньшей мере:
"Content-Type: text/html\n\n"



Строку запроса можно получить двумя способами:

1. В случае, если используется метот GET, ищи строку типа "a=5&d=7" и т.д. и т.п в массиве argv, передающемся приложению.
2. В случае, если используется метот POST, то же самое (чаще больше) читается со стандартного потока ввода. Не уверен, что cin тут поможет, но как-то это делается всетаки. Тут нужно учесть, что в заголовке могут двоичные файлы содержаться, если upload производится.

Ну и все, что сгенерил смело выпускай в стандартный поток вывода. cout по умолчанию например.

Но это все в первом приблежении.
Не ошибается то, что не работает. (с) Windows
Re[2]: C++ и Web-программирование
От: Crush Россия http://www.ael.ru/_crush/
Дата: 07.02.03 03:10
Оценка:
C>2. В случае, если используется метот POST, то же самое (чаще больше)...

Вот тут я погорячился. Там чуть тяжелее будет. Надо будет в мануалах порыться.
Не ошибается то, что не работает. (с) Windows
Re: C++ и Web-программирование
От: DSD Россия http://911.ru/cv
Дата: 07.02.03 06:18
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!

Легко.
Только сервер иногда соответствующим образом настроить надо, чтоб бинарники запускать разрешал.

Почитай стандарт CGI — в общем случае все общение веб-сервера с cgi-скриптом сводится к тому, что сервер
скрипту передает заголовки запроса в переменных окружения вида "HTTP_*" (при этом немного изменяются оригинальные названия заголовков — все заглавными буквами и пробелы, минусы и прочие "неправильные" символы заменены символами подчеркивания)
Плюс саму строку запроса после "?" для запроса типа GET — в переменной окружения QUERY_STRING
Если запрос был PUT, POST и подобный, то POST-данные передаются в CGI на вход STDIN.

Обратно сервер получает ответ с STDOUT скрипта.
Ответ должен содержать минимальный заголовок ответа, хотябы "Content-type: text/html" или подобный.
Дальше через строку — тело ответа.
В заголовке ответа есть несколько фич, типа управления статусом сервера ("Status: 200") или редирект одной строкой("Location: httр://blablabla.com").

В любом случае ты даешь ему минимальный заголовок, сервер перед отправкой ответа браузеру сам добавит недостающие заголовки.
Сервер ОБЯЗАН парсит заголовки CGI-приложения и дополнять/исправлять их.

Собственно основное вроде все упомянул.
Короче задачи твоей проги — правильно смочь принять нужные параметры запроса из переменных окружения и stdin потока, и правильно отправить ответ на stdout.

Если хочешь из скрипта сгенерить ошибку, можешь ответ об ошибке вместо stdout отправить на stderr(при этом заголовки ответа необязательны).
В stdout только при этом постарайся не отправить ни байта.
Сервер обязан это дело просечь и вывести в браузер юзеру сообщение об ошибке в надлежащем виде с текстом из твоего stderr.

Ну, в общем, о всяких мелочах тут долго можно говорить. Читай мануалы. RTFM тебе поможет
--
DSD
Re: C++ и Web-программирование
От: NetRaider Россия  
Дата: 07.02.03 08:22
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!


Если iis, посмотри в сторону ISAPI.
В 'Статьях' где-то примеры есть
Re: C++ и Web-программирование
От: Partisan  
Дата: 07.02.03 11:16
Оценка:
Здравствуйте, Green_B, Вы писали:

GB>Народ — можно ли на С++ писать такие вещи, как, например, на перле? Если можно — то как? Заранее спасибо!!!


Есть некоторая разница между С++ и Перлом:
— на общедоступных веб-серверах обычно не позволяют размещать компилированные интернет-приложения. Значит, для CGI на С++ надо иметь свой сервер.
— хоть можно обойтись без дополнительных библиотек для CGI на С++, но нет смысла.
— а зачем пользоваться С++ вместо Перла? Если для повышения быстродействия, то вместо CGI есть смысл выбрать другой метод: интерфейсы ISAPI (для IIS), ASAPI (для Apache) и др. Проблема конечно, что программа получится зависящей от сервера.
— Если на сервере будет Windows, и не нужна совместимость с UNIX, то вместо CGI следует использовать ASP или ASP.NET. Для ASP на С++ пишутся COM-объекты.Обычно их вызов вставляется внутрь скрипта, написанного на VBScript, но это необязательно. В ASP.NET своя методика, не зависящая от языка, и С++ в этом случае стоит применять, если он привычен или для использования существующих COM объектов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.