« Important Changes in OpenID Connect | Main | Crazy Idea of the Day: Relative CSS Time Units »

02/27/2012

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

Julien51

I'm not 100% sure I see the difference between POST and PUT here. Would you be able to explicit it?

And I definetely agree with your final statement. Supporting arbitrary content WILL break compatibility, yet, we need it... so we have to accept that we're going to leave some implementations on the side of this amazing road.

Martin Atkins


Julien,

The difference is really just that PUT has better-defined semantics and therefore generic server software like Apache HTTP can handle it out of the box for simple cases rather than needing to run some custom application code to handle the notification. Of course, in many cases you will want a custom application to do something deeper with the new data, but I like the idea of applying this to simple cases like, for example, copying an image onto another server and updating it when the source changes.

Since HTTP basically defines POST as "some action but we don't know what it is" you always need specialized software to handle it, and the PubSubHubbub spec needs more prose on how to process the notification rather than just referring to what's been established by HTTP.

But really my proposal was not about using PUT specifically but rather applying the full set of HTTP resource manipulation verbs (DELETE and PATCH too) to this problem rather than wrapping the result in a "notification envelope" as we do for Atom and then having to re-invent mechanisms to communicate the difference between "this is a full resource", "this is a delta" and "this is a notification that the resource no longer exists".

Julien51

Ho, I see this is mostly a semantic difference. I do actually like the idea of PATCH and DELETE very much. I understand PUT would be nice, but I wonder if it wouldn't be actually quite confusing, for a very small benefit (who uses Apache for their PubSubHubbub listener?).

We should debate about this on the group!

Martin Atkins

I'm curious to hear why you find PUT confusing, since I personally find it much more intuitive, but maybe that's because I've remolded my brain sufficiently. :)

Using Apache is of course just an example. Working closer to HTTP's core concepts means firstly that more of the required software stack is already out there and secondly that the PubSubHubbub spec can be simpler since it can just refer to HTTP's existing definitions of these concepts.

And as for "who uses Apache for their PubSubHubbub listener?", right now that's probably close to zero but I wonder if that's just because it hasn't been easy until now. It's unlikely that someone would use a feed-like resource in this way, since they'll want some application code to extract the items out of the feed rather than to just store the feed verbatim, but for something more atomic like an image or a Word document it's more likely that I'd just want to copy the data byte-for-byte onto my own server, and most HTTP servers can already do this.

And sure, we can debate this in the group, but the debate there tends to get pretty heated so I think I'll wait until later, when I'm less busy, to start a thread. :)

The comments to this entry are closed.