Skip to content

Commit c45d1f6

Browse files
committed
References
1 parent 8988a2c commit c45d1f6

File tree

3 files changed

+16
-11
lines changed

3 files changed

+16
-11
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.idea/
22
.obsidian/
33
.refcache/
4+
build/

build.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh
2+
mkdir -p build
3+
kramdown-rfc2629 webdav-push.mkd >build/webdav-push.xml && (cd build; xml2rfc --html webdav-push.xml && xml2rfc --text webdav-push.xml && xdg-open webdav-push.html)
4+

content.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ Typical use cases:
2525

2626
<!-- <artwork type="svg" src="images/architecture.svg"/> -->
2727

28+
> **TODO:** figure
29+
2830

2931
## Terminology
3032

@@ -55,7 +57,7 @@ Push service
5557
: Character sequence that identifies a WebDAV collection for push purposes (unique per WebDAV server). A specific collection could be reachable at different URLs, but it can only have one push topic.
5658

5759
(Push) transport
58-
: Protocol that defines an actual push mechanism. In this document, Web Push is the only defined push transport. However, WebDAV-Push may also be used with other push transports like proprietary or yet unknown protocols. In that case, it has to be specified how to use that protocol with WebDAV-Push (like it's done for Web Push in Appendix A). A push transport implementation may or may not involve a push service.
60+
: Protocol that defines an actual push mechanism. In this document, Web Push is the only defined push transport. However, WebDAV-Push may also be used with other push transports like proprietary or yet unknown protocols. In that case, it has to be specified how to use that protocol with WebDAV-Push (like it's done for Web Push in {{transport-web-push}}). A push transport implementation may or may not involve a push service.
5961

6062
Rewrite proxy
6163
: Push services sometimes require authentication from their users and consider their user to be an application vendor who has control over both the server and the client. For instance, a push service could be used by the vendor of a weather app who controls both the servers that deliver weather data and the clients, which are mobile apps that show the weather data. Both servers and clients can authenticate against the push service with the same private key.
@@ -105,24 +107,22 @@ The server must be prepared to handle errors. For instance, if a push transport
105107
A WebDAV client that implements WebDAV-Push typically
106108

107109
- detects whether the server supports WebDAV-Push and which push transports,
108-
- connects to a service (which is usually not operated by the WebDAV server provider),
109-
- subscribes to one or more collections on the server (and thus provides information about its push service),
110+
- connects to a push service (which is usually not operated by the same party as the WebDAV server),
111+
- subscribes to one or more collections on the server (providing push service-specific details),
110112
- receives push notifications that cause some client-side action (like to refresh the view or run synchronization),
111113
- re-subscribes to collections before the subscriptions expire,
112114
- unsubscribes from collections when notifications are not needed anymore.
113115

114116

115117
## Push transports
116118

117-
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
118-
WebDAV-Push.
119+
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 WebDAV-Push.
119120

120-
WebDAV-Push implementations SHOULD implement at least the Web Push transport (see Appendix A).
121+
WebDAV-Push implementations SHOULD implement at least the Web Push transport (defined in {{transport-web-push}}).
121122

122-
For proprietary push services, client vendors may need to provide a _rewrite proxy_ that signs and forwards the requests to the respective proprietary service.
123+
For proprietary push services, client vendors may need to provide a rewrite proxy that signs and forwards the requests to the respective proprietary service.
123124

124-
Push transport definitions can define extra properties and additional processing rules. For instance, a transport definition could define that WebDAV servers should send an additional
125-
`Topic` header with their push notifications so that previous undelivered push messages are replaced by new ones.
125+
Push transport definitions can define extra properties and additional processing rules.
126126

127127

128128

@@ -170,7 +170,7 @@ HTTP/1.1 207 Multi-Status
170170

171171
In this case, the requested collection supports WebDAV-Push in general (because it has a push topic). Two push transports can be used:
172172

173-
1. Web Push (RFC 8030), without additional specific information
173+
1. Web Push (see {{transport-web-push}}), without additional specific information
174174
2. Some other transport, with some additional specific information that is required to use it. This is to illustrate that it WebDAV-Push supports other or future push transports, too.
175175

176176

@@ -424,7 +424,7 @@ What happens when some component is hacked
424424

425425

426426

427-
# Appendix A: Web Push Transport
427+
# Web Push transport {#transport-web-push}
428428

429429
WebDAV-Push can be used with Web Push {{RFC8030}} to deliver WebDAV-Push notifications directly to compliant user agents, like Web browsers which come with their own push service infrastructure. Currently (2024), all major browsers support Web Push.
430430

0 commit comments

Comments
 (0)