Автор Тема: cgi-bin  (Прочетена 1356 пъти)

steef

  • Напреднали
  • *****
  • Публикации: 45
    • Профил
cgi-bin
« -: Feb 05, 2010, 21:01 »
Здравейте ,
от около 2 месеца ми се върти една идея в главата и сега като видях новината за  PHP/HipHop реших да ви поразпитам за вашия опит.Става дума за cgi-bin скриптове , или по-точно програми.Според вас струва ли си да се правят web проекти (като форуми , търсачки и изобщо всякакви динамични сайтове) със C++ и cgi-bin ? Знам , че е изпълнимите файлове са много по-бързи от скриптовете (като мосово използваният php) , но дали могат да предоставят същите възможности ?Вече разбрах , че по този начин може да се обработва информация от HTML форми - http://www.cs.tut.fi/~jkorpela/forms/cgic.html , но това е единственото ръководство за cgi-bin със C++ , което съм намирал.C++ със сигурност има начин да се свързва със бази данни , но основната възможност , която ме интересува е дали могат да се правят потребителски сесии както с php ?
И сигурно ще ви го помислите за безумие , но какво ще кажете за използване на асемблер , вместо C++ , в името на бързината ?
Активен

tyuio

  • Гост
Re: cgi-bin
« Отговор #1 -: Feb 05, 2010, 21:06 »
НЕ. Помисли защо уеб света е на рнр и други скриптови езици ако трябва нещо по солидно има жаба и .НЕТ
Имам усещането че не си писал много код бързината е условно понятие хич не ми се мисли как с епише код на асемблер за сайт а и като знам че няма никакви иблиотеки за това. Или има :) ?
темата определено не е за тик.
« Последна редакция: Feb 05, 2010, 21:11 от tyuio »
Активен

steef

  • Напреднали
  • *****
  • Публикации: 45
    • Профил
Re: cgi-bin
« Отговор #2 -: Feb 05, 2010, 21:20 »
Еми мисля от 2 месеца и немога да го измисля , та затова ви питам.Извинявам се ако темата не е за тук , прасто се надявах да ми кажете как стои въпроса с линукс дистрибуциите и понеже съм начинаещ , реших да постна в "Linux секция за начинаещи".
Едит : Можеш ли на ми разясниш как стои въпроса с .нет под линукс , или да дадеш малко линкчета ?
« Последна редакция: Feb 05, 2010, 21:23 от steef »
Активен

tyuio

  • Гост
Re: cgi-bin
« Отговор #3 -: Feb 05, 2010, 21:29 »
Ок де, ама това какво има общо с дистрибуциите? Аз не съм на ясно например дали ще има някаква съществена разлика в скоростта на една страница написана на С и на Жаба да речем с което да съм принуден да пиша сайтове на С.(нече ги правя на жаба де :) )
Аи това за което говориш хипхоп не е директно писане на С++.
Мога да кажа че със сигурност ще е мъка писането на такива страници под избраните от теб езици. Всеки език си има определена специфика и предназначение. Сеха рнр не е добър още за десктоп приложения но е страхотен за уеб, особенно за малки и средни приложения. Само че на уеб базираните езици няма как да пишеш драйвери. Жабата е малко по универсална, но и тя си има ограничения
Активен

borovaka

  • Напреднали
  • *****
  • Публикации: 1331
  • Distribution: Каквото дойде
  • Window Manager: Gnome / KDE
    • Профил
Re: cgi-bin
« Отговор #4 -: Feb 06, 2010, 00:16 »
А това разглеждал ли си го?
http://www.webtoolkit.eu/wt
Интересно ми изглежда. Преди време попаднах на този проект. Не съм програмист, просто ми беше привлякло вниманието.
Активен

Та извода е прост: "Колкото по-големи ла*ната - толкова по-малка щетата! ... моралната де, не материалната"

koleto

  • Напреднали
  • *****
  • Публикации: 52
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
    • WWW
