Zum Hauptinhalt springen

7. Operational Considerations

7. Operational Considerations​

7.1. Load Management​

Push-Dienste halten sehr viele TCP-Verbindungen offen; Lastverschiebung zwischen Instanzen kann nötig sein.

Der User Agent MUST 307 (Temporary Redirect) [RFC7231] unterstützen.

HTTP Alternative Services [RFC7838] erlauben Lastverschiebung bei gleichen URIs; GOAWAY nach Ersatzverbindung ermöglicht sanften Übergang.

7.2. Push Message Expiration​

Speicher nach TTL kann groß sein; unbegrenzte Speicherung ist nicht vorgeschrieben; TTL kommuniziert beabsichtigte Haltedauer (5.2).

Inaktive Überwachung: Nachrichten, die in dieser Zeit ablaufen, gehen verloren.

Gespeicherte, noch nicht zugestellte Nachrichten werden bei Wiederaufnahme der Überwachung zugestellt. SHOULD Last-Modified [RFC7232] (Zeitpunkt der Zustellungsanfrage).

GET nur mit abgelaufenen Nachrichten: Antwort wie ohne jemals gesendete Nachricht.

Zur Begrenzung MAY 413 [RFC7231] bei zu großem Body; MUST NOT 413 bei höchstens 4096 Byte.

Zur Begrenzung der Anzahl MAY kürzeres TTL als angefragt. Nach Annahme MAY vor angekündigtem TTL ablaufen; bei Quittungswunsch MUST Fehlerantwort (6.2).

7.3. Subscription Expiration​

Abonnements können beendet werden, um sie zu erneuern (Nachrichten- und Quittungsabonnements).

Der Dienst MAY jederzeit ablaufen lassen. Ausstehende Anfragen auf abgelaufene Ressourcen (6 bzw. 6.3) MUST mit 404 signalisiert werden.

Senden an abgelaufenes Nachrichtenabonnement: MUST 404.

DELETE auf Abonnement-URI durch User Agent bzw. DELETE auf Quittungs-URI durch Anwendungsserver entfernt das Abonnement.

7.3.1. Subscription Set Expiration​

Der Dienst MAY eine Menge beenden und MUST dann alle enthaltenen Abonnements beenden. Ausstehende Anfrage auf die Menge (6.1): MUST 404.

DELETE auf Menge-URI MUST alle Abonnements der Menge entfernen.

Abgelaufenes oder entferntes Mitglied MUST aus der Menge entfernt werden.

7.4. Implications for Application Reliability​

Ohne zuverlässige Zustellung bei instabilem Netz oder fehlerhaften Apps muss das Gerät direkt beim Anwendungsserver bestätigen, was mehr Energie kostet.

Zuverlässigkeit wichtig bei zustandskritischen Nachrichten; sonst teure Retransmission, Polling, Resync.

Zustellquittungen vermeiden Ersatzkanäle, die Push-Vorteile zunichtemachen.

Für flüchtige oder schnell obsolet werdende Nachrichten ist Zuverlässigkeit weniger kritisch.

7.5. Subscription Sets and Concurrent HTTP/2 Streams​

Wenn Mengen verpflichtend sind, MAY der Dienst SETTINGS_MAX_CONCURRENT_STREAMS [RFC7540] begrenzen. Der User Agent MAY einen Strom für Abonnementverwaltung und einen pro zurückgegebener Menge haben, was Serialisierung erzwingen kann.