Napisanie serwera obsługującego na własny sposób zapytania HTTP

0

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ąć:

  1. 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.

  1. 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).

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.
  2. 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.

  1. 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.
  2. 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."
1

Nie wiadomo co właściwie chcesz robić.
Można napisać:
a) aplikację web - czyli coś co działa jako stronka w przeglądarce i komunikuje się z serwerem http (również strona jest przeważnie przez ten serwer renderowana),
b) serwis http- zwany często API, od powyższego różni się tym, że nie piszesz html, tylko samo miesko (funkcje) - bo klientem może być strona, aplikacja komórkowa, albo chleb z dzęmem (o ile potrafi w HTTP)
c) framework / serwer HTTP - czyli coś (bazę) na czym a) lub b) się pisze (ale strzelam, że nie o to chodzi)

CHatGPT podpowiedział CI rózne frameworki, które pozwalają napisać serwis lub aplikacje web - polecam użyć, bo ręcznie pisany nie będzie Ci działać za dobrze (to co roibisz w dziale C/C++) (z wielu względów m.in. obsługa wielu użytkowników, plus to, że C się do takich rzeczy zupełnie nie nadaje, chyba że lubisz jak Ci ludzie mielą bitcoin lub rozsyłają spam z twojego serwera).

0

Zacznij od obejrzenia najbliższej okolicy, czyli w przypadku oprogramowania na pewno jest już parę implementacji serwera HTTP w dowolnym języku jakim programujesz.
Wystarczy tylko zaczerpnąć z gotowych rozwiązań.

Potem ewentualnie opisz czego Ci brakuje w gotowych rozwiązaniach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1