Passa al contenuto principale

4 RTSP Message (Messaggio RTSP)

4 RTSP Message (Messaggio RTSP)

RTSP è un protocollo testuale e usa il set di caratteri ISO 10646 in codifica UTF-8 (RFC 2279 [21]). Le righe terminano con CRLF, ma i ricevitori dovrebbero essere preparati a interpretare anche CR e LF da soli come terminatori di riga.

I protocolli testuali rendono più facile aggiungere parametri opzionali in modo auto-descrittivo. Poiché il numero di parametri e la frequenza dei comandi sono bassi, l'efficienza di elaborazione non è una preoccupazione. I protocolli testuali, se progettati con cura, consentono anche un'implementazione agevole di prototipi di ricerca in linguaggi di scripting come Tcl, Visual Basic e Perl.

Il set di caratteri 10646 evita complicati cambi di set di caratteri, ma è invisibile all'applicazione finché si usa US-ASCII. È anche la codifica usata per RTCP. ISO 8859-1 si traduce direttamente in Unicode con un ottetto di ordine alto uguale a zero. I caratteri ISO 8859-1 con il bit più significativo impostato sono rappresentati come 1100001x 10xxxxxx. (Vedere RFC 2279 [21].)

I messaggi RTSP possono essere trasportati su qualsiasi protocollo di trasporto di livello inferiore che sia «8-bit clean».

Le richieste contengono metodi, l'oggetto su cui il metodo opera e parametri per descrivere ulteriormente il metodo. I metodi sono idempotenti, salvo diversa indicazione. Sono inoltre progettati per richiedere poca o nessuna manutenzione di stato sul server media.

4.1 Message Types (Tipi di messaggio)

Vedere [H4.1]

4.2 Message Headers (Intestazioni del messaggio)

Vedere [H4.2]

4.3 Message Body (Corpo del messaggio)

Vedere [H4.3]

4.4 Message Length (Lunghezza del messaggio)

Quando un messaggio include un corpo, la lunghezza di tale corpo è determinata da uno dei seguenti criteri (in ordine di precedenza):

  1. Qualsiasi messaggio di risposta che MUST NOT includere un corpo (come le risposte 1xx, 204 e 304) termina sempre alla prima riga vuota dopo i campi di intestazione, indipendentemente dai campi entity-header presenti nel messaggio. (Nota: una riga vuota consiste solo di CRLF.)

  2. Se è presente un campo di intestazione Content-Length (sezione 12.14), il suo valore in byte rappresenta la lunghezza del message-body. Se tale campo non è presente, si assume il valore zero.

  3. Mediante chiusura della connessione da parte del server. (La chiusura della connessione non può essere usata per indicare la fine di un corpo di richiesta, poiché non lascerebbe possibilità al server di inviare una risposta.)

Si noti che RTSP non supporta (al momento) la codifica di trasferimento «chunked» di HTTP/1.1 (vedere [H3.6]) e richiede la presenza del campo di intestazione Content-Length.

Data la lunghezza moderata delle descrizioni di presentazione restituite, il server dovrebbe sempre essere in grado di determinarne la lunghezza, anche se generata dinamicamente, rendendo superflua la codifica di trasferimento a chunk. Anche se Content-Length deve essere presente se c'è un corpo di entità, le regole garantiscono un comportamento ragionevole anche se la lunghezza non è indicata esplicitamente.