Re: cgi-bin
« Отговор #5 -: Feb 07, 2010, 13:41 »
Казвате, че PHP е добър за малки и средни уеб приложения. А за големи, кой език е най-подходящ? Python, Ruby може би? Иначе идеята за сайтове на асемблер ми харесва. Може да се измисли една библиотека по въпроса.

А хип хоп не компилира ли php скрипта в изпълним код?
Активен

Поражение не съществува, докато човек не се признае за победен!

sandman_7920

  • Напреднали
  • *****
  • Публикации: 44
    • Профил
Re: cgi-bin
« Отговор #6 -: Mar 12, 2010, 15:33 »
Няма спор, че C/C++ cgi е много по-бързо от PHP(особено през fast-cgi), но и доста по-трудно се пише. Ако трябва да пишеш неща на по-ниско ниво ти трябва и език от по-ниско ниво C/C++ ето една много добра C++ библиотека http://www.gnu.org/software/cgicc , но ако не си писал на C++ много ще се озориш и дори да си писал трябва да имаш идея и за WEB програмирането
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: cgi-bin
« Отговор #7 -: Mar 12, 2010, 17:19 »
На какъвто и език да го напишеш, CGI скрипта е далеч по-бавен вариант от mod_perl/mod_php или квото и да е там, което се обработва в рамките на apache worker-а.

При fastcgi нещата стоят малко по-различно, защото вече има форкнат cgi процес. Дали обаче ще намажеш особено много от гледна точка на performance, не е много сигурно.

Но и това не е причината, поради която такава идея не е много добра. Просто C/C++ не става за такива неща. Цял нов клас уязвимости и бъгове ще се въведат само заради избора на езика. При PHP/Perl/Python/J2EE, въобще не ти трябва да мислиш за това какво се случва с паметта. На C - трябва. Елементарни примери мога да дам - ще сбъркаш някъде в някоя функция да декларираш примерно char bla[200], ще направиш strcpy(bla,getenv("HTTP_USER_AGENT")); за да вземеш user agent-a на клиента, в момента в който се окаже че той е по-дълъг от 200 байта, препълваш буфера и вероятно приложението ще крашне. Това може да има и security последици. Друг пример - динамично заделяш памет според GET параметър зададен от потребителя. Зъл потребител просто заявява скрипта с голяма стойност на параметъра и твоят скрипт изяжда всичката РАМ на машината, която успее. Или пък някъде викваш malloc(), но забравяш да освободиш паметта, така паметта лека полека leak-ва...докато останеш без свободна памет. И такива работи. Езици като PHP ти спестяват ужасно много неща, с които ще си биеш главата на C, а и покрай това те лишават от възможността да въведеш определени видове бъгове в приложението.

На асемблер да пишеш уеб приложения....ехех, много смело :)  Ще ми се да видя някъде нещо такова :)
Активен

"Knowledge is power" - France is Bacon

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Re: cgi-bin
« Отговор #8 -: Mar 12, 2010, 17:36 »
gat3way, примерите които си дал не са коректни. В C++ кода за взимане на на променлива от средата въобще не включва заделяне и освобождаване на памет - std::string user_agent = getenv("HTTP_USER_AGENT"); За другите неща важи същото. Това че може да ползваш стандартната библиотека на C в C++ програма не означава че трябва да го правиш.

@koleto, това че някои от най-натоварените сайтове като facebook и wikipedia са писани на PHP би трябвало да отговори на въпроса ти. Явно с достатъчно хардуер всичко може да се напише на PHP.

Има проекти като CppCMS, но тяхното приложение е ако имаш много слабо устройство или малко ресурси и голямо натоварване. Основно се ползват от web интерфейс на разни рутери. Всичко различно от PHP, Python, .NET и Java за web е безсмислено. Само за тях има много готови библиотеки, различни фреймуорки и много готов код. А и на всички изброени езици за едно и също нещо се пише по-малко код отколкото на C++.
« Последна редакция: Mar 12, 2010, 17:51 от v_badev »
Активен

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Re: cgi-bin
« Отговор #9 -: Mar 12, 2010, 19:42 »
Ако се управляват процеси в реално време то решението е cgi+php. За всичко друго има и по лесен начин на писане.
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"