13 Caching (Memorizzazione nella cache)
13 Caching (Memorizzazione nella cache)
In HTTP, le coppie risposta-richiesta sono memorizzate in cache. RTSP differisce sensibilmente in questo aspetto. Le risposte non sono memorizzabili in cache, salvo la descrizione di presentazione restituita da DESCRIBE o inclusa con ANNOUNCE. (Poiché le risposte diverse da DESCRIBE e GET_PARAMETER non restituiscono dati, la cache non è di fatto un problema per tali richieste.) È tuttavia desiderabile memorizzare in cache i dati multimediali continui, tipicamente consegnati fuori banda rispetto a RTSP, nonché la descrizione di sessione.
Alla ricezione di una richiesta SETUP o PLAY, un proxy accerta se possiede una copia aggiornata del contenuto multimediale continuo e della sua descrizione. Può determinare se la copia è aggiornata emettendo rispettivamente SETUP o DESCRIBE e confrontando l'header Last-Modified con quello della copia in cache. Se la copia non è aggiornata, modifica i parametri di trasporto di SETUP come appropriato e inoltra la richiesta al server di origine. Comandi di controllo successivi come PLAY o PAUSE attraversano poi il proxy senza modifiche. Il proxy consegna i dati multimediali continui al client, eventualmente creando una copia locale per riuso successivo. Il comportamento esatto consentito alla cache è indicato dalle direttive di risposta di cache descritte nella sezione 12.8. Una cache DEVE rispondere a ogni richiesta DESCRIBE se sta attualmente servendo il flusso al richiedente, poiché i dettagli di basso livello della descrizione del flusso possono essere cambiati sul server di origine.
Si noti che una cache proxy RTSP, diversamente dalla cache HTTP, è di tipo «cut-through». Invece di recuperare l'intera risorsa dal server di origine, la cache copia semplicemente i dati in streaming mentre passano verso il client. Non introduce quindi latenza aggiuntiva.
Per il client, una cache proxy RTSP appare come un server multimediale regolare; per il server di origine multimediale, come un client. Come una cache HTTP deve memorizzare tipo di contenuto, lingua del contenuto e così via per gli oggetti in cache, una cache multimediale deve memorizzare la descrizione di presentazione. Tipicamente, una cache elimina tutti i riferimenti di trasporto (informazioni di multicast) dalla descrizione di presentazione, poiché sono indipendenti dalla consegna dei dati dalla cache al client. Le informazioni sulle codifiche restano le stesse. Se la cache può transcodificare i dati multimediali in cache, creerebbe una nuova descrizione di presentazione con tutte le possibilità di codifica che può offrire.