Slashdot Mirror


HTTP 2.0 Will Be a Binary Protocol

earlzdotnet writes "A working copy of the HTTP 2.0 spec has been released. Unlike previous versions of the HTTP protocol, this version will be a binary format, for better or worse. However, this protocol is also completely optional: 'This document is an alternative to, but does not obsolete the HTTP/1.1 message format or protocol. HTTP's existing semantics remain unchanged.'"

566 comments

  1. Makes sense by thetagger · · Score: 3, Interesting

    HTTP is the world's most popular protocol and it's bloated and slow to parse.

    1. Re:Makes sense by cheesybagel · · Score: 5, Insightful

      It might be bloated and slow. But it is also easily extendable and human readable.

    2. Re:Makes sense by Anonymous Coward · · Score: 0

      And easy to debug thanks to telnetting to port 80 (or whatever).

    3. Re:Makes sense by UltraZelda64 · · Score: 1, Insightful

      Most popular protocol? What ever happened to TCP?

    4. Re:Makes sense by bluefoxlucid · · Score: 1

      This binary protocol will be scrapped for JSON.

    5. Re:Makes sense by asmkm22 · · Score: 1

      I think it can be argued that most popular doesn't always mean most implemented.

    6. Re:Makes sense by aliquis · · Score: 1

      Most popular protocol? What ever happened to TCP?

      What happened to IP?

      See what I did there?

    7. Re:Makes sense by Lisias · · Score: 1, Insightful

      It might be bloated and slow. But it is also easily extendable and human readable.

      What's could be good if HUMANS were intended to read it.

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    8. Re:Makes sense by Anonymous Coward · · Score: 4, Funny

      Wrong! .Its UDP. I sent a note to asking him to confirm this fact, but he never replied.

    9. Re:Makes sense by WaffleMonster · · Score: 5, Funny

      Most popular protocol? What ever happened to TCP?

      From looks of the draft it has been reimplemented within HTTP.

    10. Re:Makes sense by lgw · · Score: 0

      Binary formats are just as easy to make extendable. Whether a format is extendable or not has very little to do with the encoding scheme chosen for things like numbers.

      Human readable is a bug, not a feature. Bandwidth is an important expense, and "human readable" means you pay 2x or more for bandwidth, for no real gain.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    11. Re:Makes sense by Anonymous Coward · · Score: 0

      I think it can be argued that most popular doesn't always mean most implemented.

      99.99999999999999999999999999999999% of http connections are over tcp...

    12. Re:Makes sense by Lisias · · Score: 1

      Easily fixable by writing a HTTP binary client TELNET style.

      This kind of complain remembers me a time when my mails would be rejected on a mailing list if not hard formatted using 76 columns. The list owner liked using a old unix MUA (just for the sake of it) that didn't know how to do line wrap.

      He could, of course, use MUTT - but by some reason he wanna use that crappy old MUA.

      HTTP and SMTP should be binary decades ago.

      I already were using binary mail transfer protocol on my BBS days.

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    13. Re:Makes sense by Progman3K · · Score: 5, Insightful

      It might be bloated and slow. But it is also easily extendable and human readable.

      What's could be good if HUMANS were intended to read it.

      Yeah, it's a good thing no humans work as programmers or ever debug this thing

      --
      I don't know the meaning of the word 'don't' - J
    14. Re:Makes sense by Anonymous Coward · · Score: 1

      You got it backwards. TCP is a layer 4 protocol, IP is a layer 3 protocol. Lots of packets are send over UDP and not TCP, but they still use IP underneath.

    15. Re:Makes sense by steelfood · · Score: 2

      You can also make binary blobs human readable. Just have an official spec on how to translate binary into English.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    16. Re:Makes sense by Anonymous Coward · · Score: 0

      Do you guys even OSI?

    17. Re:Makes sense by Progman3K · · Score: 4, Informative

      Yes, but considering TCP is a core part of IP... what you did kind of falls flat.

      Nope, that's like saying hamburgers are a core part of cows.

      You make hambugers out of cows, you don't make cows out of hamburgers.

      You make TCP out of IP, you don't make IP out of TCP.

      --
      I don't know the meaning of the word 'don't' - J
    18. Re:Makes sense by gmuslera · · Score: 1

      Considering that most of http should go now to port 443 (and with perfect forward secrecy, to make it harder), and that is a bit more complex to debug it by telnet, it could not be a great loss.

      Anyway, will miss the good times when telnetting to port 80, 25, 110 and so on were common debugging tool.

    19. Re:Makes sense by tepples · · Score: 1

      Easily fixable by writing a HTTP binary client TELNET style.

      Then the problem comes when you're the first person to write such a client for a given platform, and you're trying to assure this client's correctness.

    20. Re:Makes sense by Anonymous Coward · · Score: 5, Insightful

      The amount of text that comes with HTTP is pretty inconsequential compared to the payload it's carrying.

    21. Re:Makes sense by Anonymous Coward · · Score: 0

      Considering TCP (layer 4) is a completely separate protocol from IP (layer 3), you are a complete moron. aliquis is correct.

    22. Re:Makes sense by Trepidity · · Score: 3, Interesting

      Not particularly bloated or slow to parse, especially on modern hardware. HTTP/2.0, which is basically a minorly tweaked version of Google SPDY, doesn't even claim speedups more than about 10%.

    23. Re:Makes sense by plover · · Score: 4, Funny

      Knock-knock.
      Who's there?
      UDP packet.
      UDP packet who?

      --
      John
    24. Re:Makes sense by h4rr4r · · Score: 5, Insightful

      Says someone who never has to debug a damn thing.

    25. Re:Makes sense by PhrostyMcByte · · Score: 4, Informative

      It might be bloated and slow. But it is also easily extendable and human readable.

      Human readable yes, extendable no. Well, it's not extendable in any meaningful way. Even though it looks like it on a quick look, if you read the spec you quickly realize there really is no generic structure to a message -- you cannot parse an HTTP request if you do not fully understand it. Even custom headers like the commonly used X-Foo-Whatever are impossible to parse or even simply ignore, so implementations just use an unspecified de-facto parsing and pray to the web gods that it works.

      This makes HTTP parsers very complicated to write correctly and even moreso if you want to build a library for others to extend HTTP with. This isn't a text VS binary issue, but simply a design flaw. Hopefully HTTP 2.0 fixes this.

      As they say, HTTP 1.1 isn't going anywhere -- this'll be a dual-stack web with 2.0 being used by new browsers and 1.1 still available for old browsers/people.

    26. Re:Makes sense by SuricouRaven · · Score: 2, Informative

      *silence*

    27. Re:Makes sense by UltraZelda64 · · Score: 0

      Maybe I should have clarified that I was talking about the Internet Protocol SUITE.

    28. Re:Makes sense by nschubach · · Score: 0

      X headers are for browser specific and/or programs written to understand them. If you didn't create it or use it for any real purpose, why are you trying to parse it? Just skip to the end of the line and pick up the next header that you know how to deal with.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    29. Re:Makes sense by dgatwood · · Score: 5, Interesting

      I frequently get fairly close to the raw protocol, using curl, and have even been known to manually make HTTP requests in a telnet session on occasion. That said, I'm assuming a future version of curl would simply translate the headers and stuff into the historical format for human readability, making this sort of change fairly unimportant in the grand scheme of things.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    30. Re:Makes sense by ArcadeMan · · Score: 4, Funny

      As they say, HTTP 1.1 isn't going anywhere -- this'll be a dual-stack web with 2.0 being used by new browsers and 1.1 still available for old browsers/people.

      In Korea, HTTP 1.1 is for old people.

    31. Re:Makes sense by tandr · · Score: 1

      Folks, I don't know if you looked at the draft, but I think he was serious - take a look at section "5.1. Stream States"

    32. Re:Makes sense by CadentOrange · · Score: 3, Insightful

      +1 If I had mod points. I've found the readability of HTTP crucial on numerous occasions.

    33. Re:Makes sense by Alomex · · Score: 2

      Human readable is a bug, not a feature.

      [Citation needed]

      for no real gain.

      Right, because making it easier to debug is not a real gain, but an imaginary one, and also bandwidth being so expensive one can barely afford the extra 1K of headers from HTML. I mean nowadays sending that can take as long as 1 millisecond over a slow connection. Who has that kind of time?

    34. Re:Makes sense by dgatwood · · Score: 1

      This makes HTTP parsers very complicated to write correctly and even moreso if you want to build a library for others to extend HTTP with.

      I knew Jack Moréso, and HTTP, sir, is no Jack Moréso.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    35. Re:Makes sense by sl4shd0rk · · Score: 1

      it's bloated and slow to parse.

      It was much less bloated before Javascript and CSS started throwing up in every corner of every webpage everywhere. A binary protocol isn't going to make up for bloat caused by "Mash all the things!" developer mentality.

      --
      Join the Slashcott! Feb 10 thru Feb 17!
    36. Re:Makes sense by x0ra · · Score: 1

      You make TCP out of IP, you don't make IP out of TCP.

      Actually, TCP and IP are totally independent protocol.

    37. Re:Makes sense by Anonymous Coward · · Score: 0

      Now, the porterhouse steak, on the other hand, is a core part of the cow. Thing comes from right in the middle.

    38. Re:Makes sense by dgatwood · · Score: 5, Funny

      And then there's the joke one of my coworkers wrote on his whiteboard: "I know a joke about UDP, but you might not get it."

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    39. Re:Makes sense by denbesten · · Score: 5, Insightful

      Human readable is a bug...

      Says someone who never has to debug a damn thing.

      Amen, Ditto, etc.
      If only there were some way to both make it "human readable" and to somehow reduce the bandwidth.

    40. Re:Makes sense by Em+Adespoton · · Score: 3, Funny

      Knock-knock.
      Who's there?
      UDP packet.
      UDP packet who?

      Knock-knock.
      UDP Packet
      Who's There? ....

    41. Re:Makes sense by omnichad · · Score: 4, Interesting

      Except cookies. And even worse - ViewState variables posted on badly coded .NET applications. Some of those are near the hundred kilobyte range.

    42. Re:Makes sense by Joce640k · · Score: 2, Informative

      Ditto.

      The HTTP header is miniscule compared to the HTML/images on the web page. Making it binary is a Stupid Fucking Idea.

      --
      No sig today...
    43. Re:Makes sense by Anonymous Coward · · Score: 0

      I use the proper tools to debug "a thing." Human-readability is irrelevant.

    44. Re:Makes sense by Joce640k · · Score: 1

      HTTP is the world's most popular protocol and it's bloated and slow to parse.

      Do you even know what HTTP is?

      Maybe you're thinking of HTML or something.

      --
      No sig today...
    45. Re:Makes sense by PhrostyMcByte · · Score: 0, Redundant

      That's my point -- you can't simply skip to the next line. Where a HTTP header's value ends and the next header begins is dependent on the header. They can even span multiple lines. Custom headers are impossible to parse correctly, so implementations usually just assume they'll be on a single line, or maybe quoted like some of the standard headers allow.

    46. Re:Makes sense by Shark · · Score: 1

      Wait, is the Knock-knock ARP?

      --
      Mind the frickin' laser...
    47. Re:Makes sense by Joce640k · · Score: 3

      It was much less bloated before Javascript and CSS started throwing up in every corner of every webpage everywhere.

      That's HTML, not HTTP.

      --
      No sig today...
    48. Re:Makes sense by phantomfive · · Score: 2

      HTTP is the world's most popular protocol and it's bloated and slow to parse.

      HTTP is a simple protocol, simple enough to write a parser in an afternoon. You're probably confusing it with HTML, which is a different subject altogether.

      --
      "First they came for the slanderers and i said nothing."
    49. Re:Makes sense by EvanED · · Score: 1

      I know. That's why I prefer machines that run assembly text directly, instead of that dreaded machine code that I have to use a disassembler to understand.

    50. Re:Makes sense by omnichad · · Score: 1

      Really, the problem is small images. Not having to make multiple connections for < 1KB images is a big part of where this makes a difference. CSS vomit actually helps, by implementing things like CSS sprites made out of a single larger image, but it's nicer to be more module and stay with multiple < 1KB images.

    51. Re:Makes sense by Anonymous Coward · · Score: 0

      Oh, great... Another set of tools, which cost a fortune and are riddled with bugs themselves. No thanks.

    52. Re:Makes sense by aliquis · · Score: 1

      But as is we use TCP over IP and obviously the OP thought about protocols way up there.

    53. Re:Makes sense by Bengie · · Score: 1, Insightful

      Compression leaks information, so it can't be safely used with encrypted connections.

    54. Re:Makes sense by Anonymous Coward · · Score: 0

      Considering that most of http should go now to port 443 (and with perfect forward secrecy, to make it harder), and that is a bit more complex to debug it by telnet, it could not be a great loss.

      openssl s_client -connect :443

      and it works exactly like telnet. So if by "harder to debug" you mean having to add "s_client", "-connect", and ":443" to the command line.

    55. Re:Makes sense by oobayly · · Score: 1

      I wouldn't say I regularly make manual HTTP requests (along with SMTP & POP3), for me it's often a quick method to diagnose a network issue, but I do it often enough that it annoys me when I find telnet missing on a new Windows machine.

      Similarly, it's often useful when testing an SSL connection using openssl -connect. I had a secure websocket server that was timing out on me, until I realised that it required a user-agent header, and even though I was sending \r\n\r\n it would sit there waiting for it.

      I'm not sure I'm looking forward to requiring Wireshark to decode the binary protocol, but it should reduce overheads and parsing bugs, so I'd go with it being a good thing.

    56. Re:Makes sense by I3OI3 · · Score: 1

      Some people think it's a good trade-off, which is why it's included in HTTPS.

    57. Re:Makes sense by Bengie · · Score: 1

      SPDY is on UDP and is used by Google, Twitter, FireFox, Opera, and a few others. Nothing mainstream that I know of, but still out there.

    58. Re:Makes sense by Anonymous Coward · · Score: 0

      Durr stupid slashdot

      openssl s_client -connect [host]:443

    59. Re:Makes sense by i+kan+reed · · Score: 1

      Why not just say 100%, as I'm pretty sure there haven't been 1 dodecillian HTTP connections since 1970? Trim 5-7 nines off that and I'd be more inclined to believe you(maybe).

    60. Re:Makes sense by Score+Whore · · Score: 3, Informative

      What?

      First, compression is semantically identical to the uncompressed data. Anything "leaked" by compression would be "leaked" by the uncompressed data.

      Second, compression removes entropy making it more difficult to predict the cleartext. Which is why it's common to compress data before encryption (assuming your application is amenable, full disk encryption would be a case where compression would be awkward.)

    61. Re:Makes sense by Anonymous Coward · · Score: 0

      Actually I make cows out of hamburgers just for the pleasure of killing them twice

    62. Re:Makes sense by Bengie · · Score: 1

      You can even use TCP over shared files or IPC!

    63. Re:Makes sense by gl4ss · · Score: 1

      Folks, I don't know if you looked at the draft, but I think he was serious - take a look at section "5.1. Stream States"

      we know, that's why it's funny!

      --
      world was created 5 seconds before this post as it is.
    64. Re:Makes sense by jeremyp · · Score: 3, Informative

      The mechanism for spanning multiple lines is starting continuation lines with white space. If you read a line feed afollowed by a non white space character, you know the current header is over and the next one is starting.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    65. Re:Makes sense by Anonymous Coward · · Score: 0

      Don't be silly. I grew up when all APIs were binary. XML and the web's insistence on using text was a big step backwards in speed for something that really doesn't make life any better. Sure, it sounds better on the surface to be human readable, but real world, if you're not using a tool to read it anyways, you're doing it wrong anyways...

    66. Re:Makes sense by Anonymous Coward · · Score: 1

      Which is why you have things like wireshark protocol dissectors. The mapping from binary data to human readable is easy enough .

    67. Re:Makes sense by rcw-home · · Score: 0

      Near? I've seen multi-megabyte.

    68. Re:Makes sense by jfengel · · Score: 1

      But it does suggest that this is like putting racing wheels on your skateboard when you weigh 400 pounds.

    69. Re:Makes sense by jeremyp · · Score: 1

      Yes you're right. The problem is totally insurmountable. Nobody has ever written a debugging tool to render a binary protocol in human readable format ever.... ... oh wait, that's completely false.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    70. Re:Makes sense by Bill,+Shooter+of+Bul · · Score: 1

      So are ground meat and cows. I eat lamb burgers and TCP over PIM-DM you insensitive clods!

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    71. Re:Makes sense by aliquis · · Score: 1

      It doesn't.

      But whatever.

      IRC is the most important protocol.

    72. Re:Makes sense by Anonymous Coward · · Score: 2, Insightful

      What makes you think that any of that would be changed by switching to a binary protocol for the headers? Everything you mentioned is payload, effectively. It's bad web design, not bad protocol design, to ping-pong big blobs of data.

    73. Re:Makes sense by swalve · · Score: 4, Insightful

      I agree that it's a stupid idea, but there is almost nothing about text that makes it special. It's just a particular data encoding scheme. If the HTTP/2.0 standard is actually a standard, then it will be pretty easy to make an app or a plugin that translates it.

      Unfortunately, the days of computing being simple are over.

    74. Re:Makes sense by rsborg · · Score: 2, Insightful

      I frequently get fairly close to the raw protocol, using curl, and have even been known to manually make HTTP requests in a telnet session on occasion. That said, I'm assuming a future version of curl would simply translate the headers and stuff into the historical format for human readability, making this sort of change fairly unimportant in the grand scheme of things.

      What happens when a) curl(v. next)'s HTTP2 binary parser is broken b) binary request or response is corrupted c) binary response from server is not corrupted, but non-standard?

      In all of these cases, a quick examination of an HTTP1.x transmission usually leads to a rapid determination of the cause of the error. In HTTP2, there could be significant time/effort wasted unless the investigating person/app happens to understand all the details and nuances of an unexpected syntax.

      Furthermore, how much more efficient would HTTP2 binary be over pipelined, gzip-9 content? If headers are that big of an overhad, why not just a standard compression on headers?

      --
      Make sure everyone's vote counts: Verified Voting
    75. Re:Makes sense by Anonymous Coward · · Score: 0

      Anything "leaked" by compression would be "leaked" by the uncompressed data.

      Not quite true. You can potentially acquire some information about the plaintext by the amount that it compresses; I guess if you knew the message had to be one of a small number of possibilities that all happened to be the same size, the compressed size could give it away. But that seems a highly theoretical attack.

    76. Re:Makes sense by swalve · · Score: 1

      What?

    77. Re:Makes sense by jeremyp · · Score: 1

      No it isn't. TCP is a protocol that is layered on top of IP. You can do useful stuff on an IP network without TCP (by, for example, using UDP instead).

      Looking at the TCP header definition on Wikipedia, it looks like, technically, you could do TCP without having IP underneath it - you could use some other protocol for delivery of TCP segments.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    78. Re:Makes sense by kh31d4r · · Score: 5, Funny

      If this will remove badly coded .net applications I'm all for it!

    79. Re:Makes sense by Anonymous Coward · · Score: 0

      Applying compression _can_ leak data.

      The example I've seen is in encrypted VoIP streams. If you turn on silence suppression (i.e. send small packets less frequently when there's no noise), this is clearly visible even after encryption. As an eavesdropper, I can see when each party on the call is speaking. Further, I can detect the pauses between words. There was a paper a few years back (http://link.springer.com/chapter/10.1007%2F978-3-642-18178-8_24#page-1, although you can't read all of it without paying for it) that did some pretty scary things with this.

    80. Re:Makes sense by Bengie · · Score: 2

      10% faster usually means about 10% less power for the part of the system that is now 10% faster. A large datacenter will save lots of money. Maybe not a large eprcentage of money, but probably more than 1 person's salary.

    81. Re: Makes sense by Kr3m3Puff · · Score: 3, Informative

      Yeah, let's hinder the 99.999% scenario for the benefit of the 0.001% one.

      --
      D.O.U.O.S.V.A.V.V.M.
    82. Re:Makes sense by omnichad · · Score: 0

      Well...it won't - but it could significantly improve the compression when that crap is done.

    83. Re:Makes sense by Darinbob · · Score: 3, Insightful

      Human readable is irrelevant. Humans do not read this, computers do. Maybe I'm old or something, but I remember when programmers know how to write programs to convert from binary to text, or even were able to read octal or hex directly, and so binary formats were no hindrance at all. Now though, even private internal saved state never seen by a human is done in XML for bizarre reasons.

      (Probably the programmer knows how to use the XML library and so when your only tool is a pneumatic jackhammer then every problem looks like a sidewalk.)

    84. Re: Makes sense by Anonymous Coward · · Score: 1

      Netcat baby!

    85. Re:Makes sense by gmuslera · · Score: 1

      That would be as using a "telnet like" client command for http 2.0, don't feel as the same as directly telnetting without nothing in the middle with their own potential problems/bugs/warnings/etc doing a translation (other than the stack tcp/ip, of course).

    86. Re:Makes sense by Anonymous Coward · · Score: 0

      Considering that there are chicken-burgers and "soy-burgers" (ugh), I actually think the metaphor is apropos.

      And if you're going to complain that "hamburgers" must be beef... I'm going to argue they should be "ham."

    87. Re:Makes sense by Alain+Williams · · Score: 1

      We could save even more bandwidth and speed up browsers by making HTML a binary format. Just think of all the lovely bugs in the difference between HTML 2 and HTML 2b :-(

    88. Re:Makes sense by Anonymous Coward · · Score: 0

      Indeed. It is the whole point of the protocol stack. It makes me wonder what percentage of slashdotters actually know how information technology really works outside of software development. Looking at the number of comments in highly technical, technology based articles versus yet another argument about politics or coding style, I'd wager the amount of people that peruse this site and know how that information got to their screen with any form of detail is less than 15%.

    89. Re:Makes sense by pspahn · · Score: 1

      Maybe I'm old or something, but I remember when programmers...

      You may also remember when people knew how to change their own flat tire. No so much anymore, hence the increasing reliance on tow-trucks and "courtesy patrols" on the highway.

      I'm a web developer. I like that I can use developer tools (which are already built into the browser) to debug headers in the rare cases that its necessary. If the debug tool developers want to convert from binary to text, that's fine with me, but I'd like to look at something human readable without having to worry about doing something outside of my job scope.

      --
      Someone flopped a steamer in the gene pool.
    90. Re:Makes sense by Anonymous Coward · · Score: 0

      Put a 1 ms delay in every packet going across your router.

      See how it feels.

    91. Re:Makes sense by Anonymous Coward · · Score: 1

      you what the best part of telling UDP jokes is?

      you don't have to care if anyone gets them.

    92. Re:Makes sense by lgw · · Score: 2

      Says someone who never has to debug a damn thing.

      I prefer to use tools for debugging. But if I'm stuck looking at raw binary, it's actually pretty easy to debug raw binary if the protocol was designed with that in mind. I spent 5 years debugging mainframe assembly programs and system dumps with no real tools - it just isn't that hard when the language or protocol was designed with that in mind!

      Human-debuggable does not require a text format.

      But even if it did: the purpose of a standard should be to be the most efficient for the end user, not for the developer. Developers can create tools as needed. End users are stuck with bloat.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    93. Re: Makes sense by multimediavt · · Score: 2, Insightful

      Yeah, let's hinder the 99.999% scenario for the benefit of the 0.001% one.

      ROFLMFAO...Have you LOOKED at society lately?

    94. Re:Makes sense by multimediavt · · Score: 1

      Except cookies. And even worse - ViewState variables posted on badly coded .NET applications. Some of those are near the hundred kilobyte range.

      Last time I checked, cookies were stored locally and not transmitted with every request. Now the ViewState .NET variables I'd have to look up because I didn't fall into that trap, but I would imagine that they are also locally stored so not so much the reason your HTTP requests being generally slow.

    95. Re:Makes sense by jedidiah · · Score: 1

      I can't imagine it making much difference really.

      Not that I would expect the overhead here to be a whole ms.

      I can get results from an RDBMS in a ms.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    96. Re:Makes sense by Anonymous Coward · · Score: 0

      If the parser is broken, the the request is non-standard/corrupted, then as far as the average programmer their tested http library is broken, and that's it, you don't dig into why, at least nothing more then iosolating the problem to one end of the connection (for example trying another browser to identify the problem).

      The only time it is an issue is when someone is writing an HTTP/2.0 implementation, doing that work those people are using wireshark, it's a pain in the ass, but after that they are done. 99% of the programs are going to use an external library to handle HTTP (like curl, or any of the common webbrowser toolkits), the places I can honestly see it having the biggest impact is things like php, the php people will need to write wrappers to support it, and do some translating with headers (I see a requirement that headers are lowercase, will that affect case sentivitive applications?). Ultimatly though, it doesn't matter, most applications will still work, and it will be handled by the libraries. Nobody really has a need for HTTP to be human readable, and it would save LOTS of time, especially on cell phones which have very slow connection initilization.

    97. Re: Makes sense by Kidbro · · Score: 4, Insightful

      These seat belts and air bags are pointless. How often do I crash anyway?

    98. Re:Makes sense by CadentOrange · · Score: 2

      You don't always have an app handy, but you'll almost certainly have a text editor of some sort.

    99. Re:Makes sense by Anonymous Coward · · Score: 0

      I'm a web developer. I like that I can use developer tools (which are already built into the browser) to debug headers in the rare cases that its necessary. If the debug tool developers want to convert from binary to text, that's fine with me, but I'd like to look at something human readable without having to worry about doing something outside of my job scope.

      Well tough shit, code monkey. You'll just have to wait for someone to make a Ruby Gem for you if you find such a trivial task as parsing binary data and formating output in a human readable form that fucking hard to do.

    100. Re:Makes sense by turgid · · Score: 4, Funny

      All programmers work for Microsoft and they are the guardians of the Secret Knowledge of the Diabolical Black Art of Making Computers do Stuff by Programming. They produce point-and-click tools for everyone to use their computers. If you are not part of The Sect you have no business engaging in the Diabolical Black Act and you will be hunted down and made to renounce any Secret Knowledge. You will be instructed in the use of the point-and-click tools and made to see that this is the True Path.

    101. Re:Makes sense by multimediavt · · Score: 1

      Yes, but considering TCP is a core part of IP... what you did kind of falls flat.

      Nope, that's like saying hamburgers are a core part of cows.

      You make hambugers out of cows, you don't make cows out of hamburgers.

      You make TCP out of IP, you don't make IP out of TCP.

      I think you might have that backwards. "TCP provides reliable, ordered, error-checked delivery of a stream of octets between programs running on computers connected to a local area network, intranet or the public Internet." That implies that TCP is the basis for networking between machines. "The Internet Protocol (IP) is the principal communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet." That seems to imply that IP then connects TCP networks together to form the Internet. In that case the cow is made of hamburgers.

    102. Re:Makes sense by Anonymous Coward · · Score: 5, Insightful

      What happens when a) curl(v. next)'s HTTP2 binary parser is broken b) binary request or response is corrupted c) binary response from server is not corrupted, but non-standard?

      You fix the fucking bug or use a protocol analyzer. Let's not make this protocol as shit as the old one just because one or two chucklefucks refuse to run tshark. Jesus christ.

    103. Re:Makes sense by Anonymous Coward · · Score: 0

      http supports gzip of the content and curl shows the content uncompressed (if that is what you want). Why should this be different?

    104. Re:Makes sense by multimediavt · · Score: 1

      It was much less bloated before Javascript and CSS started throwing up in every corner of every webpage everywhere.

      That's HTML, not HTTP.

      Actually, that's the payload not the protocol.

    105. Re:Makes sense by KingMotley · · Score: 3, Informative

      Everything about your post is wrong. Cookies are transmitted with each request. ASP.NET Webform's viewstate is transmitted to and from each page, if enabled. Although HTTP 2.0 doesn't solve either of these problems, and the text nature of most HTTP requests has very little to do with the speed of the protocol. Changing to a binary protocol will likely shave off TENS of bytes on each request. You won't notice, even with a timer accurate to the millisecond.

    106. Re:Makes sense by LordLimecat · · Score: 2

      You know what else is terrible? I hear that SQL stores its data in a binary (rather than ASCII) format too! And that humans have to work with them!

      One day Im sure that someone will come up with a way of approaching this problem.

    107. Re:Makes sense by Darinbob · · Score: 1

      So what happens is that people actually use tools to read XML, thus nothing is saved in the long run anyway.

    108. Re:Makes sense by Anonymous Coward · · Score: 5, Informative

      No, the parent is right, and this weakness has been demonstrated in recent HTTPS attacks like BEAST and CRIME.

      It works like this. You visit a site that has malicious JavaScript which sends a HTTPS request to some site (like your bank). This request will include whatever known plain-text that the JavaScript wants to send, *plus* any cookies you have stored for the target site, possibly including authentication cookies. If the plain text happens to match part of that authentication cookie, then the compressed headers will be smaller than if they if they don't match. If the attacker can monitor this encrypted traffic and see the sizes of the packets, then they can systematically select the known plaintext to slowly learn the value of the authentication cookie.

      This can be done today in about half an hour. And the attack setup is feasible - consider a public WiFi access point that requires you to keep a frame open in order to use their WiFi. This gives them both the MITM and JavaScript access needed to perform this attack.

      Sorry for posting as AC - slashdot logged me out and I have a meeting in 5 minutes.

    109. Re:Makes sense by Pieroxy · · Score: 1

      Well...it won't - but it could significantly improve the compression when that crap is done.

      I really don't see how storing this bloat in binary form will improve anything. Most http requests on the interwebs is already GZIP compressed. Those cookies carry strings, that can be carried away in so many formats - be they binary or string-based. They will be transferred whether the protocol is binary or ASCII . This doesn't change anything on that front really.

    110. Re:Makes sense by Hobadee · · Score: 1

      I run a TCP/IPX network. It's totally WIN

      --
      ...Had this been an actual emergency, we would have fled in terror, and you would not have been informed.
    111. Re:Makes sense by omnichad · · Score: 2

      They are stored locally in order to be transmitted with every request. Just pulled up the debug window here in Chrome. My HTTP request to load and view this page shows the following headers: Accept, Accept-Encoding, Accept-Language, Cache-Control, Connection, Cookie, Host, and User Agent.

      Cookies are how your computer says to the server that you're logged into the site. How can the server verify that you're the same user and not just another computer behind the same external IP address without you sending the cookie?

      The Cookie header contains ALL of the cookies stored for the slashdot.org domain. Total size of the Headers in the request was about 1.3KB. More than half - 0.9KB of that was the cookies.

    112. Re:Makes sense by KingMotley · · Score: 1

      Only if you compress after encryption, but your compression would likely be very poor if you did that. In all compression schemes, there is telltale signs that it's been compressed, either through a dictionary lookup placed somewhere in the compression stream, or similar. Encrypted compression therefore allows some insight into the key that was used to encrypt it since you are guaranteed certain parts you can unencrypt or at the very least vastly lower the probabilities, severely weakening any encryption scheme you use.

    113. Re:Makes sense by omnichad · · Score: 1

      I'll add that Slashdot stores its images on a CDN at a separate subdomain. As a result, this speeds up delivery of that content, since it doesn't send the cookies for slashdot.org - it sends the non-existent cookies for a.fsdn.com

    114. Re:Makes sense by LordLimecat · · Score: 4, Insightful

      Has the readability of TCP flags ever been a huge problem for anyone? Or have they simply used the bazillion TCP parsing tools out there which do all that heavy lifting?

      Do you read the binary bits off of your harddrive, and handle encoding and endianness in your head, or do you use tools that translate from binary to ascii?

      Why is it necessary for the binary bits to be arranged in ASCII format so that you can read them, rather than having a header-parsing tool that translates them to ASCII format?

    115. Re:Makes sense by LordLimecat · · Score: 1

      If only there were some way to translate binary data into human readable format.

    116. Re:Makes sense by TitusGroan8856 · · Score: 1

      I'd contend that TCP/IP was a slightly more used protocol. given that it underlies http and everything else.

    117. Re:Makes sense by Pieroxy · · Score: 1

      Last time I checked, cookies were stored locally and not transmitted with every request.

      Check again. How do you think your server knows who you are from a new HTTP request? Cookies. They get in every query your browser sends to your server. Every single one. CSS, images, javascript files, AJAX queries, everything. Moreover, this is upload which often is much slower for the browser.

      Now the ViewState .NET variables I'd have to look up because I didn't fall into that trap, but I would imagine that they are also locally stored so not so much the reason your HTTP requests being generally slow.

      Well, again, you're sadly mistaken. Check http://msdn.microsoft.com/en-us/library/ms972976.aspx for more information. ViewState data is posted back and forth to sync component state between the server and the client. On a poorly coded site this can amount to hundreds of kilobytes of data for every click the user makes. However, it has nothing to do with HTTP.

    118. Re:Makes sense by Darinbob · · Score: 1

      SMTP sort of is binary in a way, if you ignore the headers. The protocol itself is 32-bit commands, that just happen to be human readable is read as ASCII, with 8-bit delimiters and separators.

    119. Re:Makes sense by omnichad · · Score: 1

      The payload is currently gzip compressed - not the request or response headers. The cookies currently must be sent as plain text - they can't store anything but ASCII. They could be gzipped as part of the binary protocol. All headers can be compressed and reduce bandwidth. It's not that it's binary, it's that we're throwing human-readable out the window as part of the transition.

    120. Re:Makes sense by KingMotley · · Score: 1

      Uh, no. Where a HTTP header's value ends and the next header begins is well defined. They can span multiple lines only in predefined ways (begin next line with space or tab). Parsing the headers out, and ignoring the ones you don't understand is a trivial task.

    121. Re:Makes sense by interval1066 · · Score: 1

      Its bloated and slow to parse becuase we've needed to add additional aritfacts to it (like numerous video formats, bytecode, and whatever else) that it was never intended to deal with. Adding a newer version of the protocol MAY aliviate some of that overhead, at least on the processing side.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    122. Re:Makes sense by Anonymous Coward · · Score: 3, Interesting

      You can write a simple HTTP/1.0 parser, maybe. Try implementing HTTP/1.1 Pipelining some time.

      Also, most HTTP parsers don't obey MIME rules when parsing structured headers. Regular expressions are insufficient. The vast majority of HTTP libraries don't fully support the specification, even at the 1.0 level. But most don't notice because you never see those complex constructs, except perhaps from an attacker trying to get around a filter--where on implementation perceives X and the other Y.

      I've written an HTTP+RTSP+RTP non-blocking, re-entrant, restartable (no callbacks, which makes application composition easier) C library for streaming media. Libraries like curl just don't cut it for anything serious.

      If your idea of implementing something relies on using regular expressions for parsing, I can guarantee you that you're not properly implementing the specification. I don't know of any useful specification, save maybe SPF (which has a broken synax which relies on NFA backtracking behavior), that doesn't involve grammar constructs beyond the capabilities of regular expression.

    123. Re:Makes sense by Chelloveck · · Score: 5, Interesting

      Binary vs. text doesn't make any real difference for debugging. Ethernet frames are binary, IP is binary, TCP is binary. We cope just fine. It may be more difficult to do a quick-and-dirty "echo 'GET / HTTP/2.0' | nc localhost 80", but so what? You can still use HTTP/1.1 or even HTTP/1.0 for that, and you're going to haul out the packet analyzer for any serious debugging anyway.

      What I really don't like is that they're multiplexing data over a single TCP connection. I understand why they're doing it, but it seems like re-inventing the wheel. Congestion control is tricky to get right so I see HTTP/2.1 and HTTP/2.2 coming out hot on the heels of HTTP/2.0 as they iron out problems that have already been solved elsewhere.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
    124. Re:Makes sense by Anonymous Coward · · Score: 0

      Is it me or did I just see two messages: one from a java programmer and a C programmer... not in that particular order.

    125. Re: Makes sense by Anonymous Coward · · Score: 0

      You only ever crash one time without a seat belt.

    126. Re:Makes sense by pspahn · · Score: 1

      I'm assuming you'll get right on that then! Thanks anti-social back-end developer!

      --
      Someone flopped a steamer in the gene pool.
    127. Re:Makes sense by NoImNotNineVolt · · Score: 1

      So web developers the world over suck ass, and their bloated designs make it okay for the IETF to follow in their footsteps up the stairway to bloat heaven?

      Fuck that.

      For the record, it's already binary. IP only speaks in 1s and 0s. How do you manage now with the ASCII-encoded binary strings that comprise HTTP/1.1 headers? Do you do a byte-to-character conversion in your head? Or do you rely on software to parse and render the data accordingly? Would it be such an outrageous idea to have software that parses and renders this new binary HTTP/2.0 encoding as well?

      Also, for the record, your assertion is false. The upper bound on HTTP/1.1 header size exceeds the lower bound on HTML page size. That is, it is possible for an HTTP header to be larger than a complete web page. Also, your assertion seems to rest on the assumption that HTTP is only used to transfer HTML/images for web pages. While that would be nice, it is unfortunately not the case.

      --
      Chuuch. Preach. Tabernacle.
    128. Re:Makes sense by Anonymous Coward · · Score: 0

      You're wrong :)

    129. Re:Makes sense by grmoc · · Score: 2

      So, you're saying that programmers read the SSL bytes directly and can interpret them?
      That is impressive :)

    130. Re:Makes sense by KingMotley · · Score: 1

      you don't make cows out of hamburgers.

      Depends on how many she eats.

    131. Re:Makes sense by ldobehardcore · · Score: 1

      Oh, so it's just like Windows Server class at technical school?

      --
      Hectice, baby, Mercator says hello to you
    132. Re:Makes sense by KingMotley · · Score: 1

      I think you are being very very kind, unless you count the intertubes.

    133. Re: Makes sense by Anonymous Coward · · Score: 0

      I haz iPad

    134. Re:Makes sense by RCL · · Score: 1

      Real humans read hex.

    135. Re:Makes sense by turgid · · Score: 1

      You'll go far, young man. Now back to your VB.NET.

    136. Re:Makes sense by dgatwood · · Score: 1

      On a poorly coded site this can amount to hundreds of kilobytes of data for every click the user makes.

      I'd go one step further and say that ASP-based sites are almost by definition poorly coded. A well-coded site should not require the server to know anything about the state of the client. The client should maintain its state locally, and should use XHR to fetch precisely the data it needs in order to update the view. The old-style architectures where the server knows everything and provides entire pages full of content just doesn't make much sense anymore, at least for nontrivial sites.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    137. Re:Makes sense by Anonymous Coward · · Score: 0

      Yo Dawg! I herd you liked control protocols.

    138. Re:Makes sense by gnupun · · Score: 1

      ...or code these tools yourself in a week or two. Binary data parsing is orders of magnitude easier than text parsing.

    139. Re:Makes sense by Timmmm · · Score: 2

      Compression of a verbose text-based format is never as good as having a compact binary representation in the first place. It's slower, harder to use and usually bigger anyway because compression algorithms are not magic.

      There's a reason modern web APIs use JSON, protobufs or thrift instead of gzipped XML.

    140. Re:Makes sense by dgatwood · · Score: 1

      Has the readability of TCP flags ever been a huge problem for anyone?

      Of course not, but TCP is handled down in the kernel. For the most part, only those of us who have done kernel-level programming have ever had to deal with them directly. It requires a fair amount of work to get your hands on the raw packets. By contrast, HTTP is an application-layer protocol, which means that orders of magnitude more people have to write and maintain code compatible with it. It is relatively trivial to obtain raw HTTP stream data.

      I'm not saying that this is a show-stopper for me or anything—it really isn't that important so long as the standard requires permanent backwards compatibility with earlier versions of the specification so that when we have to debug something hairy, we can manually send the old-fashioned query and get back a response in a human-readable format—but I really don't see how the infinitesimal performance benefit from binary headers is worth all the effort of rewriting all those server and client implementations.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    141. Re:Makes sense by Anonymous Coward · · Score: 0

      also most compressors leave a signature that you can attack.

    142. Re:Makes sense by spongman · · Score: 1

      are you saying that php, perl, ruby, java, etc... don't support sessions?

    143. Re:Makes sense by Anonymous Coward · · Score: 0

      +1 for introducing chucklefuck into the English language

    144. Re:Makes sense by maxwell+demon · · Score: 2

      I hear that SQL stores its data in a binary (rather than ASCII) format too!

      Then you heard wrong. SQL does not store anything. Databases store data. SQL is just a language to access that data. And SQL databases (that is, databases which support the SQL language) store the data however they see fit. I'd not be surprised if there was an SQL database which stored its data in text.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    145. Re:Makes sense by dgatwood · · Score: 1

      That's still not a valid reason to refuse to allow compression. As I understand it, LZW lets you set aside a token (a "flush character") to tell the receiver to reset the compression dictionary to its original state. If the browser sends that token before and after any data that could potentially be altered by a third party (likely just the GET/POST query string and, where applicable, the POST body), you would still get most of the benefits of compression without the loss of security, unless I'm missing something.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    146. Re:Makes sense by spongman · · Score: 1

      same for all those silly files in /etc. bring on the registry!

    147. Re:Makes sense by LordLimecat · · Score: 1

      Doesnt it make sense tho that there will be easy tools to generate those headers, and tools to interpret those headers?

      I mean sure I can currently use telnet.exe, connect to google.com, craft a GET header, and get a webpage back, but what is the practical difference if the header is binary and I instead have to use firefox's HTTP2.0Headers addon to generate the same header?

    148. Re:Makes sense by Anonymous Coward · · Score: 0

      So what? Ms realized they were doing shit, hence the (ms)MVC movement on their side, catching up with the game with a five year lag. As for cookies: use local storage, sessions storage and static servers on different domains - it's not the protocol, but stupidity that is the problem.

    149. Re:Makes sense by dgatwood · · Score: 1

      Put a 1 ms delay in every packet going across your router. See how it feels.

      Given that the stated purpose for these protocol upgrades is to make HTTP work better for cellular networking users, who frequently experience latency measured in seconds, a one millisecond time difference is so completely buried in the noise so as to make it utterly moot. The real beneficiaries of these sorts of changes are big companies who pay for their bandwidth by the gigabyte... and even then, only if it makes the difference between a request fitting into one packet or getting fragmented.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    150. Re:Makes sense by Culture20 · · Score: 1

      It's missing on new Linux distros too. With good reason in Lin/Win worlds, but it is a hassle to pause your thought processes while you take a short install break.

    151. Re:Makes sense by Anonymous Coward · · Score: 0

      I worked with OS/2. Pray for me.

      Each and every IBM program product produced binary logfiles. Each one of those logfiles was in a completely different binary format. Each program product required its own unique logfile utility program.

      Thank you, no. I am much happier with Linux and the text-format files that I can use the standard set of universal text-processing tools on. Even to the extent of converting them to EBCDIC, uploading them onto a mainframe and using THEIR text tools (such as they are) on them.

      I have found binary to be highly overrated. I sweated through it when disk space and RAM was tight and wasted hours of my time working my way through binary data. These days I'm not allowed such luxuries.

      I have no problems with binary in terms of using it for compression or encryption, but I don't even want to think about what a nightmare it could be if every website delivered content in pure site-dependent binary form. Neither, I'm sure, does Google. Worse, the ways to get a general-purpose browser to program itself for site-specific binary data don't bear thinking of. They start with ActiveX and go downhill from there.

    152. Re:Makes sense by maxwell+demon · · Score: 1

      The cookies currently must be sent as plain text - they can't store anything but ASCII.

      Wrong. It's trivial to store Base64 encoded binary data in cookies.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    153. Re:Makes sense by Pieroxy · · Score: 1

      Which is 8/6 as big as the origina binary data you were about to send, and all that uncompressed. Lots of wasted space there.

    154. Re:Makes sense by omnichad · · Score: 1

      And that IS plain text. Terribly bloated plain-text. Which unfortunately doesn't compress very well. WHY would you need to store anything like that in a cookie?

    155. Re:Makes sense by dgatwood · · Score: 1

      Seriously. I wrote a basic web server with CGI support (with connection handling built around nc) in only a couple of hundred lines of shell script. HTTP is freaking mindlessly simple to parse (though I won't claim to have done so 100% correctly).

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    156. Re:Makes sense by Anonymous Coward · · Score: 0

      Dude, HTTP headers are sent once per connection, not once per packet.

    157. Re:Makes sense by ArsonSmith · · Score: 1

      is it so difficult to adjust from 404 to 0b110010100, the built into browser dev tools will convert it for you anyway.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    158. Re:Makes sense by Score+Whore · · Score: 1

      I see what you are getting at and I see that compression certainly does leak information about the content of the message, namely how compressible it is.

    159. Re:Makes sense by bloodhawk · · Score: 2

      I debug code every day, can't say the last time I read machine code though. Just because it is utilizing binary doesn't mean it has to be read that way, hell even my network tools include a raft of utilities to ensure I don't have to remember and understand every bit I see on the wire. It doesn't make sense for a computer to computer protocol to be bloated and slow just so someone can read it directly if they need to.

    160. Re: Makes sense by crutchy · · Score: 0

      your website only has to fuck up once to lose a customer

    161. Re:Makes sense by petermgreen · · Score: 1

      From a security perspective send encrypted data between two endpoints at a rate independent of what you were using the connection for in fixed size chunks. That way the attacker would have no way to know when and how much data you were sending without cracking the encryption. In this context compressing before encyrpting would not cause any security problems.

      In the real world though this doesn't work for most people. They want to be able to use whatever bandwidth they have to communicate with who they want without having to set up a fixed bandwith link first or waste bandwidth during idle time. So In reality we mostly encrypt variable sized chunks provided at a varying rate. The encryption hides the content of the chunks but not the size of the chunks.

      Compressing the content of the chunk before encrypting* causes the content of the chunk to affect it's size and in certain contexts that dependence of size on content can allow the attacker to infer things about the communication that they would not have been able to infer in the absense of compression. An AC has already posted one example of this (causing the client to generate chunks that contain a mixture of secret data and attacker supplied data). Another example is VOIP where the size of compressed packets are often strongly correlated with what sylable is being said.

      * Compressing after encyrping would be pointless.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    162. Re:Makes sense by dgatwood · · Score: 1

      Not a great deal, usually. It just means that there will be a lot of folks writing a lot of code for what is likely to be of no benefit except to large corporate websites (since most of us don't meter our traffic by the byte).

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    163. Re:Makes sense by dgatwood · · Score: 1

      From what I've seen? Barely. :-D

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    164. Re:Makes sense by Anonymous Coward · · Score: 0

      SPDY does not run over UDP. It runs over TCP. Google's foray into UDP is QUIC.

    165. Re:Makes sense by Anonymous Coward · · Score: 0

      TCP packets fail to arrive all the time. The difference is that with TCP, you eventually find out if the receiver didn't get the packet. With UDP, you don't. TCP doesn't guarantee delivery, it guarantees that you find out about failures to deliver. If TCP can't deliver the data, is still up to the application developer to re-attempt transmission at some later time or via some other method.

    166. Re:Makes sense by Anonymous Coward · · Score: 0

      > but there is almost nothing about text that makes it special.

      Uh, except, of course, a text based protocol is human readable

      So, sure, other than that, nothing special ...

    167. Re:Makes sense by Anonymous Coward · · Score: 0

      It's missing on new Linux distros too. With good reason in Lin/Win worlds, but it is a hassle to pause your thought processes while you take a short install break.

      Which distros?

    168. Re:Makes sense by Anonymous Coward · · Score: 0
      They have written a lot of debugging tools -- and they all suck ass.

      I've never seen a debugger/disassembler that is not a complete disaster.

      Learning to use one of those tools is an exercise in humility: accept to have your intelligence insulted at every step, to meekly submit to the idiosynchrasies and pet peeves of the idiot who has written it.

    169. Re:Makes sense by petermgreen · · Score: 1

      You would have to define how the TCP checksum (which covers network level source and destination so that packages whose source/destination get corrupted don't get accidently accepted on another connection) should be done when running TCP over your alternate protocol.

      But other than that minor detail yes.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    170. Re:Makes sense by SerpentMage · · Score: 1

      You are making a buggered up assumption here!!! You are assuming that the protocol is binary encoded alpha. I am thinking it will be warped such that using something like tshark will not work worth a darn! To be able to parse binary you need a protocol analyzer, and one that does not have bugs. This is why text is so useful, because if things go wrong you can actually figure it out. With a protocol analyzer you are wondering, if it is my app, or the protocol analyzer, etc...

      So sorry, disagree here...

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    171. Re:Makes sense by wiredlogic · · Score: 1

      It's more relevant for mobile providers who have to carry traffic from millions of smartphones each running multiple apps pinging various servers for updates every minute or so.

      --
      I am becoming gerund, destroyer of verbs.
    172. Re: Makes sense by Anonymous Coward · · Score: 0

      These seat belts and air bags are pointless. How often do I crash anyway?

      Thanks for the apples to oranges comparison. A more accurate comparison would be that HTTP 1.1 is like a car that has simple electronics and no ECU/management system (all mechanical) and HTTP 2 is like a modern car with complicated diagnostics and electronics. They both get you down the road but it's easier for a mechanic to conclusively diagnose and fix the older car than the newer car where an additional layer of equipment is required to diagnose the fault.

    173. Re:Makes sense by Anonymous Coward · · Score: 0

      I know a joke about TCP.

      It's OK if you don't get some part of it. I'll just keep telling you until you do.

    174. Re:Makes sense by Anonymous Coward · · Score: 0

      It was obvious that you were talking about the suite.

    175. Re:Makes sense by makapuf · · Score: 4, Funny

      SELECT * FROM User GROUP BY Clue;

          Joke
      +- - - - - - - +
          Woosh

      And grr no they're not junk characters, you junk comment filter yourself. Please be damned to your 0xffff generation you filthy random bag of bits. What do you want me to do ? Type random sentences in the comment box ? That's what you want ? yes ? because I can definitely do that. Hey, I said I entered random sentences ! now accept my post!

    176. Re: Makes sense by egcagrac0 · · Score: 1

      netcat is also often missing from new Windows machines.

    177. Re:Makes sense by Anonymous Coward · · Score: 0

      Maybe you don't.

      However today I would like to announce the worldwide debut of the Hambercow!

    178. Re:Makes sense by Anonymous Coward · · Score: 0

      No, you're the one who made that assumption. The rest of your post is thus moot.

    179. Re:Makes sense by mewyn · · Score: 1

      SPDY is an HTTP-compatible protocol built upon TCP. QUIC is a fully-experimental protocol based on UDP.

    180. Re:Makes sense by cartman · · Score: 3, Insightful

      I disagree. I'm an old enough programmer (in my 40s), I started my career working with proprietary binary formats, and I remember the good reasons why binary formats were abandoned. Where I work, the older someone is, the less likely they are to favor binary formats for structured data (this argument has come up a lot recently).

      I'll repeat one or two of the arguments in favor of not using proprietary binary formats.

      If you wish to save space, conserve bandwidth, etc, then binary formats are not a good way of accomplishing that. The best way of saving space and conserving bandwidth is to use compression, not a custom binary format! Binary formats are still very large compared to compressed xml, because binary formats still have uncompressed strings, ints with leading zeroes, repeating ints, and so on. If you wish to save space or conserve bandwidth, then you ought to use compression.

      If you use compression, though, then using a binary format also, gains you nothing. Binary formats do not compress down any further than human-readable formats that encode the same information. You won't gain even a few extra bytes on average by using a binary format before compressing. It gains nothing to use a custom binary format if you compress, which you should do if you're concerned about space or bandwidth.

      Of course, compressed formats are binary formats. However, the compression formats you will use, are extremely common, are easily identified from a text identifier at the beginning of the file, and have widespread decompressors available on almost all platforms. Gzip, Bzip2, and zip are installed by default on the macbook pro I got from work. They're almost everywhere. That is not the case for a custom binary format which you create. Also, compression can be turned on and off. If you wish to sniff packets for debugging, you can turn compression off for awhile.

      Here's a different way of putting it. You can think of common compression algorithms (such as bzip2) as mechanisms for converting your files into the most compact binary representation available with no programming effort from you. It does not help those algorithms if you also try to do binary encoding yourself beforehand.

      There are a few weird exceptions where it's best to use binary formats. There are small embedded devices which lack the hardware to perform compression. Also, http/2.0 might be an exception, because the data transmitted is less than 100 bytes usually, so adaptive compression wouldn't work well, and it wouldn't be possible to compress across http requests because Http is (in theory) a stateless protocol.

      Now though, even private internal saved state never seen by a human is done in XML for bizarre reasons.

      There are reasons other than human-readability to use XML. Using xml means you gain an ecosystem of tools: all kinds of parsers, generators, code generators, validators, editors, pretty-printers in your IDE, network packet sniffers that can parse and pretty-print it, etc, on a wide variety of platforms. You lose all that if you roll your own binary format, for a gain of nothing if you compress the data in production.

      Also, private internal state is seen by a human on rare occasion. What happens if parsing the file fails? Someone will need to look at it.

    181. Re:Makes sense by mlefevre · · Score: 1

      Furthermore, how much more efficient would HTTP2 binary be over pipelined, gzip-9 content? If headers are that big of an overhad, why not just a standard compression on headers?

      With pipelining, the server still has to return the responses in the order they were requested, which can mean a larger/slower resource holds everything else up. More importantly, pipelining doesn't work well in the real world. Various servers and proxies claim to support HTTP 1.1 but actually don't. So then browsers have to detect if the server they are talking to is broken, or if they are connecting through a broken proxy, and fall back to not pipelining if necessary. Failing to pipeline and falling back is slow, so browsers did things like creating blacklists to avoid trying pipelined connections unsuccessfully. And a browser on a laptop might be behind a broken proxy only some of the time. That is why pipelining-by-default didn't make it out of beta on either Chrome or Firefox, despite some efforts in the past couple of years.

      Browsers should be able to be pretty sure that HTTP 2 connections will actually support HTTP 2, and there is no need to workaround, or fix, millions of broken servers and proxies. And they can do things like multiplexing and header compression while they're at it.

    182. Re:Makes sense by Anonymous Coward · · Score: 0

      > Furthermore, how much more efficient would HTTP2 binary be over pipelined, gzip-9 content?

      You have a very limited view here. You have to take into account future internet speeds and the extreme amounts of http requests that virtually all modern "applications" seem to be using. This "make everything http" trend that you may have noticed isn't going to end anytime soon. Plaintext parsing of data packets, which is what http is quickly becoming, is horrribly inefficient and slow compared to something like a frame based binary format where you can just get the data you need. gzip-9? I don't think *anyone* will want to gzip anything with gigabit internet connections and the like. Lower latency and cpu cycles, not higher, is the goal here.

    183. Re:Makes sense by Darinbob · · Score: 1

      Binary formats save development time since you don't have to parse them or convert to them. However if you're on a big system with lots of memory maybe it's no big deal to link in a library to do this. If you're on a tiny system however this is problematic.

    184. Re:Makes sense by lightknight · · Score: 1

      Seriously. Binary might be faster, and that's cool: when it comes to sending / receiving data, compressed forms are awesome.

      But yes, if there's an error...or if something doesn't work as expected, your choices may be a special tool to read the data stream, or trying to read it manually (which can, lacking practice, take a lot more of the developer's time).

      Personally, I'd do what I normally do with other forms of storage: develop in human-readable, push to production in binary; boolean switch / comparable classes in the original code to swap back if / when some horrible error appears (and no one knows what it means, or why it's happening).

      --
      I am John Hurt.
    185. Re:Makes sense by LordLucless · · Score: 1

      That's not 10% faster overall, that's only 10% of the protocol, which is a tiny, tiny, fraction of the overall work a machine does for a protocol as simple as HTTP.

      --
      Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
    186. Re:Makes sense by maugle · · Score: 1

      And the attack setup is feasible - consider a public WiFi access point that requires you to keep a frame open in order to use their WiFi. This gives them both the MITM and JavaScript access needed to perform this attack.

      Not trying to blame the victim, but going online without NoScript these days is simply foolish.

    187. Re: Makes sense by thrift24 · · Score: 1

      RHEL doesn't install it by default in some of the more common installer selections.

    188. Re:Makes sense by cheater512 · · Score: 1

      Its not as extendible as XML. Hell XML even has 'Extensible' in it's name.
      We should use XML for HTTP/2.0 clearly!

      How extendible and human readable do you actually need it to be to fetch a couple of text files and images from a server?

    189. Re:Makes sense by Kielistic · · Score: 1

      The client should maintain its state locally, and should use XHR to fetch precisely the data it needs in order to update the view.

      That method doesn't fall back very gracefully which is a requirement to some people / projects. Also populist opinion on Slashdot is that sites that require Javascript are written by know-nothings (disclaimer: not my opinion).

    190. Re:Makes sense by mattack2 · · Score: 1

      proprietary binary formats

      But this is discussing a *non*proprietary binary format.

    191. Re:Makes sense by phantomfive · · Score: 1

      That's interesting, what did you use for sockets? Curl?

      --
      "First they came for the slanderers and i said nothing."
    192. Re:Makes sense by TheCarp · · Score: 1

      Exactly. For me to use wireshark, I need to first use tcpdump to a capture file, then sftp the file out to an administrative box, then use another method to transfer it locally. Then, and only then, can I open it in wireshark. Just did it the other day, it was just what I needed at the time to show that the local box was acting properly and very likely return ack's were not making it back to the originating host. Great for that. Love it.

      That said, I telnet to port 80 and type a quick http get command far more often. First it tells me the port is open, then it tells me the webserver is actually responding reasonably. It is faster than setting up the port forwards that I need to do the same test with a graphical tool, and quicker than another tool if I want to do something like, pass a different host header.

      text based protocols are pretty useful, even if its behind ssl, it doesn't take long to learn how to type openssl s_client -connect

      It is useful for http, it is useful for smtp, its useful.

      --
      "I opened my eyes, and everything went dark again"
    193. Re:Makes sense by dgatwood · · Score: 1

      A patched version of nc. In OS X, the nc command has a server mode in which connecting clients are accepted automatically, and it then routes incoming data to stdout and transmits any data that it reads from stdin (IIRC). I connected nc's stdin and stdout to named pipes so that the shell script could close and reopen nc's stdin, and patched nc so that if the remote host closed the connection early, it would read until the next EOF and discard the data, preventing the next connection from getting the remaining data from the previous one.

      Fun stuff.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    194. Re:Makes sense by phantomfive · · Score: 1

      Interesting. I'll remember that technique.

      --
      "First they came for the slanderers and i said nothing."
    195. Re: Makes sense by Anonymous Coward · · Score: 0

      And some of us have to read machine code all day. Each to their own.

    196. Re: Makes sense by Anonymous Coward · · Score: 0

      you just missed the point entirely. It is about using the correct tool for the job. nothing wrong with reading machine code all day, but you certainly wouldn't demand they implement that as Javascript just so you can read it easier instead of having to read machine code. If you are designing a protocol for 2 computers to talk to each other over one of your concerns should not be "can a developer easily read this". your concerns Should be around standardisation, security, performance, features and minimised overhead etc.

    197. Re:Makes sense by Anonymous Coward · · Score: 0

      ASP.NET ViewState is part of the BODY of the HTML document and has nothing to do with HTTP 1.1 or 2.0 or 3.0!

      And yes it is ugly to look at, but it saves server memory and doesn't break the Back Button like so many other frameworks do. IMO it's a pretty good hack.

    198. Re:Makes sense by Anonymous Coward · · Score: 0

      Hard to parse?? What planet are nschubach and PhrostyMcByte on? Parsing those headers is a model of simplicity. I've written several such generators and parsers over the years, partly because it is so easy to do. As jeremyp points out, even dealing with continuation lines is simple.

      The hard part of dealing with HTTP is understanding the semantics of those headers, and any binary protocol isn't going to do a thing to make that simpler!

      There are plenty of times I've had to look at HTTP streams to debug what is going on. Having a binary format is just going to make that a lot harder. Also, considering that message bodies are typically orders of magnitude larger than the HTTP header, there is not much to gain by conversion to binary.

      The IETF proposal is geared to useful things. The big thing is being able to flow control on substreams over a single TCP connection. It's an improvement over HTTP 1.1's innovation of sending multiple requests over a single TCP connection, but only sequentially. The new protocol establishes the connection--including any TLS handshake--just once and then let a bunch of multiplexed traffic flow. It would let you prioritize important streams. I can imagine being able to send and receive high-priority Ajax requests while most of the media still loads.

      That said, the advantage is NOT that you don't have to worry about the size of the headers for any single HTTP stream or how hard those headers might be to decode. The fact that the current headers are textual is not making life harder.

    199. Re:Makes sense by Anonymous Coward · · Score: 0

      I'd go one step further and say that ASP-based sites are almost by definition poorly coded. A well-coded site should not require the server to know anything about the state of the client.

      That is exactly what ASP.NET ViewState does! The "state" is stored on the client, posted to the server, and reconstructed on every request.

      An alternative technique popular in the Java world is to shove an object hierarchy into the "Session". This approach invariably breaks if the user presses the Back Button and the current document no longer matches the server's view of "state".

      ViewState is really ugly, but it's stateless and works better than some of the alternatives.

    200. Re:Makes sense by Anonymous Coward · · Score: 1

      As I noted in a comment I made earlier on this topic, the big selling point for this protocol is the multiplexing. Do the three-way handshake only once, and you've got a TCP connection. If you need a secure connection, go on to do the TLS handshake (8 to 10 messages) and only then can you start talking. If you're doing things with the new version of HTTP, you can skip a lot of this setup and limit your use of separate TCP connections.

      Ah, but here is where the concerns start coming. The new protocol introduces a new layer of packets. It may be require fewer connections, and therefore port allocations at the endpoints--as well as for any proxies or NAT boxes along the path--but will it incur too much overhead as compared with HTTP 1.1 and multiple TCP connections? Also, I have to wonder about how complicated it will make writing server software if it is now supposed to be able to drive multiple streams for a single client. Come to think of it, would connection muliplexing bring you any gain at all if you are dealing with caching proxies? The new protocol seems to be the least of the trouble. Just think of the software at the endpoints.

      What does not trouble me about HTTP 1.1 are the textual headers.

    201. Re:Makes sense by multimediavt · · Score: 1

      On a poorly coded site...

      And there's the ACTUAL problem, not necessarily the fault of HTTP. I know how cookies work. I never coded a site poorly, I guess, and why I couldn't understand why someone would implement one so large that it could be a problem. Never underestimate the power of stupid.

    202. Re:Makes sense by Anonymous Coward · · Score: 0

      Maybe an analogy is needed:

      HTML is the vomit web developers hurl towards you.

      HTTP is like the mouth of the web developer that is projectile vomiting in your direction.

    203. Re:Makes sense by Anonymous Coward · · Score: 0

      Long cookies, multiple cookies. The mark of the lazy. The value of a cookie should simply be a cryptographic hash that the server uses to associate you with saved state.

    204. Re:Makes sense by Anonymous Coward · · Score: 0

      Has the readability of TCP flags ever been a huge problem for anyone? Or have they simply used the bazillion TCP parsing tools out there which do all that heavy lifting?

      Consider that TCP is an insanely complicated protocol. Easy to use, but a pain in the butt to implement and decode. If I need to debug a TCP stream, I know that I'm going to be in for some work.

      HTTP 1.x, on the other hand, is wonderfully straightforward in comparison. Many times I've sent and received HTTP messages with nothing more complicated than curl, netcat, or even telnet. No fancy tools, just an open TCP connection to port 80. I see no good reason to make the format binary.

    205. Re:Makes sense by Anonymous Coward · · Score: 0

      You make TCP out of IP, you don't make IP out of TCP.

      Unless you're tunnelling something like IPv6 over TCP :)

      I don't know why you'd want to do that over TCP and not UDP, but it's possible anyway. Maybe you could compare that to a cow that likes hamburgers.

    206. Re:Makes sense by Anonymous Coward · · Score: 0

      This might be news to you but the "text" in HTTP is also binary, it is just presented in a way that a human can easily understand by the software you are using to look at it. There is no reason a similar softwares could not be written for the HTTP 2.0 format.

    207. Re: Makes sense by Anonymous Coward · · Score: 0

      Yes, let's not repeat the same mistakes.

    208. Re:Makes sense by Anonymous Coward · · Score: 0

      TCP is a low-level protocol and its header is present on every packet. Having a short, binary header reduces overhead significantly and, more importantly, made it easier for early routers to parse the protocol in hardware.

      HTTP, on the other hand, works at the application level, where string processing is easy and there's no need to simplify for the sake of hardware implementation. Headers are only sent at the start of each request/response stream, where the payload usually dwarfs the headers anyway, making overhead much less of a concern. The slight decrease in protocol overhead just isn't worth sacrificing debuggability and extensibility for: it'll be harder to send custom headers, and vendors will inevitably introduce their own extensions that you can't get your sniffer to decode for you.

    209. Re: Makes sense by arendjr · · Score: 1

      The fuck! A car analogy that is actually accurate! Congrats, AC :)

    210. Re:Makes sense by cartman · · Score: 1

      If you're on a tiny system however this is problematic.

      I grant that tiny systems can be a good reason to use proprietary binary formats. With tiny systems, the CPU overhead of comrpession can be excessive.

      The definition of "tiny" is changing though. Previously, cell phones used to be "tiny" insofar as they had really small CPUs and little ram. Now even low-end smartphones have 1GHz out-of-order dual-core processors, for which the overhead of compression would be negligible.

    211. Re:Makes sense by strikethree · · Score: 1

      I agree that it's a stupid idea, but there is almost nothing about text that makes it special.

      Almost nothing? Seriously? That "almost nothing" part that does in fact make it special is that it is human readable. THAT is something special and it is NOT almost nothing. I do not want a one-use app that is inflexible to monitor or change stuff. I want simple text that can be manipulated in any way my mind sees fit. Keep your dark and obscure data away to yourself and stop promulgating it as a standard for everyone.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    212. Re:Makes sense by oobayly · · Score: 1

      Are we talking about the telnet client or the server? I can't see any reference to a Linux distro missing the telnet client, but my Google Foo could be weak this morning. I haven't had a distro for years where the telnet server is enabled by default, and on this laptop telnetd isn't even installed.

    213. Re:Makes sense by Anonymous Coward · · Score: 0

      Bit-flipping malware, coming to upgrade you to HTTP 2.1...

    214. Re:Makes sense by Anonymous Coward · · Score: 0

      That's better than the TCP joke.

      He kept repeating it until I said I got it.

    215. Re:Makes sense by Ash-Fox · · Score: 1

      I've wasted months on trying to recover SQL stores, please go.

      --
      Change is certain; progress is not obligatory.
    216. Re:Makes sense by the_arrow · · Score: 1

      While no parsing is done on binary formats, they still have to be marshaled to avoid things like endianess problems. While most of the PC world is little-endian, all smart phones are big-endian.

      --
      / The Arrow
      "How lovely you are. So lovely in my straightjacket..." - Nny
    217. Re: Makes sense by zevans · · Score: 1

      Airbags are only ubiquitous because nobody could be bothered to wear seatbelts properly in the first place... there's an analogy in there somewhere too.

      --
      "... and more and more now there are all kinds of electronic goodies available" -- Pink Floyd 1972
    218. Re:Makes sense by Ash-Fox · · Score: 1

      Its bloated and slow to parse becuase we've needed to add additional aritfacts to it (like numerous video formats, bytecode, and whatever else) that it was never intended to deal with.

      Video formats does not effect the protocol, it's returned in the body in the standard way and bytecode also does not effect the protocol, it's returned in the body in the standard way.

      Adding a newer version of the protocol MAY aliviate some of that overhead, at least on the processing side.

      What processing?

      --
      Change is certain; progress is not obligatory.
    219. Re:Makes sense by fuzzywig · · Score: 1
      Might as well set this one up:

      Why not use regular expressions?

    220. Re:Makes sense by swilver · · Score: 1

      So easily solved by seperately compressing the data. ie, don't compress readable/known data together with data that is supposed to be encrypted.

    221. Re:Makes sense by nschubach · · Score: 1

      I never said it was hard to parse... quite the opposite.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    222. Re: Makes sense by RaceProUK · · Score: 1

      Thanks for the apples to thermonuclear warheads comparison.

      FTFY

      --
      No colour or religion ever stopped the bullet from a gun
    223. Re:Makes sense by TedRiot · · Score: 1

      BSON is more efficient!

      Because it's binary. Binary is good.

    224. Re:Makes sense by Volguus+Zildrohar · · Score: 1

      Time for TCPvAngrySlashdot!

      C: SYNCHRONIZE
      C: Start-Sequence: 484725
      C: Source-Port: 7742
      C: Destination-Port: 80

      S: SYNCHRONIZE
      S: ACKNOWLEDGE: 484726
      S: Start-Sequence: 95823
      S: Source-Port: 80
      S: Destination-Port: 7742

      C: ACKNOWLEDGE: 95824
      C: Sequence-Number: 484726
      C: Source-Port: 7742
      C: Destination-Port: 80
      C: Payload-length: 1033
      C: -- BEGIN PAYLOAD --
      C: <bytes>

      --
      When confronted with one problem, some think "I'll use recursion". Now they are confronted with one problem.
    225. Re:Makes sense by kernelistic · · Score: 1

      I'm in the same boat in terms of diagnosis tools. You may already know this: PuTTY supports opening both telnet and raw TCP sessions.

      The awesome thing about HTTP is its extensibility but changing to a binary protocol may make compat an interesting thing. I am interested in knowing how clients in particular are expected to operate when talking to 1.1 only servers.

    226. Re:Makes sense by oobayly · · Score: 1

      Yup, I often find it quicker to download PuTTY and use that rather than installing the telnet client in Programs & Features, go figure. It got to the stage that I now have a mini USB stick on my keyring that has PuTTY, Wireshark portable and various other tools.

    227. Re:Makes sense by LordLimecat · · Score: 1

      Im sure it would have gone better if the database restricted itself to ASCII characters; clearly opening a 1GB database in notepad is helpful if you can read the characters, right?

      "Binary" is sort of a stupid misnomer anyways; its being contrasted with "ASCII" which is basically binary which restricts itself to a subset of binary and then has to perform wild gyrations to be useful to a program parsing it.

      So rather than seeing whether the 8th bit is a 1 or a 0 to determine whether compression should be enabled (and displaying it as "Compression: True" ), the program has to parse for a series of binary digits representing the word "Compression", and checking for mixed case, and then parsing whether you used a dash or a colon, and whether there is a space, and whether you used "true" or "TrUE" or "$true", and then after all of that computational gymnastics we know that compression is indeed enabled.

      I dont know about you, but it seems simpler to enforce that a header conform to a certain, simple, binary standard, then build tools which craft strictly conformant headers and tools which convert "10000000" to "Compression: True", since it doesnt really matter how its displayed to us. The important thing to remember is that we are really good about interpreting non-standard data, so it doesnt matter that much if the tool displays "Compression: TRUE" or "Comp: True"; whereas computers really suck at that sort of fuzzy logic, so it matters a HUGE deal.

    228. Re:Makes sense by TheCarp · · Score: 1

      Thank you for the free copy editing. Sadly as slashdot has no edit function available in it's interface, its a pointless exercise.

      --
      "I opened my eyes, and everything went dark again"
    229. Re:Makes sense by Lisias · · Score: 1

      You are on the wrong job.

      Every single task on computer programming is a "intelligence insulting one". Computers are pretty fast, otherwise completely stupid machines. You have no choice but to lower to its level in order to convince this bitch to do something useful.

      The tools are modeled for the problem, not vice-versa: I don't see anyone complaining when a car does not fly, why we should complain when computers do not think?

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    230. Re:Makes sense by tlhIngan · · Score: 1

      Binary formats save development time since you don't have to parse them or convert to them. However if you're on a big system with lots of memory maybe it's no big deal to link in a library to do this. If you're on a tiny system however this is problematic.

      Not parsing a binary format leads to all sorts of problems.

      In the old days, yes, binary formats weren't parsed - you'd just cast a pointer to the structure and call read()/write() to it and everything would magically work and your structure would be populated.

      The problem with this is obvious: security and interoperability.

      This was fine in single user days where the same program that wrote the file would be the one reading it back. But now you have multiple architectures, endianess, padding and alignment, etc, such that it's impossible to actually just do this.

      Not that you'd want to, because many security flaws were exposed because below-average parsers that didn't check for errors in the spec. Hell, many TCP problems emerged from this and many TCP stacks had to have patches and addons to handle various flaws in the way TCP packets were handled.

      Binary formats are faster to parse, since you can rely less on string comparisons (e.g., instead of parsing "GET /", you might parse "0x01 '/'") where it's easy to read the command as reading one byte rather than doing a string compare (you still need to validate the byte and string are valid, though).

      But if you're hoping to parse something by casting a struct to a binary blob, you'll be in for a world of hurt if you're not verifying every element in the structure is sane. Of course, given the transformations needed, it's probably easier to do parsing byte-by-byte like you would text anyhow.

    231. Re:Makes sense by LanMan04 · · Score: 1

      Damn, I was around for the genesis of that particular meme.

      And now I feel old.

      --
      With the first link, the chain is forged.
    232. Re:Makes sense by scott_obryan · · Score: 1

      Yeah, it's a good thing no humans work as programmers or ever debug this thing

      Thing is, though, you're making the 99.9% usecase slow just so that the .1% usecase is easier to debug with existing tools. Just like when other technolgies evolve, you'll need to evolve as well. I don't expect it to take too long before some decent tools are out there. I myself have done my share of object serialization and such over the HTTP Layer and, as far as I'm concerned, it's about flipping time!!

    233. Re:Makes sense by Darinbob · · Score: 1

      It's a lot easier to deal with the binary parsing though. Everyone who's ever dealt with networking should know how to do ntohl and the like.

    234. Re:Makes sense by Darinbob · · Score: 1

      That's not what I really consider parsing. Getting byte order right and reading sequences of bytes instead of structs is pretty easy and straight forward compared to parsing a structured format like XML. IP has a relatively complex structure and is still pretty simple overall. There were even libraries to use to handle this stuff for you, like XDR or RPC. So making a mistake and getting it wrong because you didn't understand portability or use a small library is just as wrong as parsing XML incorrectly because you didn't understand it or use a library.

    235. Re:Makes sense by Anonymous Coward · · Score: 0

      HTTP/2 != "proprietary binary format"

    236. Re:Makes sense by Ash-Fox · · Score: 1

      Im sure it would have gone better if the database restricted itself to ASCII characters; clearly opening a 1GB database in notepad is helpful if you can read the characters, right?

      I'm sure I would have been able to recover it had it been some form of 'human readable' format. Instead, I gave up after the third month of modifying existing parsers to scrape what data wasn't corrupted into a plain text .sql file. Sadly, this was one of those times when backups couldn't help me due to missing significant amounts of data from the last backup.

      --
      Change is certain; progress is not obligatory.
    237. Re:Makes sense by Anonymous Coward · · Score: 0

      For Google 10% faster just means 10% more room for ads. Oh, sweet wonderful money. Arrfggg-g-g...

    238. Re:Makes sense by uninformedLuddite · · Score: 1

      04 f5

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    239. Re: Makes sense by uninformedLuddite · · Score: 1

      Is that like a lolcat?

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    240. Re: Makes sense by Dan9999 · · Score: 1

      If you use puttys plink you can redirect tcpdump to stdout run wireshark to take stdin, google can find the command line for you.

    241. Re: Makes sense by egcagrac0 · · Score: 1
    242. Re:Makes sense by Anonymous Coward · · Score: 0

      What do you mean impossible to parse? /^([\x21-\x39\x3B-\x7E]+?):(.*)$(\r?\n^[ \t]+[^\s]+.*$)*/igm
      Run that until you hit a blank line. Done.

    243. Re:Makes sense by Anonymous Coward · · Score: 0

      Unless you are debugging something complicated. I read it all the time.

    244. Re:Makes sense by Anonymous Coward · · Score: 0

      You realize that JSON is just a verbose text-based format right? right? right? Oh, and comming from a properly configured server, it will pass through Defalte filter that will compress it using gzip.

    245. Re:Makes sense by Anonymous Coward · · Score: 0

      I've seen a ViewState that was 4 megabytes.

      And the programmers couldn't figure out why the application was so slow.

    246. Re:Makes sense by Anonymous Coward · · Score: 0

      But over all the requests made every second, it will be felt by operators of much of the internet's infrastructure.

    247. Re:Makes sense by Anonymous Coward · · Score: 0

      If you use compression, though, then using a binary format also, gains you nothing. Binary formats do not compress down any further than human-readable formats that encode the same information.

      That's not true. It's true in the limit of long messages, but certainly not for short messages. All the general-purpose compression algorithms need to "warm up" on some initial data (eg. make a structure of the patterns/probabilities of the message) before they start to approach their optimal compression level. For short messages like HTTP, there's not going to be enough time for that to happen.

      A real-life example is MS Office 2003 versus 2007. Office 2007 files are some sort of compressed XML. However, for a typical spreadsheet, I find that saving in 2003 format, which is binary-based rather than XML, and compressing gives smaller files than Office 2007.

    248. Re: Makes sense by Anonymous Coward · · Score: 0

      Quite often actually. Airbags and seatbelts are unnecessary additives that are put in cars because drivers are universally stupid and incompetent at least at some times if not all the time.

      If drivers weren't stupid/incompetent then we wouldn't need the things. [Look at crash statistics, crashes happen way to often to not compensate for them. If crashes happened only 10 to 20 times a year across the entire country then airbags and seatbelts would be a waste of money]

    249. Re: Makes sense by Anonymous Coward · · Score: 0

      You're a fucking imbecile. It's not *always* the drivers causing the accident. Natural causes happen too, and seatbelts can help prevent injuries when such accidents happen. A tree falling on the road in front of you has nothing to do with competence and stupidity, it's just sheer luck.

    250. Re: Makes sense by Anonymous Coward · · Score: 0

      Well, hopefully your inability to read the HTTP 2.0 protocol won't end up killing you one day when a drunk web surfer points their browser at your server.

    251. Re:Makes sense by sonamchauhan · · Score: 1

      Didn't work -- its still a bad joke. ;-)

    252. Re:Makes sense by sonamchauhan · · Score: 1

      But at least two other moderators don't agree with me.. :D

  2. Binary protocol.. and what else? by Anonymous Coward · · Score: 2, Insightful

    It's nice to have a link to the draft. But couldn't we have just a little more "what's new" than it's binary? This is slashdot... Filled with highly techincal people. At least a rundown of the proposed changes would be very helpful in a discussion. The fact that they're proposing a binary protocol doesn't really matter to anyone besides anyone who wants to telnet to a port and read the protocol directly.

  3. Worth the tradeoff.. by Midnight_Falcon · · Score: 1

    Makes it harder to troubleshoot by using telnet to send basic HTTP commands, and speedily develop applications with nuts and bolts tools over plaintext -- but the tradeoff is it can transfer a ton of data over one TCP socket, greatly simplifying the network layer of HTTP, and most certainly adding a lot of performance. For webserver admins, this will make life a lot easier.

    1. Re:Worth the tradeoff.. by bluefoxlucid · · Score: 2

      HTTP already does that with pipelining. One connection, many files, optional compression on the body. The header is tiny.

    2. Re:Worth the tradeoff.. by 0123456 · · Score: 1

      Maybe if the average web page didn't contain 16MB of Javascript these days, you wouldn't need to worry so much about how much data you can send over one connection.
       

    3. Re:Worth the tradeoff.. by robmv · · Score: 1

      don't worry we will make Javascript 2.0 binary too. With the number of compilers targeting Javascript I don't see this as a joke :(

    4. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 1

      Please, you're being too generous. That 16mb of Javascript exists so that it can custom-load another 24mb of Javascript which in turn loads the customized html for your user agent string, this is followed by the 124mb of Flash ads that are scheduled to be of higher load priority than the plaintext, but still below the Javascript over-structure. After that, then you've got the AJAX interface, because buttons and links are so 1992. Even this is assuming there aren't any specialized Java or ActiveX controls that you need to download and trust (or else the page will be replaced by a 'please install the following malware to view this page' error message).

      And that's just to read the headline, the actual story is divided between 4 more such pages, even though the actual text content is shorter than this comment.

    5. Re:Worth the tradeoff.. by lgw · · Score: 4, Interesting

      Makes it harder to troubleshoot by using telnet to send basic HTTP commands

      Since we're using a tool in the first place, it's just as easy to use a tool that understands the binary format. Back before open source toolchains had really caught on as a concept, human readable formats were a big plus, because proprietary tools could be hard to come by. Not really a concern these days, as long as the binary format is unencumbered.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    6. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      From what I learned when you goto a webpage you transmit to port 80 but it's some random port back to you. You can have it use a single port for both?

    7. Re:Worth the tradeoff.. by Kazoo+the+Clown · · Score: 1

      If you're worried about 16MB of Javascript code, you got bigger problems than whether the protocol is binary or not. And that suggests a new product feature-- a browser plug-in that blocks 1) any content using binary, and 2) any content over a maximum size, say 1MB. Less is more.

    8. Re:Worth the tradeoff.. by jandrese · · Score: 1

      Heck, I'm surprised there isn't a javascript virutal machine already in browsers that sites could pre-compile scripts for, especially with the advent of the webpage as an application. We're doing GL calls with a scripted language for gods sake.

      While I'm sure modern browsers JIT compile javascript, it's amazing that we have to do that in the first place.

      --

      I read the internet for the articles.
    9. Re:Worth the tradeoff.. by tepples · · Score: 1

      One connection, many files

      HTTP/1.1 keep-alive and pipelining don't let the user agent cancel a (large) transfer in progress without closing and reopening the connection.

      The header is tiny.

      Unless things like Host:, User-agent:, and Cookie: need to be resent for each request.

    10. Re:Worth the tradeoff.. by plover · · Score: 4, Insightful

      I know! We'll call this mythical virtual machine something catchy, like "Flash".

      --
      John
    11. Re:Worth the tradeoff.. by belphegore · · Score: 2

      ...unless you're on an embedded platform for which you don't have a compiler, and maybe busybox might build in this fancy new binary HTTP client tool in a few decades, but it'll be another few decades after that before manufacturers enable it and ship it.

    12. Re:Worth the tradeoff.. by WaffleMonster · · Score: 1

      but the tradeoff is it can transfer a ton of data over one TCP socket, greatly simplifying the network layer of HTTP

      One thing it does not do is make anything more simple. Everything that was there must still be there plus a whole lot more.

      , and most certainly adding a lot of performance. For webserver admins, this will make life a lot easier

      This is not at all clear to me. Perhaps faster over fat low latency links sending hundreds of little thumbnail images... however vs multiple concurrent TCP sessions on high latency lossy links you are HOL stalled by multiplexing within TCP.

      Concurrent TCP sessions has been a reasonably effective way of masking TCP/HTTP shortcommings. If you throw in some newfangled TCP options such as fast open/start even over reasonable links I would be surprised to see any difference v HTTP pipelining in real world benchmarks.

      And aint it swell to hear they have chosen to reserrect CRIME attacks with header compression.

    13. Re:Worth the tradeoff.. by organgtool · · Score: 4, Insightful

      Since we're using a tool in the first place, it's just as easy to use a tool that understands the binary format.

      Let's say that you use a test client to send commands to your custom server interface and there's a bug. Now you have to spend extra time to discover if the bug is in the test client or in your custom server.

      Back before open source toolchains had really caught on as a concept, human readable formats were a big plus, because proprietary tools could be hard to come by. Not really a concern these days, as long as the binary format is unencumbered.

      You have it backwards. Before open source caught on, binary formats were all the rage. They were proprietary and they were very prone to corruption. Once a document became corrupted, you were at the mercy of the developers to come up with a tool that could reverse the damage. When open source caught on, it pushed hard for using XML as the format for storing and transmitting information. Data corruption is much easier to spot with clear text and can even be easily fixed compared to binary data. In this respect, HTTP 2.0 is a complete step backwards.

    14. Re:Worth the tradeoff.. by gl4ss · · Score: 1

      Please, you're being too generous. That 16mb of Javascript exists so that it can custom-load another 24mb of Javascript which in turn loads the customized html for your user agent string, this is followed by the 124mb of Flash ads that are scheduled to be of higher load priority than the plaintext, but still below the Javascript over-structure. After that, then you've got the AJAX interface, because buttons and links are so 1992. Even this is assuming there aren't any specialized Java or ActiveX controls that you need to download and trust (or else the page will be replaced by a 'please install the following malware to view this page' error message).

      And that's just to read the headline, the actual story is divided between 4 more such pages, even though the actual text content is shorter than this comment.

      but look on the bright side. with this new system you can be pushed the ads before the content!

      --
      world was created 5 seconds before this post as it is.
    15. Re:Worth the tradeoff.. by etash · · Score: 1

      virutal

      i see what you did there.

    16. Re:Worth the tradeoff.. by jeremyp · · Score: 1

      Great idea. Since it will no longer be interpreted, it won't really be a scripting language, so we can drop the "script" part of the name.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    17. Re:Worth the tradeoff.. by jeremyp · · Score: 1

      No, just drop the "script".

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    18. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      With compression in current http, I'm not sure what the binary http2.0 is trying to achieve; yah, they can save space on headers... and then what?

    19. Re:Worth the tradeoff.. by jeremyp · · Score: 1

      Data corruption is much easier to spot with clear text and can even be easily fixed compared to binary data. In this respect, HTTP 2.0 is a complete step backwards.

      Actually the problem is already solved. If you look at one of the few binary protocols still in use, you will often notice a field in the header (or trailer) called "checksum" or CRC. This is a number computed by applying a mathematical function to the rest of the header or message. If a message gets corrupted in transmission, the checksum - calculated by the receiver using the same function - will be wrong. The receiver can then request retransmission without the necessity for a human to even know there was a problem.

      There are no advantages to a text based protocol other than the ability to debug it using basic tools like telnet or a text editor. This is, I will concede, a pretty big advantage, however, it goes away once you start using encryption or compression.

      Oh, and text based protocols are not without their own problems, the first of which that springs to mind is "what character set was used". It's amazing how few people understand that the charset="utf-8" bit in the first line of an XML file means you have to use UTF-8, to encode the rest of the file - not whatever character set the user has selected on his PC or that an HTTP message without any character set information should be in ISO-8859-1 and not UTF-8.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    20. Re:Worth the tradeoff.. by lgw · · Score: 1

      Let's say that you use a test client to send commands to your custom server interface and there's a bug. Now you have to spend extra time to discover if the bug is in the test client or in your custom server.

      Yes, that's a very real concern for brand new test clients. How long do you think it will take before the "open source test tool everyone uses" emerges, and has a million man-years of mileage on it? Think: why do you not worry if telnet has a bug? It's not because the format is text!

      Before open source caught on, binary formats were all the rage. They were proprietary and they were very prone to corruption

      There's nothing magic about text in this regard. The only thing that makes corrupted text easier to work with is the enormous redundancy. If you want redundancy, there are very mathematically efficient ways to get it. But we're talking about a transmission protocol here, not a storage protocol, and it's just far better to send it again on failure than to send 3 times as much every time! Or add an ECC that lets you auto-correct small errors with sub-1% overhead, like storage bus protocols use.

      Data corruption is much easier to spot with clear text and can even be easily fixed compared to binary data.

      Sorry, huge XML docs may technically be human readable, but you'll never get it right without some tool that understands the protocol. Got a tag-mismatch in a multi-MB doc? You're not going to spot it by eye.

      As soon as you're using any kind of tool to help you, the advantage of text over binary vanishes. The problem with old-school binary formats was that they were proprietary. The binary part was never the issue, the issue was the obfuscation! But for any modern open standard, that just doesn't come up. Good free tools to view and fix binary-format docs will be just as available as XML editors, if the doc format is something as common as HTTP.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    21. Re:Worth the tradeoff.. by bluefoxlucid · · Score: 1

      That's called "Networking". Your operating system selects the source port, and it must be above port 1023. This is the port that data comes back to. A connection is unique by src/dest/srcpt/dstpt, so if you want to connect to the same server on port 80 multiple times you need to use multiple source ports.

      You obviously don't know shit about networking. I trust No Starch Press as much as O'Reilly (these are both very high quality publishers), but can't speak for that book in particular. I'll probably buy it (Yes it's pricey) because I don't know shit about IPv6 and my first 50 encounters have bewildered me. I get concepts, but I don't get the new protocol... can't live with that.

    22. Re:Worth the tradeoff.. by Alef · · Score: 1

      I'm not sure what your complaint really is. Modern browsers essentially are sandboxed virtual machines. Some compile to bytecode and then JIT compile, some JIT compile directly from JavaScript source code. The only difference in your suggestion is that you want the software code to be sent from the server in the form of (standardised) bytecode (to be JIT compiled at the client, if you want to stand sliver of a chance against the competition) instead of text (to be JIT compiled at the client). So you gain a tiny bit of start-up performance by reducing the parsing load, at the cost of harder to debug web applications and less flexibility when implementing clients.

    23. Re:Worth the tradeoff.. by bluefoxlucid · · Score: 1

      No, the header is not 1kb or 50kb or 200kb. It's tiny. Typical size is 700-800 bytes, though 2k and 4k headers are uncommon and 8k headers are rare. They happen in special cases. Stuff like SPDY compresses HTTP headers and implements pipelining (multiplexing) because connections take time to set up (and tear down), but SPDY also pushes (it decides that you will need other resources and sends them on)--which can of course cause it to send you cached files you already have.

    24. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      Yeah, because pre-compiled Java applets were just SO successful...

    25. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      That's called "Networking".

      I literally laughed out loud at this. Thanks :)

    26. Re:Worth the tradeoff.. by KingMotley · · Score: 1

      HTTP 1.1 doesn't already do multiplexing. It's sequentially requesting things one after another, incurring latency between each request -- although it's doing it over a single TCP connection, so you don't have to go through the 3-way handshake again. It also doesn't allow you to set priorities for the request so that the most important assets come to you first (most of today's browsers do attempt to do this somewhat now). The header is also resent for each request, and it can be fairly considerable when you include all the miscellaneous stuff like cookies, user agent strings, accept, language, etc etc that really only need to be sent once, not once per request. The headers aren't compressed in HTTP 1.1 either.

      Apparently HTTP 2.0 is also much more efficient in noisy environments where packets get lost. The more packetloss, the better HTTP 2.0 will perform over HTTP 1.1.

    27. Re:Worth the tradeoff.. by KingMotley · · Score: 1

      RTFM

    28. Re:Worth the tradeoff.. by loom_weaver · · Score: 1

      I don't think it's the amount of data (sure it's a factor) but instead a single request ends up being multiple requests to a variety of servers including the image cache server, the ad server, the cookie tracking server, bung-hole analytics... never-mind legit servers such as the database cluster etc.

      Heck, it's servers all the way down.

    29. Re:Worth the tradeoff.. by KingMotley · · Score: 1

      Well let's start at the beginning of networking 101.

      Block protocols that do handshaking perform poorly over high latency links. Windowing protocols fixes this by having always data flowing.

      HTTP 1.1's keep alive pipelining, is a form of handshake, where not until the receiver gets the very last byte can it then transmit that it wants something else. Multiplexing is the fix, by always having data flowing since there is another resource to send.

      Similar things occur because of packet loss in HTTP 1.1. Since the receiver can't begin to request anther resource until it has finished receiving the prior one, the packet loss effectively stops/pauses the transmission until a new packet is received. HTTP 2.0 fixes this because another resource can be requested at any time, and the server can even send down resources the client hasn't requested yet.

    30. Re:Worth the tradeoff.. by KingMotley · · Score: 1

      Here is some reading for you, just below the first page, you can see some "real-world" tests against 25 of the top 100 websites in the world using SPDY, which HTTP 2.0 borrows from: http://dev.chromium.org/spdy/spdy-whitepaper

    31. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      I know! We'll call this mythical virtual machine something catchy, like "Flash".

      Except it won't be a CPU hog by design...

    32. Re:Worth the tradeoff.. by dabbaking · · Score: 0

      Isn't this what things like asm.js, dart, and nativeclient in chrome supposed to solve? Granted they aren't in general use yet, but the idea is to eventually have pre-compiled scripts in dart and/or NativeClient to be run really fast. Asm.js allows you to use a small subset of JS to allow for really fast execution.

    33. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      I always wondered why the browser can't cache this stuff. If the javascript library's hash is different, then you obviously need to redownload. Though webpages then get into dependency hell.

    34. Re:Worth the tradeoff.. by dgatwood · · Score: 1

      ... which can of course cause it to send you cached files you already have.

      That seems like it would be relatively easy to solve. Your browser should send a manifest of resources previously cached from a given domain as part of the initial connection negotiation. Then, the server can just implement the cache policy itself and not resend anything that the browser already has.

      SPDY's server hint mechanism is a poor hack, IMO, and does this exactly backwards. As a result, the latency savings are much less than they otherwise would be except in rare cases where the data being sent is fairly large and takes a long time to arrive. By contrast, if the browser sent a cache manifest during negotiation, the entire multiplication-of-round-trip-latencies problem would almost completely go away, because the server has to wait for the initial request before sending a response no matter what.

      Thoughts?

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    35. Re:Worth the tradeoff.. by tepples · · Score: 1

      Typical size is 700-800 bytes

      Which can occasionally exceed the payload, especially when downloading something like a 500-byte PNG icon.

    36. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      You don't need to run the tool on the embedded system though. Even if you can't reach the server directly, SSH tunnels can easily workaround that.

    37. Re:Worth the tradeoff.. by WaffleMonster · · Score: 1

      Block protocols that do handshaking perform poorly over high latency links. Windowing protocols fixes this by having always data flowing.

      ??? What is a block protocol? Using TCP fast open you can begin to transmit your request before the first round trip completes.

      HTTP 1.1's keep alive pipelining, is a form of handshake, where not until the receiver gets the very last byte can it then transmit that it wants something else. Multiplexing is the fix, by always having data flowing since there is another resource to send.

      RFC2616 section 8.1.1
      "HTTP requests and responses can be pipelined on a connection. Pipelining allows a client to make multiple requests without waiting for each response, allowing a single TCP connection to be used much more efficiently, with much lower elapsed time."

      Similar things occur because of packet loss in HTTP 1.1. Since the receiver can't begin to request anther resource until it has finished receiving the prior one, the packet loss effectively stops/pauses the transmission until a new packet is received. HTTP 2.0 fixes this because another resource can be requested at any time, and the server can even send down resources the client hasn't requested yet.

      The assertion requests can't be queued is false. This makes HTTP 2.0 just as bad as HTTP pipeline in face of stalls from packet loss. The only way to mask stalls is by having multiple concurrent TCP sessions or use a message oriented protocol that does not suffer from head of line blocking. (e.g. not TCP)

    38. Re:Worth the tradeoff.. by crutchy · · Score: 0

      if you want to improve connections, probably better to look at improving tcp rather than whatever runs on top of it

      a new http protocol isn't likely to affect packet loss (it's just the content of the tcp packet)

      requests need to be sent every request because http is stateless, and trying to reduce the need to resend headers may reduce network traffic but will add server processing load (retrieving headers from a connection database), which on popular sites where network traffic is a problem, adding processing overhead to servers is also a problem

      if you have a stateful application and aren't smart enough to use rpc then you're probably "holding it wrong"
      i personally use the iframe/js method for simplicity, but there are others that are more "proper"
      application-specific features are also more dependent on the capability of browsers, html spec, javascript, etc.

    39. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      > Data corruption is much easier to spot with clear text and can even be easily fixed compared to binary data.

      You're kidding right?

      Please name a single piece of software that does on the fly data correction for xml or any other plaintext format. Oh, you're talking about being able to read the data as a human. 1970 is over man. We have binary data formats that can easily survive corruption and not rely on a human/script that reads through some plaintext file, trying to figure out if some text string is corrupted, or just mispelled.

      If you really had any care at all about corruption, you wouldn't use the plaintext to detect corruption, you *would* use a binary format that had data integrity in mind. I have never said this on Slashdot before, maybe it's because I'm hungry, but you're a counterproductive idiot that has ideas that most likely poison whatever development group has the disadvantage of having you.

    40. Re:Worth the tradeoff.. by WaffleMonster · · Score: 1

      Here is some reading for you, just below the first page, you can see some "real-world" tests against 25 of the top 100 websites in the world using SPDY, which HTTP 2.0 borrows from

      Hey great, a real world test without use of HTTP 1.1 pipelining, fast open or fast start. Sign me up.

      The FAQ is full of wishful thinking and hyperbole..

      "Q: Doesn't HTTP pipelining already solve the latency problem?"

      "No. While pipelining does allow for multiple requests to be sent in parallel over a single TCP stream, it is still but a single stream (either a long request at the head-of-line or packet loss) will delay the entire stream"

      Yea well head of line applies to SPDY and everything else layered atop TCP so no help there. Server stall is interesting but only applies for dynamic assets and a faster server would help. You also have several concurrent TCP sessions from which to suck down other content in the interim.

      Furthermore header compression is not something to be proud of... It is dangerous cuz it leaks signals that can be used to infer encrypted content.

      http://en.wikipedia.org/wiki/CRIME_(security_exploit)

    41. Re: Worth the tradeoff.. by KingMotley · · Score: 1

      A block protocol is ons that transmits some data, the waits for an acknowledgement before continuing to send. You are right that pipelining would resolve some, but not all of the problems. Unfortunately, no current browser supports it (none of the major ones). Neither does the keep alive which all major browsers do support.

      As for fast TCP opens, that won't help all that much in most circumstances because of the keep alive is already in use. It would definitely help some, at most 6xRTT, but in practice much less, probably 1-2xRTT.

      As for the packet loss issue, given enough data, selective ACK already solves that problem.

    42. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      I have eaten, and I apologize for my harshness.

    43. Re: Worth the tradeoff.. by KingMotley · · Score: 1

      It also says that all current browsers are not affected.

    44. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      Not worth the tradeoff. The bloated web pages are full of adware, tracking and spam. Placing a premium on lean HTTP messages is A FEATURE of the current protocol.

    45. Re:Worth the tradeoff.. by Ash-Fox · · Score: 1

      And that suggests a new product feature-- a browser plug-in that blocks 1) any content using binary

      No pictures, video, audio or compression for you.

      --
      Change is certain; progress is not obligatory.
    46. Re:Worth the tradeoff.. by Anonymous Coward · · Score: 0

      .. then don't use HTTP/2?

    47. Re:Worth the tradeoff.. by bluefoxlucid · · Score: 1

      Yes, let's send a manifest of the hundreds of little files I already have from you with every request, compressed so it's only about 8-12kb in size. That's much better than a 700 byte header.

    48. Re:Worth the tradeoff.. by viperidaenz · · Score: 1

      TCP Fast Open has security implications, as mentioned in the IETF draft.
      Applications must be built to accept duplicate packets.
      It also re-opens the way for IP spoofing that TCP explicitly resolved with its 3-way handshake, if you capture a TFO SYN packet you can use the TFO cookie to send your own SYN packets with new data and specify the original source IP - successfully impersonating the requester.

    49. Re:Worth the tradeoff.. by viperidaenz · · Score: 1

      Close but not quite. A missing packet in a TCP connection holds the connection up until the packet is retransmitted. This will stop HTTP 2.0 in its tracks just as much as HTTP 1.1.

      HTTP 2.0 stops large transfers holding up small ones. It allows all request to be sent at the "same time" (not really, but close enough), and all responses to be received at the same time.
      It allows requests and responses to occur in parallel over a single TCP connection.

    50. Re:Worth the tradeoff.. by viperidaenz · · Score: 1

      You shouldn't have several concurrent TCP connections to the same host. Most browsers won't open more than two.

      Fast Open is an experimental draft with security flaws and packet duplication problems.
      Fast Start hasn't taken off since it was demonstrated 15 years ago.
      CRIME also applied to plain old HTTPS. That's been fixed. HTTP 2.0 has different header compression than SPDY that is explicitly designed to counter this attack.
      see: http://tools.ietf.org/html/draft-rpeon-httpbis-header-compression-03

    51. Re: Worth the tradeoff.. by KingMotley · · Score: 1

      A missing packet in HTTP 1.1 (using keep-alive) will hold up all traffic to go over that connection because once all the data is transmitted, it has nothing more to send until the receiving application (the browser) receives it so it can request the next resource. This is not true for HTTP 2.0 because the next resource has already either been requested, and the browser can continue to request. TCP selective ACK will keep the connection flowing even with one missing packet (or a few).

    52. Re: Worth the tradeoff.. by viperidaenz · · Score: 1

      The application will not receive any data after the missing packet until is it received though. The TCP stack will queue the packets until it can deliver them in the correct order.

      HTTP 1.1 persistent connections allow multiple request to be sent without waiting for a response.
      In the packet loss scenario this makes 1.1 no different from 2.0

      RFC2616

      HTTP requests and responses can be pipelined on a connection.
                      Pipelining allows a client to make multiple requests without
                      waiting for each response, allowing a single TCP connection to
                      be used much more efficiently, with much lower elapsed time.

    53. Re: Worth the tradeoff.. by KingMotley · · Score: 1

      Pipelining allows

      Pipelining allows that, not persistant connections, and no browser supports pipelining. Partially because you can't efficiently use them because you don't know the size of the response, so you can't efficiently schedule requests over the 6 connections that way. You could have a bunch of your requests all stuck behind one very large response.

      HTTP 2.0 doesn't suffer the same way because all the data is going over a single connection.

    54. Re: Worth the tradeoff.. by viperidaenz · · Score: 1

      All I was saying is HTTP 2.0 does nothing to prevent missing packets from stalling the TCP connection.

      I'm all for HTTP 2.0, but there is no point promoting benefits that don't exist.

    55. Re: Worth the tradeoff.. by KingMotley · · Score: 1

      Yes, but it does. Google SPDY for performance tests between it and HTTP 1.1. Because you can't effectively pipeline requests over HTTP 1.1, that feature isn't used nor supported in any current browser, nor will it likely ever be. Without it, a dropped packet will stall the arrival of subsequent data to the application, which then stalls the next request, effectively stopping the connection until it receives the missing packet.

      HTTP 2.0 does not suffer from that (as much) because all the known needed resources have already been requested as soon as they become known that they will be needed. In addition, even the very first request can be sent in parallel if the server supports it.

      Here is an example of the later. You hit www.mysite.com. It page consists of 1 HTML file, 3 CSS files, 10 JavaScript files, and 25 images. You request the HTML file, and the very first packet is dropped. the client hasn't received the HTML yet, so it doesn't know about the other 38 files it needs. So not only is the HTML file stalled, but all 38 others aren't being requested.

      Now under HTTP 2.0, when you request the HTML file, it can anticipate you will need the other 38 files, and begin sending them to the client immediately. Sure, the application won't see them until the missing packet arrives, but as soon as the one packet is retransmitted, the application will receive all the data that was continuing to be sent after it all at once, and the connection never stalled.

      Scenario 2: the HTML file is sent ok, the browser parses it, and begins requesting the additional resources (first of all, this is flawed because you don't need the entire HTML to begin parsing, but I am keeping it simple). So additional resources are spread across the 6 connections to the server, and one of them has a packet dropped. The server finishes sending all the data for the resource (or it is "in flight") long before the missing packet is detected. Since the client application does not receive the data, it can not request additional resources to be sent over that connection. That connection is effectively stalled now until the missing packet is received, and the client is now only using 5 connections efficiently.

      Again, in HTTP 2.0, this doesn't have the same effect because it can request all 38 additional resources as soon as possible. The data is being sent to the client in parallel over the single connection.

      Does that help clear it up? If you want actual performance tests, google SPDY, and you will see that this method actually does improve performance significantly when packets are lost.

    56. Re: Worth the tradeoff.. by viperidaenz · · Score: 1

      The server could send all 38 resources at once, without the client requesting them.
      That of course makes all use of caching completely useless, wasting both time and bandwidth.

    57. Re:Worth the tradeoff.. by WaffleMonster · · Score: 1

      You shouldn't have several concurrent TCP connections to the same host. Most browsers won't open more than two.

      I disagree. I think you should have several concurrent connections to the same host to address HOL blocking over shitty links. With fast open the cost of doing this is cheaper.

      Fast Open is an experimental draft with security flaws and packet duplication problems.

      Most everything out of TCPM is experimental. HTTP 2.0 is also a draft so whats the difference? Fast open has been implemented.

      As for duplicate connection/transmit possibility on data processed before handshake this is fine for http as transactional systems have to be able to deal with condition of dropped TCP session during exchange or presentation failure after receipt. This does not introduce any new problems http did not already have to deal with anyway.

      TCP is a walking security issue so I'm left to guess what you are referring to. The cookie is stronger than existing id/syn protections. Any additional amplification or exhaustion attacks can be mitigated with hueristics like everything else.

      Fast Start hasn't taken off since it was demonstrated 15 years ago.

      Ditto for IPv6.

      CRIME also applied to plain old HTTPS. That's been fixed. HTTP 2.0 has different header compression than SPDY that is explicitly designed to counter this attack.

      What SPDY did was significantly more egregious than well known HTTPS information leakage vulnerabilities.

      As long as it is limited to formatting, deduplication and prebaked key dictionaries I'm all for it. Any use of compression on key values gives away information about contents of the encrypted channel.

    58. Re: Worth the tradeoff.. by Anonymous Coward · · Score: 0

      As for fast TCP opens, that won't help all that much in most circumstances because of the keep alive is already in use. It would definitely help some, at most 6xRTT, but in practice much less, probably 1-2xRTT.

      Keep-alives are short lived and do not work for dynamic content where content-length is not knowable a-priori.

      As for the packet loss issue, given enough data, selective ACK already solves that problem.

      There is an opportunity if TCP sessions are cheaper to establish and benefit from relevant related congestion feedback to evaporate all performance gains of HTTP 2.0.

    59. Re:Worth the tradeoff.. by viperidaenz · · Score: 1

      HTTP 1.1 recommends only two connections. Opening many wastes resources and increases network traffic.

      HTTP 2 is standards track - it is expected to become a standard.
      Fast Open is experimental - it is expected to be an experiment - it already has identified security flaws.
      That's the difference.

      The TCP fast open cookie can be captured by any router along the way. Once that cookie is stolen you can create requests and send an entire packet under the identity of the original sender - since data can be sent to the application on the SYN packet if the cookie matches the destination IP - which can be easily spoofed. TCP fixed that by requiring a 3-way handshake.

      That's why it is recommended fast open not be enabled by default and should be explicitly enabled on a per-port basis because the application needs to deal with packet duplication and sender identity. Two things TCP currently does. One of the main reasons for TCP is to deal with packet duplication.

  4. Does it improve coders? by Freshly+Exhumed · · Score: 4, Funny

    Can't wait to use the new 046102 047111 005113 tag!

    --
    I deny that I have not avoided attaining the opposite of that which I do not want.
    1. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      It will make sniffing and diagnosing problems that much harder. But I welcome my new binary overlords.....

    2. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      Don't you mean the 001100010010011110100001101101110011? 110110...

    3. Re:Does it improve coders? by binarylarry · · Score: 1

      This is HTTP not HTML.

      --
      Mod me down, my New Earth Global Warmingist friends!
    4. Re:Does it improve coders? by lazarith · · Score: 1

      If by "harder," you mean someone will need to re-code the sniffer program and the CPU will need to decode the traffic into human-readable format, then yes. But as far as the user/diagnoser is concerned, not really.

    5. Re:Does it improve coders? by ebh · · Score: 1

      OK, then the 046102 047111 005113 header.

    6. Re:Does it improve coders? by Tailhook · · Score: 3, Informative

      Whatever problems you imagine are already being suffered in the form of SPDY. HTTP/2.0 emerged from SPDY and SPDY is supported by popular clients including Chrome and Firefox which handle traffic from Google, Twitter and Facebook, all of whom are serving SPDY today.

      Wireshark has been picking apart SPDY for a couple years now. Developers see decomposed HTTP traffic in their browser consoles or HTTP APIs with little awareness of SPDY, so they rarely care.

      Bandwidth costs money. Those rare instances when someone has to bench-check an HTTP transaction using a raw TCP stream have a really low priority.

      --
      Maw! Fire up the karma burner!
    7. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      I can't wait to write REST api docs without the capability to simply log inboud requests and outbound response text content.
      Hmmm hours of pleasure ahead...

    8. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      Wait, this is a binary protocol. Base-2 not base-10...

      You mean the new 10100001 01110110 11000101 00100010 tag!

    9. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      whooooooosh1!!!!!!!!!

    10. Re:Does it improve coders? by Lispy · · Score: 3, Insightful

      It's posts like that, that make me feel like an utterly completely useless techguy. I know nothing about the modern web and I don't even know it.

    11. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      Oh, so basically, it's the 5 words that we're replacing with 5 characters instead. Whew, well that's a huge savings!

    12. Re:Does it improve coders? by nmb3000 · · Score: 1

      Can't wait to use the new 046102 047111 005113 tag!

      This would be funny if you were talking about HTTP instead of HTML, and if your "046102 047111 005113" were something contextually meaningful, like hexadecimal.

      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    13. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      HTTP, not HTML. HTTP does not deal with tags.

      And, no, binary protocols will not make anyone a better coder.

    14. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      whoooooooosh1!!!!!!!

    15. Re:Does it improve coders? by Anonymous Coward · · Score: 0

      whooooooooosh1!!!!

  5. SPDY by phizi0n · · Score: 1

    Isn't the HTTP 2.0 spec based on Google's SPDY protocol? It is basically just HTTP 1.1 but with header compression and the ability to either send or hint that extra files will be needed.

    1. Re:SPDY by viperidaenz · · Score: 1

      It also has multiple streams so different requests and responses can happen concurrently and out of order.

  6. SPDY? by PCM2 · · Score: 1

    I am not big on my networking protocols, but didn't the HTTP 2.0 group decide to base its work on Google's SPDY protocol? The two don't look the same to me, but some of the descriptions in this spec do look like reshuffled versions of the SPDY spec. What's the relationship between the two these days?

    --
    Breakfast served all day!
    1. Re:SPDY? by Shimbo · · Score: 2

      Draft 0 was SPDY. It's usually the way that standards evolve from one proposal; cut and shut standards don't often work out.

  7. Death to serialize! by Anonymous Coward · · Score: 0

    I see a world where layout is delivered as it is now, and HTTP 2.0 is used for back-end communications. Streaming in content or responding to interactivity, and just generally being used to apply state to our currently stateless world.

  8. It's really about multiplexing by Animats · · Score: 4, Interesting

    The big change is allowing multiplexing in one stream. It's a lot like how Flash multiplexes streams.

    1. Re:It's really about multiplexing by TitusC3v5 · · Score: 1

      If you're working with binary instead of text, you should probably give it different name. HyperTEXT transfer protocol will be poor choice given the new format.

      --
      And the masses cried out, "09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0!"
    2. Re:It's really about multiplexing by jandrese · · Score: 1

      But it is still transferring hypertext? HTML is HyperText Markup Language. Just because the headers are binary encoded doesn't change what it is transferring. Granted, these days it might be more accurate to call it the JavaScript Transfer Protocol, because there is generally more JS than HTML on your typical page.

      --

      I read the internet for the articles.
    3. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      It still transfers hypertext (HTML); it just does it compressed and multiplexed and encrypted.

    4. Re:It's really about multiplexing by Trepidity · · Score: 5, Interesting

      It reads almost like they reimplemented all of TCP inside of HTTP, complete with stream set-up and teardown, queuing, congestion control, etc. Why not just use... TCP to manage multiple streams?

    5. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Ultimately networks serialize everything to bits, so "text" has been a misnomer from the beginning. It should have been the HyperBit Transfer Protocol, or HBTP. Right?

      Actually HTTP/2.0 maintains the "text" nature of traditional HTTP. It provides multiplexing and pipelining so concurrent requests/responses can share a TCP connection without serializing and it simplifies and compresses headers. Ultimately, however, one can recover a given HTTP request/response such that it would appear compatible with legacy HTTP, although that isn't strictly true.

      So no, we need not wrap ourselves around the axle over the "text" portion of the name.

    6. Re:It's really about multiplexing by Anonymous Coward · · Score: 4, Funny

      You need something better to manage the streams.
      What would happen if the streams crossed?

    7. Re:It's really about multiplexing by kimvette · · Score: 5, Funny

      > What would happen if the streams crossed?

      Try to imagine all life as you know it stopping instantaneously and every molecule in your body exploding at the speed of light.

      --
      The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
    8. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      If meant to be used efficiently with IPV6 do I smell a truly parallel web environment? With technologies like River Trail emerging (the parallel JavaScript project) and WebCL this proposal could potentially change everything if it is adopted. This is so money and we don't even know it.

    9. Re:It's really about multiplexing by gl4ss · · Score: 1

      It reads almost like they reimplemented all of TCP inside of HTTP, complete with stream set-up and teardown, queuing, congestion control, etc. Why not just use... TCP to manage multiple streams?

      to fuck around with routers and get most bandwidth for _you_. for a little while anyways.

      --
      world was created 5 seconds before this post as it is.
    10. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      This really looks like its reimplementing TCP and SCTP. The later of which was designed to address specifically these needs on the transport level where it belongs. This would help with routing and head of line blocking issues, which this new HTTP protocol would run into with a single TCP connection. SCTP would have also been beneficial to other protocols, not just HTTP. I could see IRC or other chat clients using this, as well as video games and other clients where they can selectively have the OS help with packet order delivery etc. But Microsoft won't implement it for Windows because there's "no demand" so we're going to get stuck with this solution which won't help much.

      http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol

    11. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Because TCP is a little bit broken.
      It's also a lot easier to re implement some TCP functions on HTTP because HTTP daemons and clients are software. Much of the devices that deal with TCP are "hardware" and harder to change.

    12. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Why not just use... TCP to manage multiple streams?

      For the following reasons:
      1. Because they're the IETF's "HTTPbis Working Group". Count it a blessing they didn't implement a method for computing Pi in that behemoth of a spec.
      2. TCP is implemented in-hardware in multiple devices while HTTP is mostly a software thing. Just think IPV6 times 20. It should be done in TCP but changing that ain't gonna happen. Been tried a gazillion times over already.

      Besides, the IETF been pushing ridiculous standards no one bothered to read the specs of for the last three decades. If this is just one more of those, it won't change anything.

    13. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      They reimplemented SDPY, not TCP.

    14. Re:It's really about multiplexing by jeremyp · · Score: 1

      How has this not been modded up to +5 fucking hilarious?

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    15. Re:It's really about multiplexing by SpaceLifeForm · · Score: 1

      Maybe it is to make DPI easier.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    16. Re:It's really about multiplexing by Darinbob · · Score: 1

      It's a protocol for encapsulating hypertext, that does not mean it has to be hypertext itself.

    17. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      For one thing "another TCP stream" actually means "another SSL session" That's not cheap.

      As others have pointed out, new TCP sessions also will be affected by "slow start". TCP has to do a complicated dance to figure out how much bandwidth is available to it (well used to be simple, but now stacks using all sorts of heuristics to improve it) It's more efficient to have a single stream go through this process.

    18. Re:It's really about multiplexing by FireFury03 · · Score: 4, Funny

      It reads almost like they reimplemented all of TCP inside of HTTP, complete with stream set-up and teardown, queuing, congestion control, etc. Why not just use... TCP to manage multiple streams?

      They're reimplementing SCTP inside TCP. Probably because they know there isn't a hope in hell of convincing Microsoft to implement a protocol that practically every other OS has supported for years...

    19. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      1. Using many TCP connections circumvents congestion control.
      2. TCP requires a handshake for each connection, adding overhead.
      3. TCP slow start must be repeated for every connection, adding overhead.
      4. Really fixing any of these issues will take decades due to TCP's position at the bottom of the stack.

    20. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      You should think about things a little before jumping to cynicism. Using one TCP connection instead of many eases the load on routers, increases bandwidth fairness, and actually reduces throughput in many cases (it's one of the main reasons SPDY doesn't always perform better than HTTP).

    21. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      In that case you should watch out for swastikas on your forehead.

      Oh wait, you said streams... nevermind.

    22. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      ... or better, SCTP. Seems like a lot of unnecessary and reinvented complexity.

    23. Re:It's really about multiplexing by WaffleMonster · · Score: 1

      1. Using many TCP connections circumvents congestion control.

      If that were true TCP congestion control would be pointless wouldn't it... Many TCP connections is exactly what the Internet does 24x7.

      TCP requires a handshake for each connection, adding overhead

      http://en.wikipedia.org/wiki/TCP_Fast_Open

      TCP slow start must be repeated for every connection, adding overhead

      Did I mention fast open?
      http://en.wikipedia.org/wiki/TCP_Fast_Open

      Really fixing any of these issues will take decades due to TCP's position at the bottom of the stack.

      Oh nonsense these extensions are all fully backwards compatible and quite reasonable to implement. Vendors reap tangable value to all TCP applications not just web browsers by implemention.

    24. Re:It's really about multiplexing by bpkiwi · · Score: 1

      By implementing multiple streams over a single TCP connection you only pay the TCP set-up cost (slow start, MTU discovery, etc) once. If you break it out into multiple TCP connections then you incur that cost for each stream. Since all the streams are going to the same host, you might as well share the same TCP connection.

    25. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Total protonic reversal.

    26. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Maybe things would work themselves out by using UDP instead?

    27. Re:It's really about multiplexing by viperidaenz · · Score: 1

      TCP Fast Open is also in draft state.
      If you read the draft, the intended status is Experimental.
      HTTP 2.0 is "Standards Track"

      The "Experimental" designation typically denotes a specification that is part of some research or development effort. Such a specification is published for the general information of the Internet technical community and as an archival record of the work, subject only to editorial considerations and to verification that there has been adequate coordination with the standards process (see below). An Experimental specification may be the output of an organized Internet research effort (e.g., a Research Group of the IRTF), an IETF Working Group, or it may be an individual contribution.

    28. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      I like this plan. I'm excited to be a part of it.

    29. Re:It's really about multiplexing by Anonymous Coward · · Score: 0

      Ok. Then what?

    30. Re:It's really about multiplexing by Ash-Fox · · Score: 1

      This really looks like its reimplementing TCP and SCTP.

      It doesn't to me, it looks like it's a design intended to prevent the requirement of multiple connections to a server to enable parallelism, thus improving its use on existing TCP systems. TCP and SCTP don't do that. Reimplementing TCP and SCTP won't fix that on existing TCP systems.

      --
      Change is certain; progress is not obligatory.
    31. Re:It's really about multiplexing by swalve · · Score: 1

      Hypertext is what ends up on the screen. It's not just a wall of text, it is *hyper* text with links and shit. How it is delivered to the screen doesn't matter.

    32. Re:It's really about multiplexing by viperidaenz · · Score: 1

      Because TCP doesn't handle multiple streams. Opening many TCP connections makes its congestion control mechanism ineffective.

    33. Re:It's really about multiplexing by viperidaenz · · Score: 1

      So SCTP works natively on OSX?

    34. Re:It's really about multiplexing by Alarash · · Score: 1
      You can't change TCP because of the myriads of network equipments that implement it. It's too low (4) on the OSI layers to be changed without breaking a lot of stuff. It was a good idea from Google to make it layer 6, just below HTTP. TCP isn't broken, so let's not try to fix it.

      Also, HTTP 1.1's main problem is that it's sequential - you can't get the next resource unless the current one is done - and that is its main flaw (just like the main flaw of 1.0 was the one transaction per connection default behavior that Netscape patched and made its way to 1.1). HTTP 2.0 seems to fix that, so this is good.

  9. It's this simple by Anonymous Coward · · Score: 0

    Hey, Microsoft -- see what they did here? THAT'S how you make a radical update to a computer standard or interface without pissing off your users.

    Now admit you have to eat the whole crow, not just a nibble or two, and give us Win 8.2 or 9.0 that lets users banish Metro to the binary hell from which it crawled.

  10. Re:Binary protocol.. and what else? by gl4ss · · Score: 4, Informative

    It's nice to have a link to the draft. But couldn't we have just a little more "what's new" than it's binary? This is slashdot... Filled with highly techincal people. At least a rundown of the proposed changes would be very helpful in a discussion. The fact that they're proposing a binary protocol doesn't really matter to anyone besides anyone who wants to telnet to a port and read the protocol directly.

    from quick glance, multiple transfers and communications channels("streams" in the drafts lingo) can be put through the single connection, cutting tcp connection negotiations.

    --
    world was created 5 seconds before this post as it is.
  11. THIS IS A DRAFT, NOT HTTP 2.0 by Anonymous Coward · · Score: 5, Interesting

    This is FAR from a done deal. The binary/ASCII question is being hotly debated.

    1. Re:THIS IS A DRAFT, NOT HTTP 2.0 by Anonymous Coward · · Score: 0

      I have this feeling YOU PREFER 7BIT ASCII.

    2. Re:THIS IS A DRAFT, NOT HTTP 2.0 by Anonymous Coward · · Score: 0

      Can't blame people, after all, HTML5 is a moving target...

    3. Re:THIS IS A DRAFT, NOT HTTP 2.0 by multimediavt · · Score: 1

      This is FAR from a done deal. The binary/ASCII question is being hotly debated.

      I want to be on the counter-argument side of the debate for binary. Why? Explain to me the exact benefits of binary encoding over ascii. As one person noted above they performance gain estimates are in the 10 - 20 % range. Sure, great if you're a hosting company or iTunes but is that really enough of a savings for the amount of change needed to implement it for the rest of us? I need to look at this harder but if there aren't real world improvements of 50% or better, why bother? Seems like this might go the way of IPv6 implementation if the gains don't outweigh the cost of change.

    4. Re:THIS IS A DRAFT, NOT HTTP 2.0 by Nimey · · Score: 1

      Your mom does it with a 5-bit TTY.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    5. Re:THIS IS A DRAFT, NOT HTTP 2.0 by amorsen · · Score: 1

      I'm firmly in the ASCII camp, but I think the draft itself lays out the reasons pretty well. They want to do TCP over TCP, and that requires chunking the data into frames with individual headers. If those headers have to be in binary, the whole thing is unworkable. Just like TCP/IP itself would be unworkable if the headers had to be cleartext.

      --
      Finally! A year of moderation! Ready for 2019?
    6. Re:THIS IS A DRAFT, NOT HTTP 2.0 by gweihir · · Score: 1

      Good. I hope sense prevails and it is rejected. Doing binary makes everything more complicated, harder to debug, less flexible, etc. Development of anything that works with binary data is hugely complicated and expensive compared to human-readable ASCII. One of the main reasons HTTP was a success is it not being binary, so everybody could just look at it, test it out via telnet and immediately understand what it is about. Ignoring options is easy (just skip the line), etc. In short, a binary HTTP variant is a massive violation of KISS and that is always exceedingly stupid.

      Now, a transparent compression layer is something else, if it is number of transferred bits you are worried about, but any other binaryfication is just evil. And the gains will be minimal anyways and not worth it at all.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    7. Re:THIS IS A DRAFT, NOT HTTP 2.0 by gweihir · · Score: 1

      Doing TCP over TCP is pretty stupid and has failed in the past. Don't do it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:THIS IS A DRAFT, NOT HTTP 2.0 by amorsen · · Score: 1

      Fair enough. Do you prefer reinventing TCP over UDP? That's called QUIC and might have a chance. Or an entirely different IP protocol? That's called SCTP and it is from 2000; it is used only by phone companies.

      It annoys me that SCTP cannot get deployed, but it looks unlikely to change.

      --
      Finally! A year of moderation! Ready for 2019?
    9. Re:THIS IS A DRAFT, NOT HTTP 2.0 by gweihir · · Score: 1

      The problem with UDP is that many organizations have trouble dealing with UDP firewall rules (I don't quite understand why but have seen it several times), and that UDP is exceedingly TCP unfriendly. I know SCTP, but I don't think it is the solution either.

      No, if you require multiple connections, then use multiple connections. (Who would have thought of that....) Multiple TCP connections do not put additional load on the network, like the other alternatives do. They do not increase per-connection complexity. Sure, the server-side network stack has to be able to handle more connections, but so what? What you get as benefit is per-stream congestion handling (one of the reasons to never, ever tunnel TCP over TCP, it messes congestion handling up badly, more so if there are multiple TCP streams tunneled through one TCP connection...) and simplicity. Violations of KISS always fail eventually, but sometimes only after a lot of effort has been invested.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    10. Re:THIS IS A DRAFT, NOT HTTP 2.0 by amorsen · · Score: 1

      HTTP 2.0 handles its congestion control in a way that works with TCP. I am not sure what you mean by increasing the load on the network. Pure routers do not care if the packet is SCTP or QUIC or HTTP 2.0. Anything stateful hates dealing with lots of connections, so HTTP 2.0 wins there.

      You do not want per-stream congestion handling for data of the same priority. One steady TCP connection is significantly better at hitting optimum bandwidth than multiple competing connections, particularly when the competing ones come and go rapidly.

      --
      Finally! A year of moderation! Ready for 2019?
    11. Re:THIS IS A DRAFT, NOT HTTP 2.0 by Kielistic · · Score: 1

      Sure, great if you're a hosting company or iTunes but is that really enough of a savings for the amount of change needed to implement it for the rest of us?

      I'm not sure you quite understand what "the rest of us" means. "The rest of us" do not read HTTP headers (and even fewer do it without a tool that is converting it into a more readable format anyway). When browser makers boast a 5% speed up (source) then I would say yes 10%-20% is enough to warrant someone implementing it.

      Additionally- how do you think that plaintext gets transmitted?! Your tool is already converting from a binary protocol to a human readable format. Now it will be able to use less binary to convey the same information.

    12. Re:THIS IS A DRAFT, NOT HTTP 2.0 by viperidaenz · · Score: 1

      Its not really number of transferred bits that is the problem. HTTP already has support of content compression.

      If you need to request 10 resources, how do you make sure you get them in the quickest way possible, making sure the large or slow to generate content doesn't hold up the quick, static content?

      Currently you can only do that effectively by hosting on different servers, since browsers don't tend to open more than two concurrent HTTP connections to the same host - the should only open one.

    13. Re:THIS IS A DRAFT, NOT HTTP 2.0 by viperidaenz · · Score: 1

      Who said the headers have to be binary? Sure, they're compressed, but decompress them and they magically turn back in to plain text.

      The whole "scary binary" thing is completely abstracted from the applications on either side of the protocol.

      So why is TCP/IP unworkable with binary framing but another protocol is not?

    14. Re:THIS IS A DRAFT, NOT HTTP 2.0 by amorsen · · Score: 1

      Who said the headers have to be binary? Sure, they're compressed, but decompress them and they magically turn back in to plain text.

      You can call all binary protocols "compressed" if you prefer. That does not make them less annoying to deal with. However, I think it is incorrect to call something compression when it is a domain-specific binary encoding.

      So why is TCP/IP unworkable with binary framing but another protocol is not?

      TCP/IP uses binary framing and is obviously not unworkable. If you mean ASCII framing, it would be unworkable to put <PROTOCOL>TCP</PROTOCOL><PORT>80</PORT> into every packet, the overhead would just be too great. (And yes, XML is probably the least space-efficient encoding in existence, but anything ASCII would be too verbose)

      --
      Finally! A year of moderation! Ready for 2019?
    15. Re:THIS IS A DRAFT, NOT HTTP 2.0 by viperidaenz · · Score: 1

      Putting ASCII framing into HTTP 2.0 would be too verbose. Its no different from TCP in that respect.

  12. take me back to by mjwalshe · · Score: 4, Insightful

    the joys of debugging x.400 and reading a x.409 dump *NOT*

    Why is it that news Internet standards seem to want to go down the route that the OSI did -

    1. Re:take me back to by K.+S.+Kyosuke · · Score: 1

      I'd have thought that just because there are bad binary standards doesn't mean that all binary standards have to suck.

      --
      Ezekiel 23:20
    2. Re:take me back to by Anonymous Coward · · Score: 0

      ASN.1 is the solution

  13. New TCP by qbast · · Score: 2

    HTTP/2.0 defines stream multiplexing, framing, stream control, prioritizing - pretty much replicating TCP. What is the point of putting TCP-like protocol on top of TCP ?

    1. Re:New TCP by Anonymous Coward · · Score: 1

      TCP is purely bi-directional streaming. It doesn't have message framing, let alone the rest of that stuff.

    2. Re:New TCP by Anonymous Coward · · Score: 0

      Dude, I heard you like TCP so we put TCP inside your TCP.

    3. Re:New TCP by Crimey+McBiggles · · Score: 1

      Ok, valid point. Why not implement these changes at the transport layer then? I'd venture a guess it's the same reasons security was pushed to the application layer (SSL, SSH, etc). It irks me to see the open web being destroyed by governments, so this news makes me think it'd be easier to embed backdoors, going from plaintext to binary.

      --
      Crimey
    4. Re:New TCP by Anonymous Coward · · Score: 0

      You misspelled "Yo Dawg".

    5. Re:New TCP by Anonymous Coward · · Score: 0

      Does TCP make sense or SCTP?

    6. Re:New TCP by Anonymous Coward · · Score: 0

      to have it be tcp all the way down of course.

    7. Re:New TCP by bpkiwi · · Score: 1

      Because for HTTP you have multiple streams going to the same host, so you can share the TCP set-up costs across all of the streams. Starting multiple TCP connections to the same host would be slower.

    8. Re:New TCP by Anonymous Coward · · Score: 0

      Because everyone (lawmakers, courts, lawyers, etc.) must know that the Web IS the Internet?

      Might be a useful misconception, though.

    9. Re:New TCP by viperidaenz · · Score: 1

      Because the current usage of HTTP tends to create many TCP connections to the same host, killing the congestion control measures built in to TCP.
      It also gives the application developer a say in what part of their content should be prioritised.
      It provides a built in push notification mechanism, so TCP connections aren't wasted in long-polling AJAX requests.

    10. Re:New TCP by MobyDisk · · Score: 1

      Starting multiple TCP connections to the same host would be slower.

      Why? How is the connection setup in HTTP better than the one in TCP?

      TCP has been used and vetted for decades. It has survived creative hacks like SYN attacks for decades. I am highly suspect that HTTP can re-implement those features, in a higher layer, more efficiently.

    11. Re:New TCP by bpkiwi · · Score: 1

      TCP uses a mechanism called slow start. This starts out transmitting information at a slow rate, and gradually speeds up until it reaches the maximum the network can handle. For long-lived connections this is a really good approach, but for small requests such as a web page, it will probably transmit the entire file in the slow phase. If you then kill that TCP connection and start another for the next file, then the next file goes through the same slow start process.

      HTTP 1.1 will re-use a single TCP connection to receive multiple files one after another - but that is still slow since the server has to finish sending one file before getting told what the next file is, and then going and loading that file from storage into memory and prepping it for sending. It would be quicker if you could say 'send me the following 20 files' at the start, and then the server could keep busy by loading the next file while the first one is being sent.

    12. Re:New TCP by MobyDisk · · Score: 1

      Good summary. Thanks.
      I wonder if we should consider a change to TCP for the case of reconnections with the same source/dest?

  14. Port multiplier by tepples · · Score: 1

    At this point, some people will have the urge to rise and scream "Inner platform effect! Anti-pattern!" But consider that HTTP is like opening a separate port for every URL, so that you're no longer limited to having one instance of an application listen for connections.

    1. Re:Port multiplier by Anonymous Coward · · Score: 0

      A different port for every URL? Could you please explain?

    2. Re:Port multiplier by tepples · · Score: 4, Interesting

      With TCP, you need a separate port number for each service. For example, a Doom server runs on port 666, and an RDP server runs on port 3389. With Web Sockets, you can put all services behind one port and give each a separate path. For example, ws://example.com/doom lets a client open a Doom session, and ws://example.com/rdp lets a client open an RDP session. The advantage of using a path instead of a port number is that it can host a far larger number of services. For example, two users of a server could run game servers on ws://example.com/~WaffleMonster/doom and ws://example.com/~tepples/doom.

    3. Re:Port multiplier by Anonymous Coward · · Score: 0

      Big deal. You trade ports for paths. So frickin' what?

    4. Re:Port multiplier by Anonymous Coward · · Score: 0

      And? if your doom server supported multiple user servers on the same server then you could have them all on the same port.
      That is to say, it doesn't really make it possible to have multiple processes listen on the same port, so it's not really revolutionary. A standard that people adhered to might be revolutionary, so random users could spawn instances under their namespace on the websocket forwarder.

    5. Re:Port multiplier by aliquis · · Score: 1

      Doom?

      Port 27500 is the standard!

    6. Re:Port multiplier by Anonymous Coward · · Score: 0

      Numbers and funny characters like : are hard to use. Besides, it's not like there's any way to take directed requests and somehow ... change their direction ... or anything.

    7. Re:Port multiplier by Bengie · · Score: 1

      That only really works when the same Application is hosting/proxying all the services. You would need your web server to understand Doom, RDP, and web.

      Ports are separated at the system level, paths are separated at the application level.

    8. Re:Port multiplier by Anonymous Coward · · Score: 0

      Google "portmapper"-

      The real reason we can't use ports is because of firewalls.

      Firewalls break the mathematics of TCP/IP.

    9. Re:Port multiplier by Anonymous Coward · · Score: 0

      Meesa thinks 666 wassa joke.

    10. Re:Port multiplier by dgatwood · · Score: 1

      Port 666 UDP is officially registered to id Software for use in Doom.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    11. Re:Port multiplier by Anonymous Coward · · Score: 0

      News flash! This is the usual way to make service daemons. They use a listen() call to wait for connections on their well-know ports and then an accept() call once a connection request comes in. The connection is defined by the two endpoints: server at the well-known port and client at whatever port it got when it made its connect() call. An HTTP 1.1 server knows about the Host: header so it can service multiple domains and the URL can denote multiple users, just as your example.

      You still have a fixed server port number involved in the whole process. The URL distinguishes things at that port. You describe nothing new except a fancy new toolkit to get to it.

    12. Re:Port multiplier by tepples · · Score: 1

      The URL distinguishes things at that port. You describe nothing new except a fancy new toolkit to get to it.

      This "fancy new toolkit" allows more flexible control of the namespaces under which these services run, and it allows the services to coast through overzealous firewalls.

  15. Can someone describe in human terms by Anonymous Coward · · Score: 1

    How does this benefit anything? I was under the assumption that most http traffic is compressed (usually gzip I think,) so while the ability to read the http directly exists easily, most transmissions were already binary, at least for the payload. How does making the headers and stuff binary benefit us that much? We're talking what .... maybe 2% of the entire message being optimized?

    I'm an admin, not a app/web developer, so if someone knows, can you explain it in non-RFC terms that even those not familiar with the tech can understand?

    1. Re:Can someone describe in human terms by Intropy · · Score: 4, Funny

      Think of it like a car, but instead of wheels, frame and engine, it uses binary.

    2. Re:Can someone describe in human terms by omnichad · · Score: 3, Informative

      The payloads are already often gzipped - but it's one connection per one file most of the time. If you need images, CSS, Javascript, more tiny images, then those are all separate HTTP connections and on some servers, they are serially requested over one connection. Combine it into one connection, and you can parallelize the download process into one connection, prioritize HTML over resources, and only send cookies once instead of once per file.

    3. Re:Can someone describe in human terms by Overzeetop · · Score: 1

      Golf clap.

      --
      Is it just my observation, or are there way too many stupid people in the world?
    4. Re:Can someone describe in human terms by Anonymous Coward · · Score: 0

      Binary is sexist. It should use ternary as a minimum.

    5. Re:Can someone describe in human terms by Anonymous Coward · · Score: 1

      And when you get a flat tire, instead of replacing it with the spare, you have to call the dealer to send out their mechanic, at overtime rates.

    6. Re:Can someone describe in human terms by Anonymous Coward · · Score: 0

      Challenge accepted!

      The important thing to remember is: the web page is the *passenger*.

      Apparently http 1.0, the car, is currently an old Volvo station wagon. It is safe, reliable and easy to maintain.

      The new http 2.0 is a sort of Ferrari-pod-train-car, capable of going much faster, but all the important components are behind shiny carbon fibre panels. Maintenance is difficult and requires special tools.

    7. Re:Can someone describe in human terms by gweihir · · Score: 1

      There is basically no benefit over compression. On the other hand, parsing, debugging, sniffing gets so much harder. Any changes will require code changes. Stupid, stupid, stupid. And ignoring history.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  16. Avoids repeating TCP slow start by tepples · · Score: 1

    Application-level multiplexing avoids repeating TCP slow start when the user agent starts downloading additional resources in parallel, such as style sheet, script, and images, or when the user agent stops a download before it has finished.

    1. Re:Avoids repeating TCP slow start by Em+Adespoton · · Score: 1

      Application-level multiplexing avoids repeating TCP slow start when the user agent starts downloading additional resources in parallel, such as style sheet, script, and images, or when the user agent stops a download before it has finished.

      Maybe we need a Stylesheet Transfer Protocol and an Activescript Transfer Protocol. Then we can tie them all together using the Super Omni Awesome Protocol.

      It's probably a good thing that IETF is codifying a standard for all this, but it's not like there aren't already standards out there in use that would be just as efficient for solving these problems. SPDY is just one of them.

    2. Re:Avoids repeating TCP slow start by MaTee · · Score: 1

      Wouldn't it be better to use SCTP than to reinventing it at a higher layer?

    3. Re:Avoids repeating TCP slow start by Trepidity · · Score: 1

      Digging around, they do also seem to be working on a transport-level protocol with some of the main features of SPDY (fast multiplexed encrypted streams), called QUIC: http://en.wikipedia.org/wiki/QUIC

      That feels like a better solution than shoving it into HTTP. But I guess if they want quick adoption, it's a lot easier to upgrade the application layer than the transport layer. Especially if you're Google and control both ends of the application (several widely used servers and a widely used browser), but not the networking equipment in between. So I can see why, pragmatically, they would be pushing HTTP/2.0.

    4. Re:Avoids repeating TCP slow start by Anonymous Coward · · Score: 0

      Application-level multiplexing avoids repeating TCP slow start when the user agent starts downloading additional resources in parallel, such as style sheet, script, and images, or when the user agent stops a download before it has finished.

      So use SCTP: one connection, mutliple streams.

    5. Re:Avoids repeating TCP slow start by nmb3000 · · Score: 1

      Application-level multiplexing avoids repeating TCP slow start when the user agent starts downloading additional resources in parallel, such as style sheet, script, and images, or when the user agent stops a download before it has finished.

      That's what persistent connections in HTTP 1.1 are for. You know, that spec from 1999.

      --
      "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
      /)
    6. Re:Avoids repeating TCP slow start by amorsen · · Score: 1

      How many consumer NAT routers allow SCTP through? How many enterprise firewalls?

      Yes HTTP 2.0 is solving things at the wrong layer. Just like QUIC being UDP-encapsulated is completely backwards. However, such is life in the modern Internet. As IPv6 has shown, innovation on the basic protocol side is almost impossible, and anything new takes at least two decades to get minimal traction.

      --
      Finally! A year of moderation! Ready for 2019?
    7. Re:Avoids repeating TCP slow start by Animats · · Score: 1

      Remember when the CSS fanboys said CSS would reduce network traffic, because you'd already have the style sheet loaded?

  17. What a clustferfuck by l0ungeb0y · · Score: 3, Interesting

    Seems it's going binary to have EVERYTHING be a stream, with frame based communications, different types of frames denoting different types of data and your "web app" responsible for detecting and handling these different frames. Now I get that there's a lot of demand for something more than Web Socket, and I know that non-Adobe video streaming such as HLS are pathetic, but this strikes me as terrible.

    Really, why recraft HTTP instead of recrafting browsers? Why not get Web Socket nailed down? Is it really that hard for Google and Apple to compete with Adobe that instead of creating their own Streaming Media Services they need HTTP2.0 to force every server to be a streaming media server?

    Adobe's been sending live streams from user devices to internet services and binary based data communication via RTMP for several years, but HTML5 has yet to deliver on the bandied about "Device API" or whatever it's called this week even though HTML5 pundits have been bashing on Flash for years.

    So if Adobe is really that bad and Flash sucks that much, why are we re-inventing HTTP to do what Flash has been doing for years?
    Why can't these players like Apple and Google do this with their web browsers, or is it because none of these players really wants to work together because no one really trusts each other?

    At the end of the day, we all know it's all just one big clusterfuck of companies trying to get in on the market Adobe has with video and the only way to make this happen in a cross-platform way is to make it the new HTTP standard. So instead of a simple text based protocol, we will now be saddled with streaming services that really aren't suited to the relatively static text content that comprises the vast majority of web content.

    But who knows, maybe I'm totally wrong and we really do need every web page delivered over a binary stream in a format not too different from what we see with video.

    1. Re:What a clustferfuck by qbast · · Score: 1

      What is wrong with HLS? Definitely simplest adaptive streaming protocol to work with.

    2. Re:What a clustferfuck by Anonymous Coward · · Score: 0

      At the end of the day, we all know it's all just one big clusterfuck of companies trying to get in on the market Adobe has with video

      This reminds me of the bottled water industry (replace video with water). Considering water is typically... free.

      I agree, companies are now abusing the standards system/intent for their own benefit.

    3. Re:What a clustferfuck by Anonymous Coward · · Score: 0

      It's not that no one else can implement something like RTMP, it's that RTMP requires an entire separate infrastructure on both the client and server (and any intelligent middleware layers, like application delivery layers) and that's not always desirable. HTTP has limitations, but it also have incredibly widespread compatibility.

    4. Re:What a clustferfuck by Anonymous Coward · · Score: 0

      uuh Simple, yes, until you get into the many optional features : I frame pictures fast forward, multiaudio, http get byte ranges, audio only, optional subtitles (uuurg), the myriad of transcoding options to have the file switching not fuck up everything,...
      At that point, Smooth streaming does not look bad either and is quite standard - if MS was trusted to be open and .. not to change the format with proprietary ... ahem, sorry, keep going.

      However we will have DASH streaming eventually, which seem to be keeping all of the complexity of mpeg4 binary containers ... nothing is really simple it seems.

    5. Re:What a clustferfuck by viperidaenz · · Score: 1

      HTTP2 is not about streaming video. It's about streaming multiple requests over a single connection.

      A typical web app needs to know absolutely nothing about HTTP 2.0. It may choose to use the use server-push capability, but it is still effectively a request-response protocol exactly the same as HTTP 1.x.

      The only thing that needs changing is the browser and HTTP server. The applications that run on either side don't need changing.

      It's still HTTP.
      Its still a GET/POST/PUT/DELETE/HEAD request with headers, and maybe some data.
      You still get back the same response.

      It just so happens that the request and response and framed and streamed down a single TCP connection, instead of potentially many - which hinders the built in congestion control of TCP and is one of the reasons for the new protocol.

    6. Re:What a clustferfuck by The+End+Of+Days · · Score: 0

      Are you for real? How did this morass of misunderstanding get modded up?

  18. One small step... by folderol · · Score: 1

    One giant leap backwards :(

  19. Few ideas from me.... the queen of nevereverland! by Anonymous Coward · · Score: 0

    They should make HTML a binary format too and implement DRM to HTTP protocol....... That'll teach'em!

  20. Re:Binary protocol.. and what else? by Joce640k · · Score: 1

    from quick glance, multiple transfers and communications channels("streams" in the drafts lingo) can be put through the single connection, cutting tcp connection negotiations.

    HTTP 1.1 can already do multiple transfers, browsers are already doing "streams". I doubt the gains to be made from doing that in binary are going to be noticeable.

    --
    No sig today...
  21. Why Binary? by ArhcAngel · · Score: 2

    Why does it have to be Binary?

    That's so twentieth century.

    We should be using a Hexadecimal format!

    --
    "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    1. Re:Why Binary? by Anonymous Coward · · Score: 0

      Because, IIRC, the transportation layer and everything below that is also binary.

    2. Re:Why Binary? by White+Flame · · Score: 1

      Hex? No, it should use octal EBCDIC XML.

    3. Re:Why Binary? by Anonymous Coward · · Score: 0

      Pshaw, the twenty-first century is all about UCS-32.

    4. Re:Why Binary? by Anonymous Coward · · Score: 0

      010101110110111101101111011100110110100000100001

  22. Is it really stateful? by calzplace · · Score: 1

    One thing I've always wanted to see out of HTTP is a saved state between hits. 1 KB of headers in each frame isn't horrible, but the overhead of verifying an authentication cookie on every hit can be.

    Am I reading this right that in section 6.2, headers only happen at the beginning of a stream and do not happen on each individual request? That sure would make my life a little nicer!

  23. Re:Binary protocol.. and what else? by Anonymous Coward · · Score: 0

    It will be to those running large, hell, even medium sized sites.

    Every single bit counts when you multiply that bit by 10,000, 100,000, several million.
    Both in bandwidth and the servers actually managing it.

  24. Hyper TEXT by Jeremiah+Cornelius · · Score: 2, Interesting

    What part of the term "HyperTEXT" did the working group fail to understand?

    Really, outside of snooping/privacy discoveries, this is the SINGLE WORST piece of news I have seen in 15 + years on Slashdot. We could see this coming with the push for DRM in the HTTP spec. Here we watch the other shoe drop.

    "They" don't like this web. They are entrenched media and information companies, and the elite financial and political powers that rely on framing/controlling public information - while collecting rents for doing so.

    You think that your issues with security and control of your own platform are bad now? Wait til your browser is rejected by sites you need to do business with - because you won't parse HTML/HTTP 2.0. Linking this with crap like Intel TPM/TXT and you are well into Orwell Telescreen territory.

    "Optional"? Five years from now, we'll all see if you can get your driver's license, pay your phone bill or shop at Amazon without this one...

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
    1. Re:Hyper TEXT by nbsr · · Score: 0

      Text protocols are a guarantee of openness, just like precious metals are a guarantee of sound money. In theory, there is nothing wrong with binary protocols or fiat currencies, they may even be better performing or more convenient. But as we all know by now, promises "we will keep this protocol open" or "we will never print money out of thin air" are *always* broken.

    2. Re:Hyper TEXT by LordLimecat · · Score: 1

      Its a transfer protocol. I dont really care if TCP, or IPSec, or UDP, or SSH are particularly human readable. If I REALLY need to dig down that deep, I imagine there will be parsers (like wireshark, or Firebug 2.0) that will enable me to do that.

      There is zero reason we need the protocol to require additional parsing, rather than requiring it at the "debugger" end, other than convenience. And lets face it: The "wireshark scenario" represents the 0.01% of use cases.

    3. Re:Hyper TEXT by Anonymous Coward · · Score: 1

      Shut up retard. Just because it`s binary doesn't mean it's proprietary and full of DRM.

    4. Re:Hyper TEXT by oatworm · · Score: 0

      Contrary to popular myth, precious metals are not a guarantee of sound money. For starters, governments could - and did - routinely change the peg rate, which precious metals would back the currency, and plenty more. Also, even with a nominally precious metal-based currency, it was quite easy for governments to debase the currency, either by changing the alloy mix (when coinage was in use) or just by overprinting gold certificates (France did this just before the first Revolution; Germany tried this during World War 1). This doesn't even throw capital controls into the mix, or even local inflation, like what happened in California during the '49 Gold Rush.

    5. Re:Hyper TEXT by badboy_tw2002 · · Score: 2

      Holy moly how does your knee taste? I asked because that was a mighty jerk it just gave means you must be tasting skin.

      What DRM can you put in a binary protocol that you can't put in a text protocol. See those letters? Expressed in octets! Just because its not characters that form a language as we know it doesn't mean its not parsable as a language.

      Apologies if you were just doing some honest trolling.

    6. Re:Hyper TEXT by Jeremiah+Cornelius · · Score: 1

      Look at this in combination with the DRM proposal being rammed through W3C.

      How does Wireshark help you, when there's binary encrypted by keys you never had access to, and do not have the secrets to apply, if you did?

      You will be able to view the beginning and end of blobs, for which you have no idea of origin or content, other than header meta.

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    7. Re:Hyper TEXT by Anonymous Coward · · Score: 0

      What part of the term "HyperTEXT" did the working group fail to understand?

      The "hyper text" portion of the protocol name is referring to the type of content the protocol is designed to transfer (in this case hyper text ala HTML), and does not refer to the actual underpinnings of the protocol itself.

      So the protocol does not have to be text anymore than a granary car on a train needs to be made out of grain and not steel.

    8. Re:Hyper TEXT by LordLimecat · · Score: 1

      How does Wireshark help you, when there's binary encrypted by keys you never had access to, and do not have the secrets to apply, if you did?

      W3C deals with HTML, which is not the same as HTTP. I also dont think people are regularly trying to decode content streams (ie video) in wireshark, but if you were the presence or lack of DRM wouldnt be significant compared to the other challenges in doing so.

      The amount of hysteria in this thread is sadly standard for slashdot, but be comforted: Despite being "binary" since its inception, we still have the ability to decode TCP streams with great ease.

    9. Re:Hyper TEXT by Anonymous Coward · · Score: 0

      Text protocols are no guarantee of openness. They are slightly easier to backwards engineer, or at least to copy. But if you don't know what the limits of each field are, what fields are optional, which are needed, which are not being used in some cases, etc., you will run into problems and unintended consequences. There is no reason a binary format would be inherently any less open. As long as the spec is clear and open, than anyone could read the data. Being in binary doesn't make it easier or harder for some company to make proprietary extensions, as that could easily be done in a text format too.

      Regardless of my feelings toward switching HTTP to binary, the argument that it suddenly becomes less open protocol as a result is utterly ridiculous. You could argue it is less convenient for certain specific use cases, but to equate that as less open really misses the meaning of open. If you are going to attach random political hyperbole to it too, you might as well start arguing that freedom of speech means you have the right to demand to use anyone's printer of a whim.

    10. Re:Hyper TEXT by nbsr · · Score: 1

      "Peg rates", "certificates"? Pegging fiat currencies to precious metals is just like assuring that binary protocols will always be 1:1 convertible into equivalent text representations. Over the time, the ratio becomes 1:2, 1:5,..., 1:1000. It will, because there are no technical obstacles preventing that, and organizational ones are never effective (drugs, child porn and terrorism will justify about anything).

      And no, 1g of gold will always be worth 1g of gold. It my become diluted in new coins, or replaced with paper certificates. But your existing savings are as safe as you are.

    11. Re:Hyper TEXT by Jeremiah+Cornelius · · Score: 1

      Because content providers and "services" have proven SO trustworthy, over the past 15 years.

      I understand. Supply the arms - they will only use them for the good of our free market...

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    12. Re:Hyper TEXT by Jeremiah+Cornelius · · Score: 1

      List the number of IETF protocols for sockets communication that are binary.

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    13. Re:Hyper TEXT by maxwell+demon · · Score: 1

      Sure, because encrypted text will be so more easy to decrypt if you don't have the key ...

      --
      The Tao of math: The numbers you can count are not the real numbers.
    14. Re:Hyper TEXT by ArsonSmith · · Score: 1

      What is more open about a text based protocol and a binary based one? The RFC will explain what and how to parse either way. both will either be open or closed.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    15. Re:Hyper TEXT by Jeremiah+Cornelius · · Score: 1

      I think you reinforce my assertion, rather than challenge it.

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    16. Re:Hyper TEXT by Anonymous Coward · · Score: 0

      You have failed to address any of the comments made in the post your replied to. Specifically, your initial assertion about "hyper text" in the protocol name somehow requiring that the protocol itself be text based even though the name is referring to the content of the protocol.

      It is ok to admit when you are wrong, trying to redirect the conversation to cover your mistake is just immature.

    17. Re:Hyper TEXT by nbsr · · Score: 2

      I agree with you that it is technically possible to define a text format that is more obfuscated than the binary one. Yet, it almost never happens.

      Text formats are designed to be open and humanly readable (that's why they are *text* formats). This encourages writing multiple implementations of parsers and formatters, often partial or ad-hoc ones (perl one-liners etc). At some point the critical mass is reached and no one, not even the original author, can fiddle with the format, effectively preventing any embrace, extend, extinguish efforts.

      Binary generally do not generally reach this level of standardization. On purpose - people want to control the format and the handful of its implementations. There are some exceptions, like TCP or IPv4, (which BTW proves your point that a binary format *can* be open) but they are considered a failure in terms of extensibility specifically because they escaped the control.

      Finally, in case of HTTP there is exactly *zero* benefit from switching to binary representation. Bandwidth utilization is negligible and has never been smaller, parsing has to be robust to errors for security reasons so you cannot save much processing power either. These things were important in early 1990s (yet we chose to communicate in plain text anyway) but not now. The only place where HTTP could be improved is latency as it scales slower than network bandwidth but that has nothing to do with the format.

    18. Re:Hyper TEXT by brantondaveperson · · Score: 1

      ...precious metals are not a guarantee of sound money...

      No, they certainly aren't. It certainly didn't help the Spanish when the Conquistadors went off and found massive quantities of silver, brought it home, and got all surprised when instead of becoming filthy rich they instead caused massive inflation. The money supply does need to be controlled by something less arbitrary that the current amount of some element in circulation.

    19. Re:Hyper TEXT by brantondaveperson · · Score: 1

      assuring that binary protocols will always be 1:1 convertible into equivalent text representations.

      Under what circumstances can a binary protocol not be converted in an equivalent text representation? Is there something magic about binary that text cannot capture?

      1g of gold will always be worth 1g of gold

      Yes, and about as useful. The problem comes when you turn your gold savings into something more useful to you, like food, and discover that your neighbour dug a big hole in the ground - found a whole bunch of gold - and now you can barely afford a snickers bar.

    20. Re:Hyper TEXT by nbsr · · Score: 1

      The first has to remain compatible with millions of LOCs like:
      s.write('GET / HTTP/1.0\n\n')
      which in practice prevents anyone (good willed or not) from extending the format in an incompatible way.

      The other one can be arbitrarily extended by upgrading libhttp.2.so and a handful of other most commonly used implementations.

      The second option is tempting if you want more control over the specification. Which raises the question: why would anyone need or want to change HTTP2 once it is deployed? Or, will IETF turn evil once they get power in their hands?

    21. Re:Hyper TEXT by Anonymous Coward · · Score: 0

      I have no idea how you can be so stupid and not realize it. Surely you're a troll bot?

      Whether the protocol is binary or not, there will be a specification available. This is what you would refer to to know exactly which part of the HTTP stream is your DRM content and which part isn't.

    22. Re:Hyper TEXT by WillKemp · · Score: 2

      What part of the term "HyperTEXT" did the working group fail to understand?

      HyperText Transfer Protocol = a protocol for transferring hypertext. The protocol is not the hypertext - documents marked up with HyperText Markup Language are the hypertext. The protocol is just used for transferring them.

    23. Re:Hyper TEXT by nbsr · · Score: 1

      Does supply of precious metals vary? Sure. Can it be ramped up 1000x, 1000000x or 1000000000x as easily as typing this line? Hell no!

      Guys, you are of course right that there is no black and white choice here. Gold is only an approximation of a commodity with a stable price and therefore it can be used as money. Binary formats can be specified as clearly as text ones. But then, the *scale* is what sometimes makes all the difference.

    24. Re:Hyper TEXT by makapuf · · Score: 1

      aah if I had a bitcoin for every non bitcoin-hijacked thread I saw ... crap.

    25. Re:Hyper TEXT by EvanED · · Score: 1

      I agree with you that it is technically possible to define a text format that is more obfuscated than the binary one. Yet, it almost never happens.

      That's correlation, not causation.

      When's the last time you've seen someone complain that an ELF header is specified as

      typedef struct {
              unsigned char e_ident[EI_NIDENT];
              Elf32_Half e_type;
              Elf32_Half e_machine;
      ...
      } Elf32_Ehdr;

      instead of looking like

      ELF
      64 BIT ARCHITECTURE
      STANDALONE EXECUTABLE
      INTEL 80386
      4 SECTIONS
        OFFSET 0x2000
        OFFSET 0x4210
        OFFSET 0x4400
        OFFSET 0x5120

      or something like that?

      When's the last time you heard someone complain about the gzip header being binary instead of text? (Header, not actual payload.) Any other compression formats?

      Heck, what about binary formats themselves? You have to use assemblers and disassemblers to deal with machine code; that certainly hasn't hurt their adoption. (Yes, of course there are reasons why a human-readable executable format wouldn't be practical -- for instance, the memory density would be too low, and it matters -- but it's still a binary format for which there are plenty of tools. And there's no technical reason why it couldn't be done, at least after macros are expanded and addresses patched in. That would still leave the executable format human-readable)

      On the text side, you have things like XML formats which, while technically text, are still essentially completely opaque. So not only are there widely- and well-accepted open binary formats, but there are essentially-closed text formats. (Compare Impress's support of the binary PPT file vs the "text" PPTX file for instance, and see how much better the former is than the latter. Don't know what the story is with Writer/DOC/DOCX.)

      You talk about how safety arises when there is a critical mass of adoption that resists embrace/extend/extinguish. And maybe 10 years ago I would have agreed that there was a danger of someone like MS pulling an embrace/extend/extinguish, but I think that no one has that clout to do it now. Possibly not even any two companies in collusion; you may need Google + MS + Apple. (Leave out Apple and you leave out a ton of mobile. Leave out Google and you leave out Chrome and, well, Google. Leave out MS and you leave out IE on Windows.)

      We're talking about a format for something that even hardcore computer nerds rarely deal with; it's not something like HTML where every so often you might get an urge to scrape something from a web page or something like that.

      Despite what you argue, I disagree that there's any real reason why a binary HTTP 2.0 would be any more or less likely to be co-opted than a textual format. Really I think the main reason to worry -- and it's a minor one until they release a spec -- is what it suggests of the mindset of the people working on it. But again, that's correlative rather than causative.

      Finally, in case of HTTP there is exactly *zero* benefit from switching to binary representation. ...The only place where HTTP could be improved is latency as it scales slower than network bandwidth but that has nothing to do with the format.

      I suspect it's more the fact that they were working on 2.0 anyway because of other reasons (e.g. multiplexing connections to improve latency, which I don't know enough about to contrast with the existing approaches), and just decided benefits of the binary format -- "tiny" is nonzero -- outweigh the (IMO) small cost.

    26. Re:Hyper TEXT by EvanED · · Score: 1

      Heck, what about binary formats themselves?

      Shoot, meant to say "what about the actual machine code formats themselves".

    27. Re:Hyper TEXT by Goaway · · Score: 1

      This is the most ridiculous thing I have read all week.

    28. Re: Hyper TEXT by Anonymous Coward · · Score: 0

      Lol! How cute that you seem to think that plain-text is some sort of protection against DRM...more amusingly, you speak of intel DRM and websites as if its some functionality that doesnt already exist; pro-tip all of your iX processors/sandy bridge/etc line of products can already stream HDMI from a webpage directly to your box without you being able to mitm it.

    29. Re:Hyper TEXT by Lisias · · Score: 1

      What part of the term "HyperTEXT" did the working group fail to understand?

      What part of the Stack Protocols you failed to understand?

      That "HyperText" thing is about the content, not transmission protocol!

      FTP is using binary protocols for years, nothing bad happens. Heck, Minitel used binary protocols for decades - nobody died.

      You know, there's a thing called "compiler" to convert your hand made text representations to binary ones. Better yet, there's a thing called "decompiler" that can do the inverse: parsing is something that is done with *data*, being text or not.

      May I sugest as an exercise for the reader to write a GIF89a header parser? ;-)

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    30. Re:Hyper TEXT by Anonymous Coward · · Score: 0

      Nobody is reinforcing any of your assertions because they're completely dumb.

    31. Re: Hyper TEXT by Jeremiah+Cornelius · · Score: 1

      Were you even born, in the Eightys?

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
  25. it's on GITHUB ! by Anonymous Coward · · Score: 0

    https://github.com/http2/http2-spec

  26. Rationale by hebcal · · Score: 5, Informative

    The rationale for http-2.0 is available in the http-bis charter. Quoting the spec:...

    As part of the HTTP/2.0 work, the following issues are explicitly called out for consideration:

    • * A negotiation mechanism that is capable of not only choosing between HTTP/1.x and HTTP/2.x, but also for bindings of HTTP URLs to other transports (for example).
    • * Header compression (which may encompass header encoding or tokenisation)
    • * Server push (which may encompass pull or other techniques)

    It is expected that HTTP/2.0 will:

    • * Substantially and measurably improve end-user perceived latency in most cases, over HTTP/1.1 using TCP.
    • * Address the "head of line blocking" problem in HTTP.
    • * Not require multiple connections to a server to enable parallelism, thus improving its use of TCP, especially regarding congestion control.
    • * Retain the semantics of HTTP/1.1, leveraging existing documentation (see above), including (but not limited to) HTTP methods, status codes, URIs, and where appropriate, header fields.
    • * Clearly define how HTTP/2.0 interacts with HTTP/1.x, especially in intermediaries (both 2->1 and 1->2).
    • * Clearly identify any new extensibility points and policy for their appropriate use.
  27. Re:Binary protocol.. and what else? by tom17 · · Score: 1

    I remember reading about this a while ago when I discovered SPDY, and from what I understood is that in SPDY/HTTP2.0, the multiple transfers can be multiplexed. So rather than Connection A requesting resource 1 and then requesting resource 2 etc, it could theoretically request 'all resources I need to render this page above the fold' or something. Then those resources come down simultaneously. When the last one is finished, the page can display.

    This would definitely save some overhead for re-requesting resources in the same connection.

    Sure, you could help currently by inlining as much as you can and using CSS sprites to reduce image resource requests, but this way would keep things more modular/separated...

  28. ( ASCII | UTF8 ) == BINARY # too by Anonymous Coward · · Score: 0

    You are aware that ASCII and even more so UTF-8 is a binary protocol too?

    They encode your bitmaps or vector graphic images into binary codes.

    The codecs just so happen to be nearly automagically built into nearly everything.

    I always wanted to see that been done to EMBL, so that you have a custom UTF-8 table that maps to tags instead of characters, and ebml uses the binary UTF-8 codes as tags. Any editor would simply decode/encode it to/from XML, and it would be just as transparent as UTF-8 or ASCII.

  29. Misread headline as 'Brony Protocol'. by Remus+Shepherd · · Score: 0

    I totally misread that headline as saying HTTP 2.0 would be a Brony Protocol. And I was okay with that. At last, a functioning <rainbow_dash> tag. Support for Alicorn transformations. Working CSS elements (of Harmony). Yes, this would be a useful advance.

    --
    Genocide Man -- Life is funny. Death is funnier. Mass murder can be hilarious.
  30. unsolicited - I don't like the sound of it by Anonymous Coward · · Score: 0

    Unsolicited server push could be great to get status updates from the server to the client, but will probably only be used to force even more ads down your throat.

  31. telnet by Anonymous Coward · · Score: 0

    This is why humans read the protocol directly, instead of say, using a protocol analyzer software like wireshark,.... oh wait

    I do both.

    Sometimes it's nice to be able to do a 'telnet foo 80' or 'openssl s_client -connect foo:443'.

    1. Re:telnet by Asgard · · Score: 2

      Exactly. It is useful to be able to demonstrate that a given request/response occurs with minimal interference. Otherwise there is always questions as to whether FireFox or Curl is sending a request 'differently' somehow; being able to show that a given behavior is reproducible with a request issued over least-common-denominator telnet is inarguable.

      Additionally, telnet is nearly ubiquitous while protocol analyzers are much harder to find, plus are often forbidden on desktops in large corporate environments as a security issue either due to their sniffing capability or for innate vulnerabilities.

    2. Re:telnet by Anonymous Coward · · Score: 0

      Yes, it's nice to have human readable protocols like SSL.

  32. Focus on what matters by mstefanro · · Score: 3, Insightful

    Why won't they focus on what really matters? HTTP is still missing sane authentication techniques. Almost all websites require users to log in, so it should be a priority that a log in mechanism be supported in HTTP as opposed to being the responsibility of every web developer individually (don't you dare mention HTTP Basic Authentication). Relying on cookies alone to provide authentication is a joke. Not all websites afford to buy certificates or the performance penalty of HTTPS and security over HTTP is practically non-existent.

    The HTTP protocol is very primitive and it has not evolved on par with the evolution of cryptography and security. A lot better privacy, confidentiality, authentication can be obtained with very little cost. Because most websites allow you to log in, the server and the client share a common piece of information that a third party does not, namely the client's password (or some digest of that). Because of this shared information, it should be far easier to provide security over HTTP (at least for existing users). I find it laughable that we still rely on a piece of fixed string sent as plain-text (the session cookie) to identify ourselves. Far better mechanisms exist (besides the expensive HTTPS) to guarantee some security, and it should not be the responsibility of the web developer to implement these mechanisms.

    At the very least, HTTP 2.0 should support password-authenticated key agreement and client authentication using certificates.

    While signing up can still be problematic in terms of security, logging in need not be. There's a huge difference between being exposed once and being exposed every time. If there was no Eve to monitor your registration on the website, then there should be no Eve that can harm you any longer. You have already managed to share some secret information with the server, there is no reason to expose yourself every time you log in by sending your password in plain text and then sending a session in plaintext every time you make a request. That is, a session which can be used by anyone.

    While it may be acceptable for HTTP1.1 to not address such security concerns, I would find it disturbing for HTTP2.0 not to address them either.
    To get an intuitive idea on how easy it can be to have "safer proofs" that you are indeed logged in, consider the following scenario: you have registered to the website without an attacker interfering; you would like to log-in, so you perform an EKE with the server and you now have a shared secret; every time you send a request to that website, you send some cookie _authenticated = sha2(shared_key || incremental_request_number). Obviously, even if Eve sees that cookie, it cannot authenticate itself in the next request, because it does not know the shared_key and thus cannot compute the "next hash".
    This is just an example proof-of-concept technique to get an idea on how much better we can do. Many other cheap techniques can be employed. This one has the overhead of only one hash computation.

    Given that HTTP is a tremendously used protocol, it does make sense to make it as space-efficient as possible, being responsible for a large portion of the bandwidth. I do believe it matters on a large scale. However, given the arguments above, this should not be their priority.

    1. Re:Focus on what matters by viperidaenz · · Score: 1

      HTTPS should be mandatory for any sort of 'authentication'.

      Any form of authentication over plain-text is useless. Not only is it easily intercepted, it is commonly intercepted by proxies all the time.

      Authentication requires trust.

      What exactly is wrong with HTTP Basic over SSL?

    2. Re:Focus on what matters by mstefanro · · Score: 1

      As I said, HTTPS cannot be deployed everywhere because it is expensive: you have to buy certificates and extra computational power.

      "Any form of authentication over plain-text is useless"
      There was not a single mention of authentication over plain-text in my post. Read about EKE (Encrypted Key Exchange) and client-side certificates.

      "What exactly is wrong with HTTP Basic over SSL?"
      Nothing. I was specifically discussing authentication when HTTPS is not available. Do not forget that HTTP is still the default protocol in your address bar, so going to www.google.com will not access it via HTTPS, but HTTP. Google is nice enough to redirect you to its HTTPS version, but Eve can easily prevent that redirect. Technically illiterate Joe cannot be expected to manually prefix with "https://" or use an addon such as "HTTPS everywhere".

      It is clear to me that you have missed the whole point of my post. I was discussing the necessity of addressing some security concerns in HTTP2.0 related to authentication. I have pointed out that there are good ways of doing so and you have not provided a single counter-argument to my claim.

    3. Re:Focus on what matters by Ash-Fox · · Score: 1

      don't you dare mention HTTP Basic Authentication

      Digest, NTLM, NTLM2.

      --
      Change is certain; progress is not obligatory.
    4. Re:Focus on what matters by viperidaenz · · Score: 1

      You implied plain text after your declaration that SSL is too expensive due to signed certificates. You ruled out public key encryption completely.
      EKE requires a public key. You always need some way to verify the identity of the other end.

      There is no good reason to roll another encryption and trust system into HTTP when SSL/TLS work perfectly fine with it.
      Its a transport protocol, not a security one.

    5. Re:Focus on what matters by paxcoder · · Score: 1

      This is different from cookie-based authentication only in that it would be standardized.

    6. Re:Focus on what matters by paxcoder · · Score: 1

      This differs from cookie-based authentication only in that it is standardized.

  33. lose lose! by Anonymous Coward · · Score: 0

    A binary HTTP protocol would be a total loss. The Internet was built on easy-to-parse text, and languages like Perl. That was the magic that make it work, easy to manipulate and eyeball read text. Sure, you can write some sort of client to debug HTTP sessions, but you can't extend the web in ways no one ever though of before with a quick script - you have to write some low-level library to convert the stream first. Just an impediment to progress. Why not use VSAM files over HTTP for efficiency? Binary files have always been a total loss.

  34. it's compressed anyway by stenvar · · Score: 1

    I think it is stupid. Anywhere it matters, the data is compressed anyway. Binary encodings actually probably tend to hurt rather than help compression.

    1. Re:it's compressed anyway by viperidaenz · · Score: 1

      Header compression.
      The binary encoding is just to frame the streams.

  35. That's not its major malfunction these days by Anonymous Coward · · Score: 0

    It may be slow to parse and bloated, but that doesn't compare to the crap it's transporting. How many attempts at remote procedure calling does it host these days? Then there's the "too many connections" problem, because too few actually use keep-alive, and even if you solve that, these days that actually doesn't solve much of anything any longer, since too many hosts are involved to serve up even a single "thing". Such as trackers, ad servers, cdns, social button servers, social mugshot collection servers, maybe some static content servers, flash hosts, picture hosts, css generators, app support, javascript, possibly some data, the local pingback, what have you... and oh yes, maybe some actual content.

    Just look how much data twitter.com serves up to show you one "tweet", a message of up to 140 characters, and alright, a username and a timestamp. Hint: It doesn't work at all without javascript enabled in your browser. But go ahead and count the total amount of traffic needed for just one such a thing.

    Once we're beyond the facts of the whole thing being an unorganized jumble (the cloud in the cloud, if you will) needing to transport much, much more traffic than actual payload, there's that the formats used are widely disparate and... oh yes, slow to parse.

    Of course, servers don't care for that part. Actually, yes they do, since they generally generate that on the fly these days. Using a variety of scripting languages, including this generation's platinum visual basic with diamonds on top, PHP.

    So in the big picture, I have a hard time seeing how this will actually help much of anything. But hey, at least someone's trying, right? Just like the W3C keeps on trying to standardise, which in and of itself would be a rather spiffy idea. *sigh*

  36. HTTP is becoming binary because by Anonymous Coward · · Score: 0

    It is the default mechanism for bypassing firewalls. It is becoming a replacement for tcp/ip. Historically you would simply have opened connections on other ports but that's obviously excruciatingly painful in a firewalled environment.

    Ironically the firewalls are put in to improve security... Perhaps we should be looking at other security mechanisms instead.

    http://web.mit.edu/kerberos/firewalls.html

    1. Re:HTTP is becoming binary because by 0123456 · · Score: 1

      It is the default mechanism for bypassing firewalls. It is becoming a replacement for tcp/ip. Historically you would simply have opened connections on other ports but that's obviously excruciatingly painful in a firewalled environment.

      So, pretty soon firewalls will be either blocking port 80, or performing packet inspection and ripping out streams they don't like.

      Guess it will keep the firewall developers busy.

    2. Re:HTTP is becoming binary because by FireFury03 · · Score: 1

      It is the default mechanism for bypassing firewalls. It is becoming a replacement for tcp/ip. Historically you would simply have opened connections on other ports but that's obviously excruciatingly painful in a firewalled environment.

      So, pretty soon firewalls will be either blocking port 80, or performing packet inspection and ripping out streams they don't like.

      Guess it will keep the firewall developers busy.

      Already doing that... Everything hijacking HTTP/HTTPS is turning out to be an almighty pain in the arse for sites that need to filter their web access (e.g. schools). As an example, we have Skype, which either requires the ability to make connections on port 443 to arbitrary IP addresses, or requires the firewall to ahve *all* unprivalidged ports open... Great design. (Yeah, I've got customers who want to use Skype but want to restrict web accesses to a walled garden - you can imagine how well that doesn't work.)

  37. pushing painted pixels by mostadorthsander · · Score: 1

    multiplexing like a intelligent switch would be great for programming designers...

  38. Hamburgers by Ungrounded+Lightning · · Score: 1

    And if you're going to complain that "hamburgers" must be beef... I'm going to argue they should be "ham."

    Nope. A hamburger sandwich should be a sandwich made out of people from Hamburg Germany. B-)

    --
    Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  39. Learn Wireshark by Beeftopia · · Score: 1

    Looks like we're going to have a lot more Wireshark users :)

  40. Re:Binary protocol.. and what else? by FireFury03 · · Score: 1

    from quick glance, multiple transfers and communications channels("streams" in the drafts lingo) can be put through the single connection, cutting tcp connection negotiations.

    So, errm SCTP then...

  41. You have it exactly reversed by Anonymous Coward · · Score: 0

    The using-multiple-connections approach was arguably a hack to get more bandwidth. SPDY (i.e. HTTP/2.0) fixes this. A single stream will go through the process of bandwidth sizing once. It should be more fair, not less.

  42. Would be binary... by cdl · · Score: 1

    Slight correction here, The current Internet Draft that is sighted is not a standard yet (i.e. not an RFC). IF this draft is accepted by the IETF, and published as an RFC, then HTTP 2.0 would be a binary protocol. Since the Internet Draft is a working group draft, it will most likely advance and become an RFC standard, but that is not an automatic process.

  43. Sing it with me by justthinkit · · Score: 2

    Embrace...Extend...Extinguish.

    --
    I come here for the love
  44. I could tell you a joke about UDP..... by yuje · · Score: 1

    but you might not get it.

  45. Text based HTTP debugging by CadentOrange · · Score: 1

    There seems to be a lot of posters on Slashdot who do not get just how useful it is that HTTP is text based. I rarely ever need to look at the raw TCP dumps. With the prevalence of REST APIs these days, viewing TCP dumps is overkill. You could argue that REST is a fad and we should all go back to binary RPC protocols, but HTTP is very nice because it allows you to debug so easily. Other posters have mentioned this ease of debugging only to be countered by the binary is just as easy crowd, so I'll go further and provide a worked example.

    I use the following code snippet to debug HTTP. It's not the best example of code, but I use it regularly and it works. With it, I can write up the HTTP request in any text editor and shove it up the network and have the response printed out to console for inspection. An example of a HTTP request is like so. This returns a response that's human readable.

    It's all nice and human readable. Could I do the same with a raw TCP frame? Sure. I could download it to disk and fire up some viewer like wireshark. Text is far more convenient as I could view it right in my terminal.

    1. Re:Text based HTTP debugging by LordLimecat · · Score: 1

      I maybe wasnt being clear. When you use wireshark, you arent looking at the "raw binary", youre looking at data that has been heavily parsed and formatted to make it readable. You can still view the binary if you wish, but theres no real issue with troubleshooting because TCP is a well defined standard and it is simple to have a program interpret the binary in a way that is readable.

      Likewise, right now If I looked at the HTTP headers (captured thru wireshark or whatever) they are human readable. But theres really very little difference whether its "readable in the raw", or whether my capture tool (be it wireshark, or a browser plugin) interprets the binary data. Either way, there is no realistic scenario where you would have to piece together what the headers are from binary data; there will be tools to do that, and they will probably be built into whatever tool you are using (firebug, liveheaders, etc).

      In other words, the header may be binary, but you will still see something like
      action: Get
      Host: 192.168.1.1
      Content: index.html

      What the underlying format is doesnt really matter that much unless you are fanatically committed to doing all of your testing with telnet-to-port-80.

  46. Re-inventing the wheel, with a flat tire by davecb · · Score: 5, Insightful

    Unix, when it was new, was radical in that everything was in ordinary ascii text files. Everyone else "knew" that you had to work in binary, have binary config databases, binary file systems with dozens of record type and so on. With each binary format you had to provide a binary editor and/or debugger. If something broke, you needed a high priest of that particular religion just to debug it, much less fix it.

    Note how many Unixes you see for each machine running GCOS or PRIMOS. Of all the machines of the day that still exist, note that most z/OS files are simple EBCDIC. Over time, that square wheel quietly went away.

    When the PC came along, application designers once again started doing everything in binary, plus the occasional DOS text file. If something broke, you needed to go back to the vendor, because programs didn't come with binary editors. Or you could get a high priest of a particular order to take it apart in a debugger.

    And, just to add injury to insult, a 64-bit binary floating point zero is four times the length of an ascii zero followed by a space or newline. Spreadsheet files in binary were ~ 4 times larger that the ones in DOS text my company used (;-)) Turns out spreadsheet files are mostly empty, or mostly contain zeros.

    Over time, lots of config files and data files became ascii or UTF-8, and a huge number fo data files became html or xml text files. And that square wheel went away.

    Let a hypertext file be a sequence of bytes, separated by newline characters. Let the text be a sequence of bytes, optionally using multiple bytes per character, as in UTF-8.

    Verily I say unto you, let it be simple, lest it be stupid. Round wheels are better than square, or ones that are just flat on one side

    --dave

    --
    davecb@spamcop.net
    1. Re:Re-inventing the wheel, with a flat tire by EvanED · · Score: 1

      And, just to add injury to insult, a 64-bit binary floating point zero is four times the length of an ascii zero followed by a space or newline.

      Of course the flip side of that is that "100\n" is four times longer than 0x64.

      And not only that, but if you aren't interested in the value of that field, in the text format you have to parse it anyway to find the end.

      There are cases where text is more efficient (e.g. your spreadsheet example), but I would guess that, on balance, it goes the other way more of the time.

    2. Re:Re-inventing the wheel, with a flat tire by Anonymous Coward · · Score: 0

      Firstly, you're wrong, because you can use various variable-length-encodings for encoding numbers, in which case a binary zero is shorter than a "0 " ascii, string.

      Secondly, in modern network applications, parsing overhead is becoming more of a bottleneck than bandwidth, so it makes a lot of sense to move to a binary protocol which parses faster even IF it is slightly longer, which in the case of HTTP, it definitely won't be, because a field identifier or OID is going to be shorter than a long string identifier for a field.

      I'm a sysop for a bunch fo web servers, and the servers are connected to gigabit internet routes, the servers can't and won't saturate these routes because of the overhead in parsing the http and more-so the XML protocols used. If we can get the bloat and complexity of decoding ascii/utf protocols out of the system and drastically reduce the number of these protocol decoding servers. Of course there is still the problem of frontend developers writing crappy slow code in PHP and MySQL, but we can mitigate this with cachin frontend proxies.

      Altogether this stands to save huge amounts of energy waste worldwide and the lives that energy waste cost (think coal, think pollution, think death). Energy waste is not just an economic problem.

    3. Re:Re-inventing the wheel, with a flat tire by Anonymous Coward · · Score: 0

      Funny also to consider how office suites have moved away from binary formats to zipped XML files. That used to be a vast domain of binary formats.

    4. Re:Re-inventing the wheel, with a flat tire by davecb · · Score: 1

      Yes: xml can be edited, read by humans and repaired when wrong. It is typically parsed via commonly available packages, reducing human effort writing and computer effort running ad-hoc parsers for home-made formats. In principle it can be parsed quickly, although in practice that does vary a lot.

      --dave

      --
      davecb@spamcop.net
  47. Re:Binary protocol.. and what else? by jon3k · · Score: 1

    Classic slashdot, can't even RTFA.

  48. html is still human readable(or other payload) by gl4ss · · Score: 1

    why do you guys think the payload returned back wouldn't be as human readable and the headers printable by a simple utility?

    why would you need to view the raw frames? that's pointless. most people use stuff like curl for debugging/doing test requests anyways.

    --
    world was created 5 seconds before this post as it is.
  49. Relationship with SPDY and QUIC? by swillden · · Score: 1

    Does anyone know how this proposal relates to Google's work on SPDY and QUIC? SPDY does multiplexing, and QUIC extends that to essentially re-implement TCP in a fashion that is optimized for web traffic.

    I should go read the spec, but I'm hoping that someone who already has will post a summary.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  50. Unnecessary binary forks the tool base by Geof · · Score: 1

    I agree that it's a stupid idea, but there is almost nothing about text that makes it special. If the HTTP/2.0 standard is actually a standard, then it will be pretty easy to make an app or a plugin that translates it.

    There's almost nothing about English that makes it special, but I wouldn't recommend documenting the spec in Klingon. (To be fair, you agree that binary is a bad idea.) Or hey, would could use APL for the reference implementation!

    Intrinsically, you are correct: there's nothing much special about text. But the significance of text isn't intrinsic: it is extrinsic. Text is special because it's standard. We have a rich selection and history of tools, techniques, idioms and sober experience to draw on when it comes to dealing with text. With a new binary format we would have none of that. Your imagined translator has a lot of work to do before it can match up to the existing capabilities of text-oriented tools, let alone exceed them. Unnecessary binary formats effectively fork the development infrastructure.

    If you ask me, it makes about as much sense as replacing the Roman alphabet with Chinese idiograms for English. Chinese characters are for more information dense: you can fit more on a page and you can read it faster. In many respects it's more efficient (it has even proven effective as a shared written form for diverse spoken dialects). That doesn't make it a good idea, regardless of the availability of translators.

    We have plenty of historical examples of text protocols providing advantages over their binary equivalents. Do we have any good examples of the opposite: in which a binary protocol replaced a text protocol and proved superior by virtue of being binary?

  51. Drawbacks of HTTP/1.1 persistent connections by tepples · · Score: 1

    An HTTP/1.1 persistent connection allows downloading only one resource at a time. Bringing up multiple persistent connections requires multiple TCP slow starts. And the only way to stop a transfer in progress is to kill the connection, which incurs another TCP slow start as the connection is brought back up.

  52. Re:Binary protocol.. and what else? by dgatwood · · Score: 1

    HTTP 1.1 can already do multiple transfers ...

    Badly. It does multiple transfers in a pipeline if the server supports it, or else it falls back to basic keep-alive if the server is believed to be broken.... The problems, however, are manifold.

    First, the browser must ask for each piece. With a more modern protocol, the browser asks for index.html, and the server says, "Okay. Here's index.html, and oh, BTW, here are the eight hundred images, CSS files, and JavaScript resources that you'll need in order to render it. HAND." The benefit comes from not having multiple cycles of request, parse, request more, parse, request more, parse, etc.

    Second, the connection can do only one thing at once. If the HTML content comes from a script (and thus may be generated relatively slowly), the browser might get a partial HTML page with a bunch of images, but unless it opens a second connection to the server, it can't request those images until the entire blob of HTML has arrived. The browser sets limits as to how many connections it will open to a single server at once, so as soon as you have more than a couple of connections in that "data partially sent" state, any other requests are blocked waiting for those requests to complete. Couple this with just enough packet loss and/or latency to cause degenerate TCP behavior, and you have a recipe for terrible performance.

    By contrast, a protocol that can say, "Oh, I've just sent part of an HTML file, and it contains twelve IMG tags; I'm providing you with the images interleaved with the HTML data" does not have this problem. No new connections are required; the images get sent while the script is continuing to scream at the database, "Give me data!" And although packet loss still impacts the arrival of the end of the stream, at least you don't have a multiplicative effect as you would if each of the image requests begins until the end of the stream.

    And so on. There are very good reasons for upgrading the protocol. With that said, IMO, using a binary format is unnecessary. You could just as easily send a text string that says "Stream: 1\nChunk-length: 4096\n\n" followed by 4096 bytes of data, a newline, and a similar blob for the next stream. The overhead difference is likely to be negligible proportional to the data.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  53. The first page view is your first impression by tepples · · Score: 1

    True, CSS reduces network traffic for subsequent page views, as does putting most of your site's script in a separate file. But for the first page view, it's another connection to download the style sheets and scripts alongside the images. And there's a reason they call it a "first impression"; if first page view is too slow, expect viewers to bounce.

  54. Tests can have bugs by tepples · · Score: 1

    Sarcasm aside, the question then becomes one of whether your debugging tool is correct.

    1. Re:Tests can have bugs by Lisias · · Score: 1

      Sarcasm aside, the question then becomes one of whether your debugging tool is correct.

      Being that the reason debugging tools are carefully (and, sometimes, expensively) built.

      You do this right, and everybody will be happy.

      Seriously - this is a no issue. Every single compiler since FORTRAN is doing this for decades and everything works as good as the programmers using the keyboard.

      --
      Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  55. Bigger namespace by tepples · · Score: 1

    The space of paths is far bigger than the space of registerable port numbers, and overzealous firewalls have a habit of blocking port numbers.

  56. Wrong name by he-sk · · Score: 1

    Shouldn't it be called HBTP then? You know, HyperBinary Transfer Protocol.

    --
    Free Manning, jail Obama.
    1. Re:Wrong name by viperidaenz · · Score: 1

      Just like HTTP/1.x it transfers text or binary data. It's not restricted to transporting binary data.

  57. Re:Binary protocol.. and what else? by crutchy · · Score: 0

    maybe they should use this header:

    Content-Encoding: gzip

    http://en.wikipedia.org/wiki/HTTP_compression

    why do we need a binary protocol to reduce network load when binary content transfers are already the norm?

    binary protocol isn't going to make any difference, except create a huge migration overhead (good for creating jobs in the web dev industry i suppose)

    applications that are bandwidth hungry (such as some games) likely already use their own binary protocols and won't ever change to any form of http

  58. Re:Binary protocol.. and what else? by crutchy · · Score: 0

    maybe they finally realized that most don't bother to RTFA anyway

  59. That is impressively stupid by gweihir · · Score: 1

    Use a compression layer, but DO NOT go binary. There is not much to gain this way. The Windows crowd never gets this, but it is one of the reasons UNIX and friends is still around.

    Now I just need to know how to block all uses of HTTP 2.0 on my servers and clients.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:That is impressively stupid by viperidaenz · · Score: 1

      It has a header compression layer. The only thing binary about it is the framing to allow multiple concurrent streams.

      It means a browser only needs to open a single TCP connection to a web server, but adds additional overhead when transferring >64k files.

      Mandatory header compression is a good thing. A relatively small frame size is a good and bad thing. Good for latency when using lots of streams, bad for overhead when transferring large files. Nothing to stop the use of HTTP 1.0 for file downloads though.

  60. Multiplexing/Harmonics = multiplestreams/port by Anonymous Coward · · Score: 0

    Multiplexing + binary protocol = multiple data read/write streams per port (any): near unlimited #'s in fact based on harmonics... riding the lighting on a wave of "subsonicsound" electrical signal &, thru all of its ranges. Not as good as we can do with fiber optics + light though. Man, that's got so much area/fill per (insert measurement stick here) more. Still, this has merit as a technology + data streaming methodology for some efficiency. That usually in turn translates out to speed. Speed usually is good. Overcoming your Objections - in that it's all really just signal @ diff. frequencies is all (lots of range here though). This sounds good for some speed, + efficiency though. That's always good. A better mixture of types of parts to purposes in an engine: Hotrodding commucations here really. Theory's good. Video data might be a good candidate: Stuff's heavy/Stuff's Streamable = good possibility of usage pairing for good bang for the buck in way less spent to get loads out of it efficiently. Probably already being done I imagine. I'd think that'd lend itself easily to that, in fact!

  61. Encodings (was: Re-inventing the wheel) by davecb · · Score: 1

    It's a win in spreadsheets and anything with sparse matrices.
    It's a wash in text, as you'd imagine,
    It's a lose in databases, which are almost always data-intensive,
    It's horrid if you are encoding bit patterns in something like base-50.

    We did a number of sanity-tests before using it in Ability, and later did a check using customer data that had been given to us, from which comes the characterization above.

    --dave

    --
    davecb@spamcop.net
    1. Re:Encodings (was: Re-inventing the wheel) by EvanED · · Score: 1

      It's a win in spreadsheets and anything with sparse matrices.

      It can be; doesn't have to be. No one says you have to represent sparse matrices in a dense manner; that's a choice like text vs binary. Of course you could do the same thing in text, but the more complicated the textual format, the fewer benefits from using text you get.

      It's a lose in databases, which are almost always data-intensive,

      I would also put configuration files as a loss, actually. (In some sense those are databases.) A lot of keys "have to" be written out explicitly, whereas a binary format can use either a shorter characterization or even none at all.

      Of course, the non-efficiency benefits from making config files editable in text editors and such outweighs the efficiency arguments there.

      We did a number of sanity-tests before using it in Ability, and later did a check using customer data that had been given to us, from which comes the characterization above.

      That sounds totally reasonable.

  62. Fixing the wrong problem by Hypotensive · · Score: 1

    It would be better if HTTP as such were deprecated in favour of HTTPS. Efficiency is not a big problem and becomes less and less of an issue as there will always be bigger, faster systems (and besides the bloat of HTTP traffic is nothing to do with the HTTP protocol and the proportion of protocol to payload is going down not up). However, confidentiality and trust is becoming more and more of an issue.

  63. Re:Binary protocol.. and what else? by bingoUV · · Score: 1

    "Okay. Here's index.html, and oh, BTW, here are the eight hundred images, CSS files, and JavaScript resources that you'll need in order to render it. HAND."

    Somewhere during that time, browser wants to say, oops, I don't have a plugin to display that content. Or I don't want images. Or, my user is on mobile connection and doesn't want to see objects larger than 5kb. Skip this, and continue with the things I can process.

    No way for the browser to say this in the "new" scheme of things, supposedly for the "good" of mobile users, who have one of the main uses for NOT displaying some items server wants to show, mobile bandwidth being what it is.

    --
    Bingo Dictionary - Pragmatist, n. A myopic idealist.
  64. Conversely by dalias · · Score: 1

    And conversely, just because a format is "text based" does not guarantee it is human-readable or doesn't suck. Take XML for instance. The insanely low signal-to-noise ratio makes it, for all intents and purposes, non-human-readable. I've seen many binary formats that would take less effort to interpret manually than many typical large XML files. Of course, all other things being equal, text-based is highly preferable.

    1. Re:Conversely by K.+S.+Kyosuke · · Score: 1

      Take XML for instance. The insanely low signal-to-noise ratio makes it, for all intents and purposes, non-human-readable.

      Probably not just that. The existence of such things as entities and varying support for name spaces and schemas etc. seems to complicate the business of working with XML to such an extent that whenever I can, I simply use S-expressions. I mean, Knuth used them in TeX (or rather, the companion tools to TeX), and I'm not sure that he would have uses XML instead had he written TeX et al. in 2012, and not just because they're simpler and faster.

      Not to mention the fact that S-exps directly support not just trees and groves but also DAGs and even self-referential (cyclical) structures; for which purpose you generally have to use silly hacks whenever you serialize something complex into XML.

      --
      Ezekiel 23:20
  65. Except that you do by dalias · · Score: 1

    Binary formats DO have to be parsed and converted. They come in a particular endianness, or as a pure bitstream/bytestream (think JPEG/MPEG/etc.), with particular (mis)alignment of data (think Windows bitmaps), etc. Any code that directly interprets such data as a C structure is incorrect. Of course language features may be available in some languages to directly declare "on the wire" data structure types, but that's essentially just automated parsing. In general, parsing text is easier than parsing binary, because it's easy to get binary parsing wrong while still having it work on your own system, whereas text parsing has to be done at least partly right to work at all.

  66. Am I paranoia or ... by freaker_TuC · · Score: 1

    Does anyone see the "advantage" of such protocol towards a more controllable DRM? (like DVD vs Blueray)

    --
    --- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
  67. What's the difference? by freaker_TuC · · Score: 1

    Use a compression layer, but DO NOT go binary. There is not much to gain this way.

    What makes that any different from the already existing (gzip) compressed html ?

    --
    --- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
  68. Re:Binary protocol.. and what else? by dgatwood · · Score: 1

    Actually, unless they've removed the functionality in their divergence from SPDY, the browser does have the ability to cancel individual items, I think, though that might be limited only to items specifically requested by the browser, in which case that's a rather silly and arbitrary flaw in the protocol.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  69. FAIL! by kernelistic · · Score: 1

    The word "its" is possessive, as in:
    The chimpanzee scratched its head.

    "it's" is a contraction of "it is".

    It appears as if your sentence should have read:
    Sadly as slashdot has no edit function available in its interface, it's a pointless exercise.

    FTFY, and as AC said, please try and make an effort. Thank you! ;-)

    1. Re:FAIL! by TheCarp · · Score: 1

      Its making a lot more sense now. I definitely appreciate you're help. Your definitely a first class grammarien.

      --
      "I opened my eyes, and everything went dark again"
    2. Re:FAIL! by Anonymous Coward · · Score: 0

      Epic troll is epic. How about?
      It's making a lot more sense now. I definitely appreciate your help. You're definitely a first class grammarian.

    3. Re:FAIL! by MightyYar · · Score: 1

      That shore made it clear!

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  70. shoud be SSL only by Anonymous Coward · · Score: 0

    They missed the most important part of a rationale for a new protocol.
    The HTTP/2.0 protocol should include SSL and compression negotiation from the get-go at the transport level.
    Everything could be compressed, including request, headers and content, no need to address them separately.
    To make plain text requests you can choose null cypher which either server or client is free to reject.

  71. Html, in it's simplest form, is simple text by Keybounce · · Score: 1

    With all this discussion about different types of detail and complexity, and the need to do massive coding to properly handle all forms of HTML headers, I'm reminded of a discussion I had once with a back-end designer.

    He had made a system designed to work via http. When I asked why, and mentioned all the overhead and everything, he had a real simple response.

    Essentially: the application wasn't a full powered web server. In it's simplest form, an http request is "open a socket, write a string, read a string, close socket". By designing it to look like http, and work over port 80, it fits into modern corporate systems, gets past most firewalls, etc.

    The result? Sure, you could send crazy http thingies to this server; it would just return an error. But it was able to work with the expected use case -- send data to the server, get a response back. Plain text. Easy to work with.

    What happens to such a system once everything becomes binary? No longer so simple.

    Does this help the typical user? If the concern is over the per-file TCP overhead/startup, there is already a way to re-use a single TCP connection for multiple file transfers. If the concern is over the size of the headers, there is a much better way to ... you know, remove all the junk, cookies, extra headers, etc, than just trying to shrink text labels down (which is about all you can do if you want to keep the data content the same). If the concern is over "Perceived browser speed", well, let me remind you of Larry Wall's "rn" versus the previous dominant news reader -- and how "rn" would parse and display on the fly, instead of having to read the entire thing in before displaying. Or compare Safari to Firefox -- again, firefox starts displaying faster than Safari, so I can start reading the page sooner. Or, compare ....

    Do not assume that "perceived slowness" is caused by a bad protocol.
    It may be caused by a bad user agent.

    If the page has to be fully loaded before being displayed, that's one thing.
    If you can load the entire base text of a page, put it up, and then go back and start loading the images, or sounds, or flash thingies, that's another.
    If you don't like all the screen jumping, well guess what? You can open a bunch of separate TCP/http connections, read just enough from each to determine size, and then stop reading -- let the socket data stop coming -- and put up the text of the page, the placeholders for what you need, and then, once the base information is up, then go back and read the rest without the "jumping" and resizing.

    Does any of this require binary?

    The goals of 2.0:

    1. Substantially and measurably improve end-user perceived latency in most cases, over HTTP/1.1 using TCP.

    That's a user agent behavior problem.

    3. Not require multiple connections to a server to enable parallelism, thus improving its use of TCP, especially regarding congestion control.

    That requires a way to say "Here is control data", and "Here is content data". Sure, that would help a great deal, if as a user agent, while reading a text blob for a web page, I see that I need to open a TCP channel for an image to determine it's size. I currently have to either wait for the web page text to finish, or open a new TCP channel to get the image. What can avoid this? If I am now having to send ACK's and NACK's back to the server during my read, I can also send a "Put on hold -- now give me Y instead". So this is a "win" for this behavior -- I can now reuse the same TCP channel, and get the beginning of another data stream, determine size, etc, and then get back to the first file. So clearly, this goal is a good goal, right? There are no flaws in the goal of using a single TCP channel to send multiple data streams, right?

    Right?

    No one could possibly see any flaws with transmission speed by saying that the sender is going to stop sending, and come to a complete halt until the receiver has synchronized, right?

    It's a tradeoff. The old way re

  72. Ever cross an architecture? by tjstork · · Score: 1

    Binary formats had only one advantage, and that was that you could read them directly into a C struct. But even then, that advantage disappeared when portability became an issue. That elegant fread into a struct, whatever, turns into a rat's nest when you have to deal with big endian vs lil endian, differing integer sizes... parsing text is a pain in the rear, but it is a less of a pain in the rear than looking at some binary data in the debugger wondering what went wrong.

    --
    This is my sig.
    1. Re:Ever cross an architecture? by Darinbob · · Score: 1

      However the whole IP/TCP/UDP stack is built around binary formats, and yet they do not just read them directly into C structs because they need to be portable and because they're packed in a way that they don't fit into structs anyway.

      Reading into a struct isn't even an advantage anyway, though maybe naive college students think so; and there are absolutely more advantages than that otherwise the internet would not have been designed that way. An important reason for the design was because data links were so very slow back then that it make sense to try to send as little data as possible and to pack things tightly.

      There is a lot of ground between naively reading into a struct versus parsing a hierarchical text format.

  73. Re:Binary protocol.. and what else? by bingoUV · · Score: 1

    Ok, so the browser doesn't know the 800 images, CSS, javascript etc. that it will need to render the page. But it can cancel the individual item it knows nothing about? Genius. Your ideas intrigue me and I would like to subscribe to your newsletter.

    --
    Bingo Dictionary - Pragmatist, n. A myopic idealist.
  74. qqe by Anonymous Coward · · Score: 0

    qwe

  75. Caution - implementation difficulties ahead by sonamchauhan · · Score: 1

    But it was just following SMTP's lead...

    Remember one of the reasons (I'm sure there were others) SMTP won over X.400 was developers could telnet to port 25 and do their thing...

    Until the day a new 'Protocol-aware telnet 2.0' translates user-entered commands to binary protocols on-the-fly, a binary HTTP 2.0 is a bad idea.