Slashdot Mirror


HTTP 103 - An HTTP Status Code for Indicating Hints (ietf.org)

The Internet Task Engineering Group (IETF) has approved the new HTTP status code 103. The new status code is intended to "minimize perceived latency." From the circular: It is common for HTTP responses to contain links to external resources that need to be fetched prior to their use; for example, rendering HTML by a Web browser. Having such links available to the client as early as possible helps to minimize perceived latency. The "preload" ([Preload]) link relation can be used to convey such links in the Link header field of an HTTP response. However, it is not always possible for an origin server to generate the header block of a final response immediately after receiving a request. For example, the origin server might delegate a request to an upstream HTTP server running at a distant location, or the status code might depend on the result of a database query. The dilemma here is that even though it is preferable for an origin server to send some header fields as soon as it receives a request, it cannot do so until the status code and the full header fields of the final HTTP response are determined. [...] The 103 (Early Hints) informational status code indicates to the client that the server is likely to send a final response with the header fields included in the informational response. Typically, a server will include the header fields sent in a 103 (Early Hints) response in the final response as well. However, there might be cases when this is not desirable, such as when the server learns that they are not correct before the final response is sent. A client can speculatively evaluate the header fields included in a 103 (Early Hints) response while waiting for the final response. For example, a client might recognize a Link header field value containing the relation type "preload" and start fetching the target resource. However, these header fields only provide hints to the client; they do not replace the header fields on the final response. Aside from performance optimizations, such evaluation of the 103 (Early Hints) response's header fields MUST NOT affect how the final response is processed. A client MUST NOT interpret the 103 (Early Hints) response header fields as if they applied to the informational response itself (e.g., as metadata about the 103 (Early Hints) response).

