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.