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.