Is this ordering against the spec? As near as I can tell, the spec
only requires that the associated stream be "open", and a stream is
"open" from the moment the SYN_STREAM is sent by the client, even if
the SYN_REPLY hasn't yet arrived.
This ordering quirk is totally fixable in mod_spdy (I haven't done so
yet, so it may even be that that's not the real reason that Chrome is
upset with the pushed stream), but I'm wondering if the spec could be
clarified on this point. Is the pushed SYN_STREAM permitted to come
before the associated SYN_REPLY, or must it come after?
Cheers,
-Matthew
I've filed http://code.google.com/p/chromium/issues/detail?id=114057. I think it might be worth adding a note to 3.2.1 of the spec. Currently is says:To minimize race conditions with the client, the SYN_STREAM for the pushed resources MUST be sent prior to sending any content which could allow the client to discover the pushed resource and request it.I might add a sentence saying something like:
the SYN_STREAM for the pushed resources MAY be sent prior to sending the SYN_REPLY for the associated stream.
BTW, I'me unable to view the SPDY spec in chrome or safari today. Did something change recently? When I view it in firefox, I see warnings about target names not existing:WARNING: The following target names do not exist: RFC2616, RFC0793, RFC6454, RFC1950, RFC2616, RFC6454, RFC1738, RFC1738, RFC2617, RFC4559, RFC6454, RFC6454, RFC2119