Am 08.10.2014 18:33, schrieb XMPP Extensions Editor:
This message constitutes notice of a Last Call for comments on XEP-0332 (HTTP 
over XMPP transport).

Abstract: This specification defines how XMPP can be used to transport HTTP 
communication over peer-to-peer networks.

URL: http://xmpp.org/extensions/xep-0332.html

This Last Call begins today and shall end at the close of business on 
2014-10-21.

Please consider the following questions during this Last Call and send your 
feedback to the [email protected] discussion list:

1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
clarify an existing protocol?

I'm not sure. Tunneling http semantics over an xmpp connection seems like a useful thing sometimes, but I think the approach described here is a very complicated way of doing this.

2. Does the specification solve the problem stated in the introduction and 
requirements?

I had a very hard time to understand the problem and requirements.

3. Do you plan to implement this specification in your code? If not, why not?

no. Reviewing just so I can make a decision in the council meeting.

4. Do you have any security concerns related to this specification?
5. Is the specification accurate and clearly written?

I don't think so.

Your feedback is appreciated!


section 1:
> The XMPP protocol however does not have the same problems as HTTP in
> these regards. It's a peer-to-peer protocol naturally allowing
> communication with applications and devices behind firewalls

Well no. I prefer the text from https://tools.ietf.org/html/rfc6120#section-2.5 about being logically p2p here.

> through established friendship relationships.

We don't call being on someone else's roster and having a presence subscription "friendship" in XMPP.

section 2:
I fail to see where the requirement for the server to have a web server is used.

section 3:
RFC 2616 has been obsoleted by RFC 7230 et al in the meantime. Using some of the terminology from http://tools.ietf.org/html/rfc7230#section-2.3 might make things clearer.

section 4:
editorial: can the amount of bold face reduced please?
style: I prefer text along the lines of
        the requesting entity MUST send an IQ stanza of type "get",
        containing an empty <query/> element qualified by the
        'http://jabber.org/protocol/disco#info' namespace, to the JID
        of the target entity
(from xep-0030)

> Xml content embedded in the XML telegram

XML stanza? Used several times.
ed: avoiding different ways of capitalizing XML helps the reader.

> Motion JPeg

ed: Motion JPEG seems to be the most common capitalization.

> On constrained devices with limited support for different XEP's, this
> can be a way to avoid the use of technologies not supported by the
> client.

I still don't think that including a flag in every request is the right way to convey client capabilities.

> The client can disable the use of ingle

ed: s/ingle/Jingle/

section 4.1.2:
> Note: The XMPP/HTTP bridge at the server

Well, it's not at the server, it is located at [email protected]
"XMPP/HTTP bridge" should be explained in the glossary. I think the terminology from RFc 7230 might be helpful here.

(general remark: I think using company names in those examples will limit adoption)

in 4.2.7:
> The first candidate should however correspond to the same stream that
> would have been returned if the request had been made using normal
> HTTP over TCP.

I've said that before: this is not how jingle or ice works.

section 4.3.1.1
RFC 2616 has been obsoleted by 7230. While 2818 is just updated, I think it's better to reference 7230. Note that the definitions seem to have changed, see http://tools.ietf.org/html/rfc7230#section-2.7.1 and 2.7.2

example 18:
   httpx_URL = "httpx:" "//" resourceless_jid [ abs_path [ "?" query ]]

We call this a "bare jid" usually.

In general, relying on the terminology of http://tools.ietf.org/html/rfc7230#section-2.3 I do not see why a new uri scheme is needed instead of considering this a "tunnel" intermediary (which I do not think the approach outlined in the XEP does). Further, it is not clear to me how the requests for this look like. Is the "xmpp/http bridge" preconfigured like a proxy?


I suspect that httpx://user@host has some undesired consequences since this consitutes an authority component (because of the //) and hence the part before the @ is to be interpreted as userinfo instead of being part of the JID.

In 4.3.1.2
> Friendship requests

See above.

> If not in the roster, the browser needs to send a friendship request

Why? This whole section seems to presume XMPP-based communication between the browser and the httpx server. Whereas section 4.1 was talking about bridging.

There are privacy concerns related to exchanging presence with sites "browsed" by the user.


Section 4.3.1.3 strongly reminds me of the use-cases Dirk Meyer had been doing. It's not clear to me how this relates to the stuff in 4.1

> If the following design rules are followed

I don't think so. How does the client route the <iq/> stanzas to the server if it can not specify the full resource in the URI? I'd note that disco/caps might help here, presuming there is a presence subscription. Describing this is probably the most important part of doing httpx and it is missing.

Section 6.1:
> However, in the HTTP over XMPP case, there are no connections between
> the client and the server. Both clients and servers have active
> connections to the XMPP Server

This would have been a very good thing to say in the very beginning. So this specification is not about bridging http and xmpp. Or is it?

> The HTTP over XMPP tunnel is just a tunnel of HTTP over XMPP

I don't think that what is described here can act as a "blind relay", see the many notes about the body.

> returning the sime kind of response

ed: s/sime/same/

> the headers are consumed by web servers and web clients

those web servers and web clients both having an xmpp connection? A picture of the architecture in the introduction would be somewhat helpful.

in 6.4:
> bandwidth resitrctions
s/resitrctions/restrictions/

section 7:
> HTTP clients or HTTP servers handle rosters internally

HTTP clients and servers dont have a concept of rosters. There is a distinction between the xmpp and http responsiblities of the entities involved here, but it's not clear from the text.


7.1:
>  friendship request

presence subscription request


> It is assumed that by entering the URL, or using the URL of an
> application already displayed, this implies giving permission to add
> that JID as a friend to the roster of the browser.

That assumption is a very bold one. By browsing a website I never expect to give it PERMANENT access to my presence.


What are the implications of communicating with entities not in the roster? This seems like an attempt to workaround servers that do not allow the exchange of iq stanzas without a presence subscription.


7.2:
This section describes access control on the "http" server. Those access controls are based on the xmpp jid of the requestor. I suppose that the http rfcs describe similar access control mechanism in some kind of framework already?

> To avoid bloating the roster, friendship requests could be
> automatically unsubscribed once the HTTP session has ended.

We have something called exchange of directed presence in xmpp. To me this suggests that using presence subscriptions here is wrong.


section 8:
If the XSF is supposed to do the registration, then I suppose the registrar will be the contact and change control is by the council.

It also seems that the IANA knows a httpx already:
http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?&page=80
It's not a registered uri scheme -- http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml -- not sure if they would allow this.

Reply via email to