Come molti sanno, il web è "Senza Stato". Ora vi spiego meglio questa definizione.
Quando noi (client) chiediamo una risorsa al server, quest'ultimo, dopo aver ricevuto la richiesta e trovato la risorsa che abbiamo chiesto ci apre un canale per fornircela e alla fine di questo scambio di dati, il canale viene chiuso e quindi tra client e server non rimane nulla, infatti il server non è interessato a chi sia stato a inviare la richiesta e che tipo di informazioni esso abbia richiesto. Senza il mantenimento di uno stato, si perderebbe tutta o parte della dinamicità offertaci da ASP perché durante il periodo di navigazione oppure durante un lungo lasso di tempo non potrebbero essere mantenute delle informazioni.
A venirci incontro, per mantenere lo stato nel web, ci sono diverse tecniche, come ad esempio, una delle più diffuse è quella dell'ausilio dei cookie, dei piccoli file di testo adibiti a contenere semplici informazioni, per poche ore come per interi mesi. Molti utenti, per una questione di sicurezza e privacy disabilitano l'uso di quest'ultimi e, di conseguenza, hanno diversi problemi di navigazione sui siti che usano questa tecnica per mantenere lo stato.
Cosa succede se il nostro sito fa massiccio ausilio dei cookie e l'utente che ci visita li ha disabilitati?A venire incontro a questi utenti è il filtro ISAPI (Internet Server Application Programming Interface), un piccolissimo programma gratuito prelevabile dal sito di Microsoft che aggiunge delle funzionalità al server web su cui viene installato. Questo filtro è detto anche Cookie Manager e permette a chi ha disabilitato l'uso dei cookie di mantenere lo stato tramite le variabili di sessione. Ecco i passi che il programma svolge:
- Se viene richiesta una pagina web da un'utente che ha abilitato i cookie il filtro non fa nulla
- Nel momento in cui il cookie manager si accorge che l'utente non accetta i cookie genera un SessionID che abbina a quel client che ha effettuato la richiesta
- La pagina ASP preleva il SessionID generato e lo abbina a una particolare istanza dell'oggetto Session
- Quando il server invia la pagina ASP al client che non accetta i cookie, dopo aver esaminato l'URL e i collegamenti ipertestuali, aggiunge alla fine dell'indirizzo il SessionID generato in precedenza
- Quando il client invia la richiesta di un url che contiene il SessionID alla fine, entra in azione il Cookie manager eliminando il SessionID aggiunto, richiamando la pagina ASP richiesta e passandole il SessionID.
Con questi semplici passi il Cookie Manager permette, anche a chi non ha i cookie abilitati, di mantenere lo stato utilizzando le variabili di sessione.
Questo piccolo programmino non viene installato di default su tutti i server poiché deve elaborare tutte le richieste di pagine in entrata e in uscita e ciò può causare un alto consumo in termini di prestazioni del server, in special modo per siti che hanno un alto numero di visitatori.