2009-03-03 17 views
6

Właśnie czytałem stronę http://www.meebo.com/ O nas i przeczytałem wiersz: "plus, jesteśmy jednym z niewielu wciąż używających C!"Kodowanie strony internetowej w C?

Biorąc pod uwagę fakt, że meebo jest klientem czatu online, jak działają z C? Jak mogą używać C dla zaplecza? Jak wchodzi w interakcję z interfejsem? Załóżmy na przykład, że użytkownik tworzy nowe konto i należy utworzyć nowy katalog, w jaki sposób informacje przechodzą od strony początkowej do zaplecza?

Przykro mi, jeśli jest to nieprawidłowe pytanie.

Dziękuję

Edycja 1: Intro Tutorial do CGI było świetne. Jakieś dobre książki, które mogę zebrać z mojej biblioteki na ten temat?

Wielkie dzięki za szybkie odpowiedzi!

Odpowiedz

9

Nie wiem, jak robi to meebo, ale biorąc pod uwagę, że jest to oprogramowanie do czatów, prawdopodobnie mają one własny serwer napisany w C, który obsługuje aktualny ruch wiadomości.

Jednak Apache i większość innych serwerów HTTP zawsze mogła wywoływać programy w języku C tak, jak mogą one wywoływać PHP, CGI i inne języki dla pewnych żądań. Niektóre strony internetowe są nawet pisane w Lisp.

Backend musi być kompilowany za każdym razem, w przeciwieństwie do interpretowanego języka, ale dzieje się to przy wdrażaniu i jest częścią skryptu budowania/produkcji.

Podane uprawnienia i konto użytkownika, na którym uruchamiany jest program C, muszą być starannie wybrane, a strona internetowa C ma te same problemy, na które może mieć wpływ inny program w C, takie jak przepełnienie buforu, segfault, stackoverflow itp. Dopóki uruchamiasz go z mniejszymi uprawnieniami, jesteś lepiej chroniony i nie ma gorzej niż jakikolwiek inny język/platforma/architektura.

Jednak dla serwerów nadal jest szeroko stosowany - jak sądzę, standardu złota. Możesz znaleźć wiele serwerów napisanych w Javie, C++ i każdym innym języku, ale C wydaje się trzymać.

-Adam

2

Wiele programów po stronie serwera można zrobić w C, nie wspominając CGI programming. Mogą również być Using C with MySQL, co jest bardzo możliwe. Ale bez dostępu do ich kodu źródłowego, nie mamy możliwości dowiedzieć się, ile C używają.

Twierdzenie, że jest "jednym z niewielu, którzy wciąż używają C" było prawdopodobnie tylko żartem. Ze statystykami takimi jak this przynajmniej mam taką nadzieję.

-John

1

można zobaczyć dobry przykład strony internetowej w języku C z kodem źródłowym: fossil.

Używa SQLite dla zaplecza.

3

Meebo używa niestandardowego modułu Lighttpd o nazwie mod_meebo. To nie w pełni odpowiada na twoje pytanie, ale myślałem, że możesz być zainteresowany.

3

Przetasowałem nieblokujące serwery HTTP 1.1 w zaledwie 50 liniach kodu (rozrzedzone) lub kilkaset (lepiej), do około 5k (bezpieczne). Serwery będą ładować dynamicznie współużytkowane obiekty jako moduły do ​​obsługi określonych rodzajów żądań.

Kod macierzysty obsługiwałby śledzenie połączenia, utrzymywanie aktywności, żądania GET/POST/HEAD i przekazywanie ich do procedur obsługi załadowanych przy uruchomieniu. Zrobiłem to, kiedy pracowałem z BARDZO małym pokojem łokciowym na urządzeniach wbudowanych, które musiały mieć jakiś oparty na sieci panel kontrolny, a konkretnie urządzenie sterujące gniazdkami elektrycznymi.

Punkt wejścia do każdego OSD został zdefiniowany za pomocą adresu URL i zastosowanej metody (tj.

Mój mały serwer działał całkiem nieźle, mógł obsłużyć około 150 klientów bez widelców i wątków, a nawet miał fajny mały system szablonów, więc użytkownicy interfejsu mogli modyfikować strony bez potrzeby trzymania ręki.

Zdecydowanie nie używać tego rodzaju instalacji na każdym rodzaju produkcji, nawet podstawowej stronie głównej Witaj świecie z książką dla gości.

Teraz, jeśli wszystko, co muszę zrobić, to słuchać na porcie 80/443, akceptować żądania z małym ładunkiem POST, oczyszczać je i przekazywać do innych klientów ... to trochę inaczej. Ale to jest specyficzne zadanie serwer, który udaje serwer WWW, a nie używa C do generowania dynamicznych stron.