24 Luglio 2015
Si modifichi web-client.c
in modo che incorpori un meccanismo di caching delle risorse scaricate, facendo riferimento ai seguenti punti:
-
Si utilizzi l'header
Last-Modified
dell'HTTP/1.0 documentato alla sezione 10.10 della RFC 1945; -
Ad ogni risorsa scaricata si associ un file:
- il cui nome corrisponde all'URI della risorsa (nel quale il carattere '/' viene sostuito dal carattere '_');
- il cui contenuto è composta da;
- una prima riga contente la data di download della risorsa (espressa nel modo più conveniente)
- il contenuto della risorsa (entity body);
- la cui cartella di salvataggio è
./cache/
, figlia del working directory del programmaweb-client.c
,
-
Per la gestione della data:
- si faccia riferimento al formato http-date (cfr. RFC 1945 Sezione 3.3);
- si utilizzino le funzioni, documentate nel manuale UNIX nelle apposite sezioni riportate tra parentesi;
time(2)
per ottenere la data espressa ini secondi a partire dal 1/1/1970 (epoch) nel tipo int rinominato time_t;localtime(3)
per scomporre la data espressa in "epoch" nelle sue componenti (ora, minuti, ...) riportate ciascuna in un campo della struttura struct tm e viceversa;mktime(3)
per effettuare l'operazione inversa;- opzionalmente utilizzare
strftime(3)
per formattare (analogamente alla printf) le componenti della data presenti nei campi della struct tm in una stringa estrptime(3)
per effettuare (similmente alla scanf) l'operazione inversa.