summaryrefslogtreecommitdiff
path: root/Year_3/TSDWL/webserver/README.md
blob: 0fee76add8698c233a6a911390693de3ded951b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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.