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).
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.
“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.
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.
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.
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.
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!
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.
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.
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.