Witam
Chciałbym napisać własny serwer obsługujący na własny sposób http - i żeby (być może połączony z tzw. "parserem lokalnym"- aplikacją pomiędzy przeglądarką a serwerem) obsługiwał też może zapis plików(np zapisywał pliki na ramdysku i tam je np. w zależności od użytkownika prezentował w dogodnej dla niego formie - na podstawie danych telemetrycznych pozyskanych z rozwiązań microsoftu). Rozszerzenie http(bez konieczności instalowania php).
Jakieś sugestie?
GPT radzi to
"Stworzenie własnego serwera HTTP to ambitne zadanie, ale może być bardzo pouczające. Poniżej znajdziesz kilka ogólnych kroków i sugestii, które mogą pomóc Ci zacząć:
- Wybór Języka Programowania i Frameworka:
Język Programowania: Wybierz język programowania, który jest dla Ciebie najbardziej zrozumiały i wygodny. Popularne wybory to C, C++, Python, Go, Java, itp.
Framework HTTP: Rozważ użycie gotowego frameworka HTTP, aby uprościć proces obsługi żądań HTTP. W języku C/C++, libmicrohttpd może być dobrym wyborem. W innych językach takich jak Python (Flask, Django), Node.js (Express), Go (Gin), Java (Spring) również istnieją popularne frameworki HTTP.
- Implementacja Obsługi HTTP:
Routing: Zaplanuj, jakie ścieżki URL i metody HTTP (GET, POST, itp.) Twój serwer będzie obsługiwać. Implementuj routing, aby skierować żądania do odpowiednich obszarów kodu.
Obsługa Parametrów: Implementuj obsługę parametrów, zarówno zapytań (query parameters) jak i ciała żądania (request body).
- Bezpieczeństwo:
Zabezpieczenia: Pamiętaj o zabezpieczeniach, takich jak walidacja danych, unikanie wstrzykiwania SQL, ograniczanie dostępu do plików, itp.
HTTPS: Wprowadź obsługę protokołu HTTPS dla bezpiecznej komunikacji.
- Zapisywanie Plików:
Obsługa Zapisywania: Implementuj mechanizm do zapisywania plików na dysku. Możesz użyć standardowych funkcji dostępnych w języku programowania, takich jak funkcje operacji na plikach w C/C++, os moduł w Pythonie, itp.
Bezpieczeństwo Zapisu: Pamiętaj o ograniczeniach dostępu do zapisu i sprawdzaj, czy użytkownik ma odpowiednie uprawnienia do zapisywania plików.
- Połączenie z Parserem Lokalnym:
Interfejs API: Stworzony przez Ciebie serwer może udostępniać interfejs API, z którym będzie się komunikować parser lokalny. Możesz użyć formatów danych, takich jak JSON.
Autoryzacja: Zapewnij odpowiednie mechanizmy autoryzacji, aby kontrolować dostęp do danych.
- Telemetria i Microsoft Azure:
Telemetria: Jeśli planujesz korzystać z usług Microsoft Azure do przetwarzania danych telemetrycznych, zaimplementuj mechanizm zbierania i przesyłania tych danych do usług Azure.
Azure SDK: Wykorzystaj dostępne SDK dla języka programowania, w którym tworzysz serwer, aby ułatwić integrację z usługami Azure.
- Testowanie i Debugowanie:
Jednostkowe i Integracyjne: Stworzony serwer powinien być poddany testom jednostkowym i integracyjnym. Zapewnij testy zarówno dla obsługi HTTP, jak i zapisywania plików.
Debugowanie: Używaj narzędzi do debugowania i monitorowania, aby śledzić działanie serwera.
- Dokumentacja:
Dokumentacja API: Stworzona przez Ciebie aplikacja powinna być dobrze udokumentowana, szczególnie jeśli masz zamiar, aby inni (lub Ty sam w przyszłości) korzystali z jej interfejsu API. - Optymalizacja i Skalowalność:
Optymalizacja: Zoptymalizuj kod serwera i bazy danych dla wydajności.
Skalowalność: Pomyśl o architekturze, która pozwoli na łatwe skalowanie serwera w miarę wzrostu ruchu.
- Legalność:
Przestrzeganie Prawa: Upewnij się, że Twoja aplikacja przestrzega obowiązujące przepisy prawne, zwłaszcza w zakresie przechowywania danych użytkowników i przetwarzania informacji. - Monitoring:
Logging i Monitoring: Dodaj mechanizmy do logowania zdarzeń i monitorowania działania serwera. To pomoże w śledzeniu błędów i analizie wydajności.
Pamiętaj, że każdy z tych punktów wymaga starannego przemyślenia i implementacji. Rozwój aplikacji może być stopniowy, więc zacznij od podstaw i sukcesywnie dodawaj nowe funkcje oraz ulepszaj istniejące."