<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Information networks</title>
	<atom:link href="http://roy.gbiv.com/untangled/2008/information-networks/feed" rel="self" type="application/rss+xml" />
	<link>http://roy.gbiv.com/untangled/2008/information-networks</link>
	<description>musings of Roy T. Fielding</description>
	<lastBuildDate>Fri, 28 May 2010 17:39:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: JamesB7</title>
		<link>http://roy.gbiv.com/untangled/2008/information-networks#comment-545</link>
		<dc:creator>JamesB7</dc:creator>
		<pubDate>Fri, 23 May 2008 17:39:02 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/2008/information-networks#comment-545</guid>
		<description>Hey, I saw your talk about &#039;Waka&#039;. It seems to me that shortening things like &#039;Content-Encoding&#039; -&gt; &#039;CE&#039; doesn&#039;t really solve the problem, as new properties could just as easily come in, and if the names are short and two people introduce their own fields one could get accidental namespace collisions.  Instead I would suggest keeping long names, but using a dictionary approach of sorts to make things shorter...

Why not just choose some very-low-maximum-growth header compression algorithm, combined with a default dictionary (containing the usual field names), and otherwise just keep HTTP. You could call it Header-Compression-Support: blah, and have the first request GET per connection of the server reply with something similar if it is supported, with further requests actually going the compressed route. Due to their repetitive nature the headers would likely compress very, very well as long as the compression dictionary is kept separate from that of the data being sent.

To deal with async issues, Header-Compression-Support could specify that it is supported while Header-Compression-Next could specify that from then on, that compression type would be used.

1) Client sends support header
2) Sender replies with normal packet and &#039;header compression next&#039;, meaning all its further sends will be using the specified form of compression
3) Client keeps sending normally (perhaps including the support header, but it&#039;s redundant after the first, so maybe not) until it receives the server&#039;s &#039;header compression next&#039;
4) Client then, knowing the server supports it, sends its own &#039;header compression next&#039;

So, being async, the server will have one request with its header classic HTTP, and the client will have two, or maybe three or four due to latency before it gets activated.

A big benefit of this over what I saw on your slides is that the field *values* will, over a couple requests eventually disappear from the data stream as well, as that information is repetitive too. It&#039;s a not-too-complex solution that would massively reduce bandwidth use.</description>
		<content:encoded><![CDATA[<p>Hey, I saw your talk about &#8216;Waka&#8217;. It seems to me that shortening things like &#8216;Content-Encoding&#8217; -&gt; &#8216;CE&#8217; doesn&#8217;t really solve the problem, as new properties could just as easily come in, and if the names are short and two people introduce their own fields one could get accidental namespace collisions.  Instead I would suggest keeping long names, but using a dictionary approach of sorts to make things shorter&#8230;</p>
<p>Why not just choose some very-low-maximum-growth header compression algorithm, combined with a default dictionary (containing the usual field names), and otherwise just keep HTTP. You could call it Header-Compression-Support: blah, and have the first request GET per connection of the server reply with something similar if it is supported, with further requests actually going the compressed route. Due to their repetitive nature the headers would likely compress very, very well as long as the compression dictionary is kept separate from that of the data being sent.</p>
<p>To deal with async issues, Header-Compression-Support could specify that it is supported while Header-Compression-Next could specify that from then on, that compression type would be used.</p>
<p>1) Client sends support header<br />
2) Sender replies with normal packet and &#8216;header compression next&#8217;, meaning all its further sends will be using the specified form of compression<br />
3) Client keeps sending normally (perhaps including the support header, but it&#8217;s redundant after the first, so maybe not) until it receives the server&#8217;s &#8216;header compression next&#8217;<br />
4) Client then, knowing the server supports it, sends its own &#8216;header compression next&#8217;</p>
<p>So, being async, the server will have one request with its header classic HTTP, and the client will have two, or maybe three or four due to latency before it gets activated.</p>
<p>A big benefit of this over what I saw on your slides is that the field *values* will, over a couple requests eventually disappear from the data stream as well, as that information is repetitive too. It&#8217;s a not-too-complex solution that would massively reduce bandwidth use.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.338 seconds -->
