Skip to content

Commit 5217214

Browse files
committed
Use/mark BCP14 terminology
1 parent aa8625f commit 5217214

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

content.md

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This document, below referred to as _WebDAV-Push_, provides a way for compliant
55

66
WebDAV-Push is intended as an additional tool to notify clients about updates in near time so that clients can refresh their views, perform synchronization etc.
77

8-
A client should not rely solely on WebDAV-Push, so it should also perform regular polling like when WebDAV-Push is not available. However if WebDAV-Push is available, the polling frequency can be
8+
A client SHOULD NOT rely solely on WebDAV-Push, so it should also perform regular polling like when WebDAV-Push is not available. However if WebDAV-Push is available, the polling frequency can be
99
significantly reduced.
1010

1111
Typical use cases:
@@ -14,6 +14,10 @@ Typical use cases:
1414
- A desktop file manager shows contents of a WebDAV collection and wants to be notified on updates in order to refresh the view.
1515
- A calendar Web app shows a CalDAV collection and wants to be notified on updates in order to refresh the view.
1616

17+
## Requirements language
18+
19+
{::boilerplate bcp14-tagged}
20+
1721

1822
## Architectural overview
1923

@@ -93,7 +97,7 @@ A WebDAV client that implements WebDAV-Push typically
9397
WebDAV-Push is not restricted to specific push transports and allows clients to specify which push transports they support. This allows even upcoming, yet unknown push transports to be used with
9498
WebDAV-Push.
9599

96-
WebDAV-Push implementations _should_ implement at least Web Push / RFC 8030 (see Appendix A).
100+
WebDAV-Push implementations SHOULD implement at least Web Push / RFC 8030 (see Appendix A).
97101

98102
For proprietary push services, client vendors may need to provide a _rewrite proxy_ that signs and forwards the requests to the respective proprietary service.
99103

@@ -172,9 +176,9 @@ Description:
172176

173177
Character sequence that identifies a WebDAV collection for push purposes (globally unique). A specific collection could be reachable at different URLs, but it can only have one push topic.
174178

175-
A client may register the same subscription for collections from multiple servers. When the client receives a notification over such a shared subscription, the topic can be used to distinguish which collection was updated. Because the client must be able to distinguish between collections from different servers, the topics need to be globally unique.
179+
A client MAY register the same subscription for collections from multiple servers. When the client receives a notification over such a shared subscription, the topic can be used to distinguish which collection was updated. Because the client must be able to distinguish between collections from different servers, the topics need to be globally unique.
176180

177-
Because push services will typically be able to see push messages in clear text, the topic should not allow to draw conclusions about the synchronized collection.
181+
Because push services will typically be able to see push messages in clear text, the topic SHOULD NOT allow to draw conclusions about the synchronized collection.
178182

179183
For instance, a server could use as a topic:
180184

@@ -244,7 +248,7 @@ Location: https://example.com/webdav/subscriptions/io6Efei4ooph
244248

245249
Every subscription has an identifier that uniquely identifies the (push transport, push service, client) triple. For Web Push, the identifier is the push resource URL.
246250

247-
A server _must not_ register a subscription with the same identifier multiple times. Instead, when a client wants to register a subscription with an identifier that is already registered for the requested collection, the server _must_ update the subscription with the given details and the expiration date.
251+
A server MUST NOT register a subscription with the same identifier multiple times. Instead, when a client wants to register a subscription with an identifier that is already registered for the requested collection, the server MUST update the subscription with the given details and the expiration date.
248252

249253
Allowed response codes:
250254

@@ -253,7 +257,7 @@ Allowed response codes:
253257
* 404 if the registration URL is unknown (or expired)
254258
* other response code with usual HTTP/WebDAV semantics (if possible, with `DAV:error` XML body)
255259

256-
In any case, the server _must_ return the registration URL in the `Location` header.
260+
In any case, the server MUST return the registration URL in the `Location` header.
257261

258262

259263
## Subscription removal
@@ -281,10 +285,10 @@ HTTP/1.1 204 Unregistered
281285

282286
Clients can specify an expiration date-time when they register a subscription.
283287

284-
A server should take the expiration specified by a client into consideration, but may impose its own (often stricter) expiration rules, for instance to keep their database clean or because the
285-
client has specified an implausible late expiration. Servers _should_ keep registered subscriptions for at least a week.
288+
A server SHOULD take the expiration specified by a client into consideration, but MAY impose its own (often stricter) expiration rules, for instance to keep their database clean or because the
289+
client has specified an implausible late expiration. Servers SHOULD keep registered subscriptions for at least a week.
286290

287-
Clients should refresh their registrations regularly because they can't rely on servers to keep their subscriptions until the client-specified expiration date. Clients _should_ update subscription registrations at least every few days (significantly more often than weekly).
291+
Clients should refresh their registrations regularly because they can't rely on servers to keep their subscriptions until the client-specified expiration date. Clients SHOULD update subscription registrations at least every few days (significantly more often than weekly).
288292

289293
Expired subscriptions should be cleaned up on both server and client side and not be used anymore as chances are high that using such subscriptions will cause errors.
290294

@@ -358,11 +362,11 @@ Expiration ...
358362

359363
### Removal of invalid subscriptions
360364

361-
A WebDAV-Push server _must_ ensure that invalid subscriptions (encountered when trying to sending a push notification) are removed at some time.
365+
A WebDAV-Push server MUST ensure that invalid subscriptions (encountered when trying to sending a push notification) are removed at some time.
362366

363367
An invalid subscription is a subscription that push notifications can't be delivered to. Usually the push service returns an HTTP error code like 404 when it receives a notification for an invalid subscription. There may also be other conditions that render a subscription invalid, like a non-resolvable hostname or an encryption handshake error.
364368

365-
A server _may_ use some logic like remembering the last successful delivery plus some tolerance interval to defer removal of an invalid subscription for some time. Doing so will make WebDAV-Push more reliable in case of temporary problems and avoid temporal "holes" between subscription removal and re-registration.
369+
A server MAY use some logic like remembering the last successful delivery plus some tolerance interval to defer removal of an invalid subscription for some time. Doing so will make WebDAV-Push more reliable in case of temporary problems and avoid temporal "holes" between subscription removal and re-registration.
366370

367371

368372
## Element definitions
@@ -464,7 +468,7 @@ Example:
464468

465469
The push message is delivered via `POST` to the push resource, with `Content-Type: application/xml; charset="UTF-8"`.
466470

467-
The push topic _should_ be used to generate the `Topic` header. Since RFC 8030 limits the `Topic` header to 32 characters from the URL and filename-safe Base64 alphabet, it's _recommended_ to use a hash of the push topic that meets these requirements as the header value.
471+
The push topic SHOULD be used to generate the `Topic` header. Since RFC 8030 limits the `Topic` header to 32 characters from the URL and filename-safe Base64 alphabet, it's _recommended_ to use a hash of the push topic that meets these requirements as the header value.
468472

469473
The exact algorithm to derive the `Topic` header from the push topic can be chosen by the server.
470474

webdav-push.mkd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ author:
2121
2222

2323
normative:
24-
RFC2119:
2524
RFC4918:
2625

2726

0 commit comments

Comments
 (0)