diff options
-rw-r--r-- | Year_3/TSDWL/webserver/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Year_3/TSDWL/webserver/README.md | 65 | ||||
-rw-r--r-- | Year_3/TSDWL/webserver/webserver.tar.xz | bin | 0 -> 3908 bytes |
3 files changed, 70 insertions, 0 deletions
diff --git a/Year_3/TSDWL/webserver/CMakeLists.txt b/Year_3/TSDWL/webserver/CMakeLists.txt new file mode 100644 index 0000000..b3947fc --- /dev/null +++ b/Year_3/TSDWL/webserver/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 2.8.9) +project(server) + +file(GLOB SOURCES "*.c") +add_executable(${CMAKE_PROJECT_NAME} ${SOURCES}) diff --git a/Year_3/TSDWL/webserver/README.md b/Year_3/TSDWL/webserver/README.md new file mode 100644 index 0000000..0fee76a --- /dev/null +++ b/Year_3/TSDWL/webserver/README.md @@ -0,0 +1,65 @@ +# Installazione + +Scaricare la tarball: +``` +http://git.dcariotti.me/unict/plain/Year_3/TSDWL/webserver/webserver.tar.xz +tar -J -xvf webserver.tar.xz +``` + +(facoltativo) Creare una cartella per i file del server + +Farne la build +``` +cmake . +./server +``` + +Alternativamente a tutto ciò si può scaricare la cartella presente in +``` +http://git.dcariotti.me/unict/tree/Year_3/TSDWL/webserver +``` +e farne la build. Ma meglio non scaricare tutti i file presenti sulla repo visto +che non c'entrano né col corso, né con l'esercizio. + +# Avvio +Il file `./server` può essere eseguito come +``` +./server <port> [root] +``` +dove la `<port>` è obbligatoria, mentre la cartella `[root]`, ovvero quella +specificata prima dove saranno i file e che il server andrà ad interrogare, sarà +facoltativa. Di default andrà a cercare dentro una cartella `www` presente nella +cartella corrente. + +# Test +Aprire una connessione con `telnet` come +``` +telnet <ip> <port> +``` + +Eseguira una chiamata GET come +``` +GET / HTTP/2 +[...] + + +``` +Tutti gli altri headers saranno ignorati. Al secondo invio verrà cercato il file +all'interno del server. La path e la versione di HTTP sono chiaramente variabili. + +Il responso è completo nel caso di stato 200 o 206, per tutti gli altri sarà una +riga con risposta 404 o 405. + +Attualmente il `Content-type` è staticamente a `text/txt`. + +Il test può essere fatto anche con client come Insomnia o cURL: +``` +curl <ip>:<port>/<path> +``` + +# Nota +Quando si passa come path la "/" si farà una ricerca al file `index.html`. + +--- + +I numerosi commenti `TODO` e `FIXME` saranno sistemati in seguito. diff --git a/Year_3/TSDWL/webserver/webserver.tar.xz b/Year_3/TSDWL/webserver/webserver.tar.xz Binary files differnew file mode 100644 index 0000000..db0b5dd --- /dev/null +++ b/Year_3/TSDWL/webserver/webserver.tar.xz |