50 comments

  1. Yeah, this won't be abused. by Anonymous Coward · · Score: 1

    Great guys! I can see a few ways to use this to fake out servers and do some nasty things!

    We love it!

    Yours:

    The Russian Hacker's Association

  2. If you really care for latency and performance by Opportunist · · Score: 5, Insightful

    Strip your bullshit JS code and deliver the content rather than the ads. Until you do, no header will improve performance or "user experience".

    Let's face it, no user gives a shit just how quickly you serve your ads. He wants the content, and guess what you don't give half a shit about how fast he gets it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:If you really care for latency and performance by Merk42 · · Score: 1

      I agree! Everyone knows all websites have the static functionality of a Wikipedia article.

    2. Re:If you really care for latency and performance by Anonymous Coward · · Score: 0

      Strip your bullshit JS code and deliver the content rather than the ads.

      Why would we do that? Doing it this way shifts the blame to not us, puts the onus on someone else for fixing our slow load times, gives us ammunition against claims we’re not doing enough, and ensures our products remain divided among themselves as they argue about the merits of these measures instead of simply demanding we do as you suggested.

      Signed,
      Google and Facebook

    3. Re:If you really care for latency and performance by Anonymous Coward · · Score: 0

      The vast majority websites are just serving static content. Most people don’t care about your special snowflake website where you wank around with JS.

    4. Re:If you really care for latency and performance by Anonymous Coward · · Score: 0

      Those that don't tend to be the "Javascript app" design. They load javascript once when you first load the site, and then use XmlHttpRequest to load new data as you browse around the site, rather than requesting pages again.

      In total this gives a faster browsing experience than this 103 response could hope to do, so for these sites, this change is mostly pointless.

    5. Re:If you really care for latency and performance by Anonymous Coward · · Score: 0

      Strip your bullshit JS code and deliver the content rather than the ads. Until you do, no header will improve performance or "user experience".

      Let's face it, no user gives a shit just how quickly you serve your ads. He wants the content, and guess what you don't give half a shit about how fast he gets it.

      Agree and disagree. There are valid scenarios for it as well. Example - I work with several websites that reach out to other non-ad backends that are slow/unreliable/owned by a third-party. If you can load up 90% of the page and give the client a notification "um, this one thing is being slow, hang on a minute", that's a huge gain for the user experience.
       
      There's already several implementations in various server-side frameworks that try to handle this - albeit most of them poorly. Nice to see something baked into the HTTP specification itself that will handle this scenario.

    6. Re:If you really care for latency and performance by mujadaddy · · Score: 1

      Google tried to tell our marketing group "our site is slow". Strangely, Google's "solutions" did not involve reducing the tagging on the site. We produced documentation showing that the site content loads in ~ 800ms and is responsive, and the remainder of the "slowness" is the barnacles and leeches.

      --
      Populus vult decipi, ergo decipiatur...
      "Force shits upon Reason's back." - Poor Richard's Almanac
  3. HERE! TAKE ALL THIS JAVASCRIPT! by Anonymous Coward · · Score: 0

    No thanks, I'm going to have most of it blocked anyway.

  4. And the race accelerates by Cigaes · · Score: 4, Insightful

    “Nice” (i.e. commercial) websites have become immensely complex in design. Not because their needs has grown immensely complex; they have grown complex, but not that much. Because they are poorly designed in their workings. Developers in the same company cannot be bothered to make reusable libraries, and when they can, they mess the API stability and require several versions of the same library within a single project. Requests are resolved using queries to caches to proxies to No wonder the output of even a single request cannot be decided before examining the whole universe and its neighbourhood.

    It seems to me this feature is just another step in that direction: make things a little more complex for an immediate gain, and let the future take care of itself. Slowly.

    1. Re:And the race accelerates by Anonymous Coward · · Score: 0

      Many slow loading websites I have seen are using heavy JavaScript (e.g. Angular, etc.). Once it is loaded up, everything seems to be fine. Some others force huge image files to be loaded, and that is very annoying visiting that kind of site.

      If the status is used correctly, yes it would benefit a website as you said. However, has there ever been anything that is used correctly? Later or sooner, there will be people finding a way to abuse the functionality. And then more and more will follow. Look at those Ads thing. Besides, I am waiting to see a new way of security vulnerability because this is exactly where things happen (connection between client and server).

    2. Re:And the race accelerates by Picodon · · Score: 1

      “Nice” (i.e. commercial) websites have become immensely complex in design. (...) Because they are poorly designed in their workings.

      Well, unfortunately, doesn’t this apply to all software in general (not just websites) nowadays?
      </off_topic_rant>

  5. Perceived latency? Isn't waiting... waiting? by adosch · · Score: 3, Interesting

    Maybe there is some bigger engineering brains, but if we're battling perceived latency by blocking/waiting for a database query or something upstream, whether is a REST service or what-the-F-ever, aren't we still blocking/waiting but now handling an intermediate response? Anything backend is going to have to prioritize shipping out constant '103's to clients, then how many to do handle and block for until we get our payload and '200'? Does this extend timeouts even longer? This actually changes ALOT of how any of us know the handshaking of HTTP is today if it's across the board and not for specific requests in header. Outside of that drivel of a thought, I can see a ton of man-in-the-middle hijacking or DDOS going on here with any sort of intermediate 'hey-hold-on-a-second' step in this handshake.

    I'm like the rest of the opinions here, this seems like a vote to work-around how bloaty, complex and javascript laden and ad-network-revenue driven this is proposal is.

  6. Too much shit and ads. by Anonymous Coward · · Score: 3, Informative

    Because they are poorly designed in their workings.

    They have too much crap and ads and scripts. Why does there have to be a popup over everything my mouse hovers over?

    And being stuck with an AT&T 1.5/.25Mbps shit connection, most websites load like shit. I start reading and the page renders, I start reading, it renders some more, I wait as it continuously jumps around ... and I leave.

    And with more and more news sites having video pop-up - even though I turned off autoplay, the fucker still takes up a shit load of bandwidth and makes the site unreadable.

    The web on tablets is useless. On my desktop is almost useless.

    The web is dead Fred. I'm spending less and less time up here.

    CNN, Huffington Post, and a couple of others are just useless.

    1. Re:Too much shit and ads. by kwbauer · · Score: 1

      CNN and Huffington Post would be mostly useless regardless of how fast their content becomes available. IOW, their problem is their content, not how it is presented.

  7. Adblocking escalation? by fibonacci8 · · Score: 3, Interesting
    To me this looks like an opportunity for a client to opt out of undesirable content, but in a way that a server can detect prior to sending the desired content. At first glance it's another vector for undesirable content purveyors to bypass local DNS policy.

    A client can speculatively evaluate the header fields included in a 103 (Early Hints) response while waiting for the final response. For example, a client might recognize a Link header field value containing the relation type "preload" and start fetching the target resource. However, these header fields only provide hints to the client; they do not replace the header fields on the final response.

    This part looks exactly like the "hints" are meant as an opportunity to avoid delivering content if the hints aren't properly "obeyed". If the "preload" directive doesn't happen and a third party doesn't relay that the undesirable content is at least transmitted, the first server can continue to wait until the demand is met.

    --
    Inheritance is the sincerest form of nepotism.
    1. Re:Adblocking escalation? by quintus_horatius · · Score: 1

      If the "preload" directive doesn't happen and a third party doesn't relay that the undesirable content is at least transmitted, the first server can continue to wait until the demand is met.

      That's only a minor inconvenience to ad blockers, as they can load the data then throw it away without passing it to the rendering layer.

      It seems to me that what's really happening is that the content servers will proxy the ads from the third parties through themselves, bypassing the host-based restriction that ad blockers provide. You can't block the ads without blocking the content.

  8. Won't make a difference and will break things by rsclient · · Score: 3, Insightful

    I think I've seen this rodeo before. What I see is that web developers work to make their site "fast enough". In Scrum terms, they don't apply premature optimizations. They use too many modules with too many dependencies and assume everyone has a fast internet.

    My two predictions: this will just encourage web site bloat, and a bunch of people are going to discover that their cheap-and-barely-working HTTP parsers don't actually handle 100-series responses.They are also going to discover that many high-level APIs don't provide any access to this new paradigm.

    --
    Want a sig like mine? Join ACM's SigSig today!
    1. Re:Won't make a difference and will break things by QuietLagoon · · Score: 1

      ... They use too many modules with too many dependencies and assume everyone has a fast internet. ...

      They also assume everyone likes to read low contrast text in sunlight.

    2. Re:Won't make a difference and will break things by Carewolf · · Score: 1

      The only good use I can see of it, is when most webservers have it, you can make much more aggresive timeouts before trying one of the other IPs you were given due to DNS. This could dramatically improve responsiveness of content in where the primary route goes through a node that is overloaded or one of the servers are down, without relying on a separate service like cloudfire.

    3. Re:Won't make a difference and will break things by Rakarra · · Score: 1

      I think I've seen this rodeo before. What I see is that web developers work to make their site "fast enough". In Scrum terms, they don't apply premature optimizations. They use too many modules with too many dependencies and assume everyone has a fast internet.

      I also see a lot of websites that worked well when you had 10-20 users, but when you got to thousands, they started getting pokey slow.

  9. At what point does HTTP need to go away? by QuietLagoon · · Score: 0

    With enhancements such as this one, are we just continuing to extend the life of the HTTP protocol, when we really should be taking it out behind the barn and putting it out of its misery?

  10. So when my first request comes back 103... by Anonymous Coward · · Score: 0

    ... I have to retry again with another connection, and hope to get my 2xx response this time?

    And if there is still "latency" I have to keep retrying again and again?

    Good thing none of these extra connections will cause any latency by themselves.

  11. 103 code please die in a fire alongside 100 code by Anonymous Coward · · Score: 1

    if you need it just put it in the ordinary header ffs that way you don't break existing HTTP clients.

  12. All this junk, but still no client side includes. by Anonymous Coward · · Score: 0

    Client side includes allow you to do things that would normally require scripting on the server(server security risk & processing costs up) or JavaScript in the site (client security risk & client processing costs up) without either. Particularly loading common headers/footers/menus from a single source, one of the biggest use cases for server side scripting, but with file cashing for the common html chunk.

    This has repeatedly been denied by the standards committee as you can also sort of do this with JavaScript, but, it makes your site not work with NoScript, requiring users to run arbitrary code to access flat content is rude, and also takes extra JavaScript knowledge which hurts non coders (and coders too, to be honest) who want to make web content without relying on complex third party tool-kits.

  13. Don't force interaction on users who prefer static by tepples · · Score: 3, Insightful

    If you encounter a viewer who desires only "the static functionality of a Wikipedia article", do not force the viewer into more interaction than that. Build navigation through links to other documents on your site. Use the styling and transition functionality built into CSS to style your HTML. Build collapsible elements out of a hidden checkbox with a visible label.

  14. Using ad blockers to avoid overages by tepples · · Score: 3, Informative

    That's only a minor inconvenience to ad blockers, as they can load the data then throw it away without passing it to the rendering layer.

    It's a major inconvenience to people who use ad blockers for the express purpose of staying under the monthly Internet data transfer volume limit set by an ISP.

  15. Re:Don't force interaction on users who prefer sta by Merk42 · · Score: 1

    Full page reloads for any action from the user.
    Outdated information for dynamic values (as in something that often changes, like a sports score, or stocks)

    Would you care to cite any websites that do what you claim that aren't just a list of articles?

  16. That user will care by rsilvergun · · Score: 1

    when the service goes away. Making content, like everything, costs money. Maybe if we ever get UBI we can talk. Until then you live with the ads or stop going to the page and complaining.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:That user will care by Anonymous Coward · · Score: 0

      Speak for yourself. As someone on the pre-monetized internet, I'd be fine if we could turn back time. We can't, but don't pretend things are okay because "this one only has a little bit of rat".

    2. Re:That user will care by Opportunist · · Score: 2

      Let's try that, shall we? I keep hearing the story of the falling sky if we abolish spam and ads and that the internet will cease to exist for it depends on both, but let's try it.

      Hey, wait, I remember a time when it actually WAS that way. Odd. How did webpages exist in the pre-dot-com time, one has to wonder. I know. They were made by people who wanted to actually say something, and even needed to have the brain cells to slap together a webpage to do so, which had the nice side effect of improving the signal-to-noise ratio.

      I can't help it, but you're not really making a good point FOR ads if you say that the junk we have today will go away and we'll return to the pre-2000 internet without them.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    3. Re:That user will care by scdeimos · · Score: 1

      That user will care when the service goes away.

      I really wish a lot of it would just go away. I'm sick to death of scumbag aggregation sites appearing near the top of Google search results - existing just to serve Google ads on top of content stolen from reputable sites.

  17. Re:Perceived latency? Isn't waiting... waiting? by Anonymous Coward · · Score: 0

    I think the idea is that your website says goes here, you ask .org for and they can say Error 103: will be about 300x400 pixels. Your site then sets aside 300x400 pixels for and starts to display this to the user who perceives the site rendering and then being printed out inside of it a little bit later. This makes them feel better than either, wait for then render everything, show blank screen in the mean time, or display the site without , then resize everything to fit in when we get it.

  18. "Replaces" the items in script src and head by guruevi · · Score: 1

    So basically you can "tell" the client before sending the page that the page has a number of things in it's "head" and "script" tags and then the browser can pre-load them or multiplex the requests instead of waiting on the HTML to load, parse it and then load them.

    The problem/security will be when you pre-load content from external sites just as regular JavaScript you load externally. It basically wastes a bit of bandwidth in the hope you have a high-bandwidth, high-latency link

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
    1. Re:"Replaces" the items in script src and head by Anonymous Coward · · Score: 0

      Thank you, a brief and understandable summary.

        Will this and other recent additions to http help media companies protect their content?

  19. Re:Don't force interaction on users who prefer sta by tepples · · Score: 1

    Let me predict what an anti-script curmudgeon might think of your objections.

    Full page reloads for any action from the user.

    "It'd still end up loading less data than a half-dozen JS frameworks and ad exchanges' real-time bidding scripts."

    Outdated information for dynamic values (as in something that often changes, like a sports score, or stocks)

    "When I want up-to-date information, I'll request it myself. My F5 key isn't broken, you know."

    Would you care to cite any websites that do what you claim that aren't just a list of articles?

    "I can, for example, get the weather on National Weather Service (weather.gov) without script. If I wanted something more interactive than an HTML form, I would download an application, compile it, and install it on my computer."

  20. Most content is not dynamic by Anonymous Coward · · Score: 0

    90% of newspaper content is non dynamic, and isn't helped by singing dancing sidebars of irritation. Video and music sites are only dynamic if you use the comments, and if the comments are active. The same also applies to image content, be it art or not. Wikis of all sorts don't need to live update without user interaction.

    It is not that these things can't be useful but instead that they cost in security, bandwidth, and CPU time, worse they are often done in badly designed user expensive ways. Dynamic content or even just JavaScript shouldn't be used for their own sake or hammered down peoples throats. If your content is static then at least a simplified static version should be available without the (Anti-)"social" junk.

    PS. The lack of ability to serve common HTML parts of the page separately (to avoid full page reloads without JavaScript dependence) is a choice that the HTML standards bodies have made, despite user demand, not an argument that JavaScript is good.

  21. Google deaf and dumb... by Anonymous Coward · · Score: 0

    Can i get an option in chrome just to load text? I seem to exhaust my data very quickly. Is Google deaf and dumb, that they dont understand that majority of world population lives in 2nd & 3rd world countries.

  22. Re:Don't force interaction on users who prefer sta by Merk42 · · Score: 1

    Full page reloads for any action from the user.

    "It'd still end up loading less data than a half-dozen JS frameworks and ad exchanges' real-time bidding scripts."

    I'm sure that's the case on strawman.com

    Outdated information for dynamic values (as in something that often changes, like a sports score, or stocks)

    "When I want up-to-date information, I'll request it myself. My F5 key isn't broken, you know."

    "Full page reloads for any action from the user."

    Would you care to cite any websites that do what you claim that aren't just a list of articles?

    "I can, for example, get the weather on National Weather Service (weather.gov) without script.

    Thanks for the example. Weather.gov looks great on my phone (not). It's a perfect example of what curmudgeons would want. If web development just stopped around 2004.

    Not that I'm moving goalposts, but I'm wondering if there is an example of something like an e-commerce site (therefor few/little ads) and is something more complicated than a Google question.

    If I wanted something more interactive than an HTML form, I would download an application, compile it, and install it on my computer."

    We're sorry, the following website is not compatible with your operating system.

  23. Re:Don't force interaction on users who prefer sta by tepples · · Score: 1

    I'm wondering if there is an example of something like an e-commerce site (therefor few/little ads) and is something more complicated than a Google question.

    How well does, say, Phil's Hobby Shop work with script off?

    Disclosure: Phil's Hobby Shop employs me.

  24. http:\\www.hal9000.discovery by LordHighExecutioner · · Score: 1

    HTTP 103

    Hint: I'm sorry, Dave. I'm afraid I can't do that.

  25. Re:Don't force interaction on users who prefer sta by dave420 · · Score: 1

    It looks like someone threw up on a time-travelling toaster.

  26. Re:Don't force interaction on users who prefer sta by Rakarra · · Score: 1

    Outdated information for dynamic values (as in something that often changes, like a sports score, or stocks)

    "When I want up-to-date information, I'll request it myself. My F5 key isn't broken, you know."

    But then you'll have used far more bandwidth and time and processing power reloading the whole page than would have been taken up by hours of a reloading counter.

    What I -really- want is a browser feature where any only the tab that the mouse is hovering over will have running javascript. Everything, everything else gets "frozen." If the browser doesn't have current focus, then no scripts run at all. I'm sure that will break a little functionality, but a user like me would appreciate an advanced feature like that.

  27. Re:Don't force interaction on users who prefer sta by Rakarra · · Score: 1

    Thanks for the example. Weather.gov looks great on my phone (not). It's a perfect example of what curmudgeons would want. If web development just stopped around 2004.

    Hmm. Maybe web sites looked better and operated a hell of a lot faster in 2004 than the overloaded sites we have today.

  28. Re:Don't force interaction on users who prefer sta by Rakarra · · Score: 1

    Looks pretty good, but all the links on the big promotion window are broken. I'll admit, I would hope that the DX8 and the VisionAire labels would actually just change tabs on that promotion window, but right all of them take you to a "discontinued item" page.

    I'll admit that it looks "ok" on my phone. Not great, but most of the overarchitectured sites look WORSE on the phone instead of better, so that's a point in favor of the static site.

  29. Re:Don't force interaction on users who prefer sta by tepples · · Score: 1

    What I -really- want is a browser feature where any only the tab that the mouse is hovering over will have running javascript. Everything, everything else gets "frozen." If the browser doesn't have current focus, then no scripts run at all.

    With a user-managed whitelist for things like music streaming services and web-based rich chat rooms, I assume.

  30. Re:Don't force interaction on users who prefer sta by Merk42 · · Score: 1

    Hmm. Maybe web sites looked better and operated a hell of a lot faster in 2004 than the overloaded sites we have today.

    Yes I love having to constantly zoom in and out on my phone.

  31. Re:Don't force interaction on users who prefer sta by Rakarra · · Score: 1

    Half the web sites I go to I have to "request desktop site" because the mobile version sucks. I think I prefer the zoom-in paradigm better.

    But having a mobile version doesn't mean you need a 2017-style website nightmare.

  32. Re:Don't force interaction on users who prefer sta by Rakarra · · Score: 1

    Sure, sounds good to me. I know it sounds complex and maybe not something the average user would want to hassle with, but maybe the average user is similarly frustrated with web browser slowness and might find that small bit of fiddling worth the overall faster experience.

    Or maybe I'm the only guy with 5+ tabs open at once. ^_^