Passa al contenuto principale

7. Operational Considerations

7. Operational Considerations​

7.1. Load Management​

Un push service può dover mantenere moltissime connessioni TCP aperte. Spostare le connessioni tra istanze può essere necessario.

L'user agent MUST supportare 307 (Temporary Redirect) [RFC7231] per ridistribuire il carico alla richiesta di nuovo abbonamento.

HTTP Alternative Services [RFC7838] consentono ridistribuzione mantenendo gli stessi URI; GOAWAY dopo una connessione sostitutiva permette transizione graduale.

7.2. Push Message Expiration​

La memorizzazione in base a TTL può richiedere molto spazio. Il servizio non è obbligato a conservare per sempre; può indicare la durata prevista con TTL (5.2).

Un user agent che non monitora attivamente non riceve messaggi scaduti in quell'intervallo.

I messaggi memorizzati non consegnati vengono recapitati quando riprende il monitoraggio. I messaggi memorizzati SHOULD includono Last-Modified [RFC7232] (momento della richiesta di consegna).

GET su abbonamento solo con messaggi scaduti: risposta come se non fosse mai stato inviato un messaggio.

Per limitare dimensione e numero, il servizio MAY risponde 413 [RFC7231] se il corpo è troppo grande; MUST NOT 413 per corpi fino a 4096 byte.

Per limitare il numero, MAY rispondere con TTL più breve della richiesta. Dopo accettazione, MAY far scadere prima del TTL annunciato; se era richiesta ricevuta, MUST risposta di errore (6.2).

7.3. Subscription Expiration​

Può essere necessario terminare gli abbonamenti per rinnovarli (messaggi e ricevute).

Il servizio MAY far scadere un abbonamento in qualsiasi momento. Richieste pendenti su risorsa scaduta (6 o 6.3) MUST essere segnalate con 404.

Invio a abbonamento messaggi scaduto: MUST 404.

L'user agent può DELETE sull'URI dell'abbonamento messaggi; il server applicativo DELETE sull'URI della receipt subscription.

7.3.1. Subscription Set Expiration​

Il servizio MAY far scadere un insieme e MUST far scadere tutti gli abbonamenti nell'insieme. Richiesta pendente sull'insieme (6.1): MUST 404.

DELETE sull'URI dell'insieme MUST rimuove anche tutti gli abbonamenti nell'insieme.

Se un abbonamento membro scade o viene rimosso, MUST essere rimosso dall'insieme.

7.4. Implications for Application Reliability​

Senza consegna affidabile su rete intermittente o applicazioni difettose, il dispositivo deve confermare direttamente ai server applicativi, con maggior consumo energetico.

L'affidabilità conta se i messaggi portano stato critico; altrimenti ritrasmissioni, polling e risincronizzazione costano.

Le ricevute di consegna evitano canali alternativi che annullano i vantaggi del push.

Per messaggi transitori o rapidamente superati, l'affidabilità può essere meno necessaria.

7.5. Subscription Sets and Concurrent HTTP/2 Streams​

Se il servizio richiede gli insiemi, MAY limitare i flussi concorrenti con SETTINGS_MAX_CONCURRENT_STREAMS [RFC7540]. L'user agent MAY avere un flusso per gestire abbonamenti e uno per ogni insieme restituito, forzando serializzazione delle sottoscrizioni.