Wednesday, January 22nd, 2020
Monday, January 6th, 2020
I’ve been thinking about some of the default behaviours that are built into web browsers.
First off, there’s the decision that a browser makes if you enter a web address without a protocol. Let’s say you type in
example.com without specifying whether you’re looking for
Browsers default to HTTP rather than HTTPS. Given that HTTP is older than HTTPS that makes sense. But given that there’s been such a push for TLS on the web, and the huge increase in sites served over HTTPS, I wonder if it’s time to reconsider that default?
Most websites that are served over HTTPS have an automatic redirect from HTTP to HTTPS (enforced with HSTS). There’s an ever so slight performance hit from that, at least for the very first visit. If, when no protocol is specified, browsers were to attempt to reach the HTTPS port first, we’d get a little bit of a speed improvement.
But would that break any existing behaviour? I don’t know. I guess there would be a bit of a performance hit in the other direction. That is, the browser would try HTTPS first, and when that doesn’t exist, go for HTTP. Sites served only over HTTP would suffer that little bit of lag.
Whatever the default behaviour, some sites are going to pay that performance penalty. Right now it’s being paid by sites that are served over HTTPS.
Here’s another browser default that Rob mentioned recently: the
I thought I might be able to get away with omitting
meta name="viewport". Apparently not! Maybe someday.
This all goes back to the default behaviour of Mobile Safari when the iPhone was first released. Most sites wouldn’t display correctly if one pixel were treated as one pixel. That’s because most sites were built with the assumption that they would be viewed on monitors rather than phones. Only weirdos like me were building sites without that assumption.
So the default behaviour in Mobile Safari is assume a page width of 1024 pixels, and then shrink that down to fit on the screen …unless the developer over-rides that behaviour with a
meta tag. That default behaviour was adopted by other mobile browsers. I think it’s a universal default.
But the web has changed since the iPhone was released in 2007. Responsive design has swept the web. What would happen if mobile browsers were to assume
meta element always felt like a (proprietary) band-aid rather than a long-term solution—for one thing, it’s the kind of presentational information that belongs in CSS rather than HTML. It would be nice if we could bid it farewell.
Tuesday, August 21st, 2018
Mozilla’s work-in-progress style guide and pattern library.
Friday, May 12th, 2017
Friday, October 21st, 2016
A ten-year old paper that looks at the history of the ARAPNET and internet to see how they dealt with necessary changes.
Changing a large network is very difficult. It is much easier to deploy a novel new protocol that fills a void than it is to replace an existing protocol that more or less works.
Friday, July 15th, 2016
From the ARPANET to the internet, this is a great history of the Domain Name System:
Root DNS servers operate in safes, inside locked cages. A clock sits on the safe to ensure the camera feed hasn’t been looped. Particularly given how slow DNSSEC implementation has been, an attack on one of those servers could allow an attacker to redirect all of the Internet traffic for a portion of Internet users. This, of course, makes for the most fantastic heist movie to have never been made.
Wednesday, June 22nd, 2016
The slides from Aaron’s talk at OS Bridge in Portland, looking at the formats and protocols powering the indie web.
Wednesday, December 2nd, 2015
A fascinating ten-year old essay looking at the early days of the web and how it conquered FTP and Gopher.
And though glitz, politics, hard work, and competitors’ mistakes all played a role in the success of the web, there are also aspects of the architecture that ensured the web would catch on. I think the web won because of the URI.
URIs are everywhere, and what’s vaguely funny now is the idea that they’re something special. But they’re very special: URI management is the fundamental consideration behind the design of web sites, web applications, and web services. Tim Berners-Lee originally intended URIs to be invisible, but they’re too useful for that.
Tuesday, September 29th, 2015
Wednesday, September 9th, 2015
We need the Internet of Things to be the next step in the series that began with the general purpose PC and continued with the Internet and general purpose protocols—systems that support personal autonomy and choice. The coming Internet of Things envisions computing devices that will intermediate every aspect of our lives. I strongly believe that this will only provide the envisioned benefits or even be tolerable if we build an Internet of Things rather than a CompuServe of Things.
Wednesday, June 10th, 2015
The first in a series of articles about the architecture of the internet and its security issues, this is a great history lesson of how our network came to be.
What began as an online community for a few dozen researchers now is accessible to an estimated 3 billion people. That’s roughly the population of the entire planet in the early 1960s, when talk began of building a revolutionary new computer network.
Thursday, April 23rd, 2015
This is a really good point from Tim Berners-Lee: there’s no good reason why switching to TLS should require a change of URLs from http:// to https://
Wednesday, January 7th, 2015
There are some good points here comparing HTTP2 and SPDY, but I’m mostly linking to this because of the three wonderful opening paragraphs:
A very long time ago —in 1989 —Ronald Reagan was president, albeit only for the final 19½ days of his term. And before 1989 was over Taylor Swift had been born, and Andrei Sakharov and Samuel Beckett had died.
In the long run, the most memorable event of 1989 will probably be that Tim Berners-Lee hacked up the HTTP protocol and named the result the “World Wide Web.” (One remarkable property of this name is that the abbreviation “WWW” has twice as many syllables and takes longer to pronounce.)
Tim’s HTTP protocol ran on 10Mbit/s, Ethernet, and coax cables, and his computer was a NeXT Cube with a 25-MHz clock frequency. Twenty-six years later, my laptop CPU is a hundred times faster and has a thousand times as much RAM as Tim’s machine had, but the HTTP protocol is still the same.
I’m always surprised to find that working web developers often don’t know (or care) about basic protocol-level stuff like when to use GET and when to use POST.
My point is that a lot of web developers today are completely ignorant of the protocol that is the basis for their job. A core understanding of HTTP should be a base requirement for working in this business.
Monday, December 9th, 2013
Some good brainstorming from Tantek that follows on nicely from Anne’s recent manifesto.
Saturday, June 15th, 2013
This echoes what Scott Jenson has been saying: the current trend with connected devices is far too reliant on individual proprietary silos instead of communicating with open standards.
So instead of talking directly to one another, devices on today’s nascent Internet of Things now communicate primarily with centralized servers controlled by a related developer or vendor. That works, after a fashion, but it also leads to a bunch of balkanized subnetworks in which devices can communicate perfectly well with each other - but can’t actually talk to devices on any other balkanized subnetwork.
Sunday, December 9th, 2012
On Open Platforms, Wifi, Home Automation, and Kitty Litter | John Battelle’s Search BlogJohn Battelle’s Search Blog
This echoes Scott Jenson’s call for more open standards when it comes to networked devices. We’ll need it if we want “If This, Then That” for an internet of things.
Sunday, August 21st, 2011
A matter of protocol
The web is made of sugar, spice and all things nice. On closer inspection, this is what most URLs on the web are made of:
- The protocol—e.g.
http—followed by a colon and two slashes (for which Sir Tim apologises).
- The domain—e.g.
- The path—e.g.
(I’m leaving out the whole messy business of port numbers—which can be appended to the domain with a colon—because just about everything on the web is served over the default port 80.)
Most URLs on the web are either written in full as absolute URLs:
a href="http://adactio.com/journal/tags/nerdiness" script src="https://huffduffer.com/js/global.js"
Or else they’re written out relative to the domain, like this:
a href="/journal/tags/nerdiness" script src="/js/global.js"
It turns out that URLs can not only be written relative to the linking document’s domain, but they can also be written relative to the linking document’s protocol:
a href="//adactio.com/journal/tags/nerdiness" script src="//huffduffer.com/js/global.js"
If the linking document is being served over HTTP, then those URLs will point to
https://huffduffer.com/js/global.js but if the linking document is being served over HTTP Secure, the URLs resolve to
<!--[if lt IE 9]> <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"> </script>
Saturday, June 7th, 2008
Scott Kveton rips Chris Saad a new one, and rightly so. We all sent Chris the same message at Social Graph Foo Camp, he's had enough time to shape up but instead things have become increasingly hype-laden and bullshitty with him.