-
Notifications
You must be signed in to change notification settings - Fork 0
Laboratorio #3 del corso SISTEMI DI ELABORAZIONE E TRASMISSIONE DELL'INFORMAZIONE (80300) UNIGE
License
GherardiGiacomo/incApache
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
INCAPACHE (Is Not Comparable to APACHE) N.B. il nome si pronuncia "incapaci" ;-) Programma sviluppato a supporto del laboratorio di Sistemi di Elaborazione e Trasmissione del corso di laurea in Informatica classe L-31 presso l'Universita` degli Studi di Genova. Copyright (C) 2012-2014,2016 by Giovanni Chiola <chiolag@acm.org> Copyright (C) 2015-2016 by Giovanni Lagorio <giovanni.lagorio@unige.it> Copyright (C) 2017-2022 by Giovanni Chiola <chiolag@acm.org> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. -------------------------------------- Implementazione di un sottoinsieme del protocollo HTTP, nelle versioni 6.0 e 6.1: la prima gestisce una sola richiesta per ogni connessione (con HTTP/1.0), mentre la seconda gestisce piu` richieste HTTP/1.1 successive sulla stessa connessione in modalita` "pipeline", lanciando in esecuzione piu` thread di risposta per velocizzare l'interazione col browser. Il makefile crea un binario di proprieta` dell'utente root con il flag setuserid attivato, tramite sudo, quindi e` necessario avere i privilegi di amministrazione (=il comando make potrebbe richiedere la vostra password). Questo serve per poter eseguire la chiamata di sistema chroot() e restringere i file che possono essere inviati al browser al solo contenuto della directory www. Se, per qualsiasi ragione, non volete utilizzare l'account di root, e` possibile generare un file che non richiede il flag setuserid (ovviamente non potra` fare chroot) tramite appositi flag di compilazione (vedi Makefile). L'eseguibile lancia in background un secondo processo, corrispondente al comando "file", per ottenere il "mime-type" da restituire nell'header della risposta. Questa informazione puo` essere generata lanciando da shell il comando: file -i nomefile Per lanciare il programma e` necessario specificare la directory www-root e, opzionalmente, la porta TCP su cui mettersi in ascolto. Per esempio: bin/incapache www-root 80 Il server usa il meccanismo dei Cookie per assegnare un identificatore a ogni utente che lo contatta, e successivamente conta il numero di richieste provenienti dallo stesso client.
About
Laboratorio #3 del corso SISTEMI DI ELABORAZIONE E TRASMISSIONE DELL'INFORMAZIONE (80300) UNIGE
Topics
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published