869: Server Attention Span

Explain xkcd: It's 'cause you're dumb.
Revision as of 12:12, 29 March 2024 by (talk) (Explanation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Server Attention Span
They have to keep the adjacent rack units empty. Otherwise, half the entries in their /var/log/syslog are just 'SERVER BELOW TRYING TO START CONVERSATION *AGAIN*.' and 'WISH THEY'D STOP GIVING HIM SO MUCH COFFEE IT SPLATTERS EVERYWHERE.'
Title text: They have to keep the adjacent rack units empty. Otherwise, half the entries in their /var/log/syslog are just 'SERVER BELOW TRYING TO START CONVERSATION *AGAIN*.' and 'WISH THEY'D STOP GIVING HIM SO MUCH COFFEE IT SPLATTERS EVERYWHERE.'


The comic shows - in human language - part of the conversations that a browser and web server do in order to get the right page. The protocol they use is called HTTP.

This comic makes fun of the issues that would arise back in the early days of smartphones days when web-servers see a mobile browser. Often, they would automatically suggest to load the mobile version of the website, but then serve the front page of the mobile site and not the page the user had requested. In quite a few sites, there would be no 1-to-1 correspondence of pages between the regular and the mobile site, so this problem is difficult to solve and very annoying. Since the date of this comic, mobile versions of websites have improved significantly, so the types of problems discussed in the comic rarely happen, although the difficulty of persuading the browser and/or server to not customise web-pages for mobile usage (e.g., assuming the display is going to be in portrait orientation, so restyling it accordingly) is often a continuing problem. As are the continual intrusive popovers 'suggesting' the reader might wish to install (or open) the dedicated 'app'.

A second issue with HTTP is identified in the last panel. HTTP is a stateless protocol. After serving the web page, the connection is severed. Any new request for a page will have to start afresh - which is where the server starts with again: "Hi! I'm a server!" Of course, browsers do not have egos nor do they hold grudges[citation needed] but it can be annoying for users. This design issue can also slow down the browsing experience.

The title text is a joke that all the other servers in the rack would think the web server is being childish. /var/log/syslog is where Linux (used by the vast majority of servers) and other POSIX systems store their system log messages. The 'trying to start conversation' comment is probably a joke on ARP discovery packets that are sent out to the network to see who is who. All servers send out ARP packets to see what other machines are on the network, but some machines send them out every 5 minutes, which can be extremely annoying for someone monitoring network traffic logs. The server rack shown has the machine involved set in a deliberate gap in an otherwised packed rack, which occasionally can be done for ventilation purposes (although this can also be disadvantageous to airflow in a closed-door cabinet) or for other organisational/logistical purposes, though physical position rarely actually matters for operational purposes as much as which cables and installation configuration it uses. In this case, however, the spacing is apparently so that there are no similarly anthropomorphic adjacent machines forced to closely listen to this server's inanely simple and over-cheery chatter.

The coffee comment is another jab at web servers. Some websites use Java, or other JVM based languages (Apache Groovy, Scala, etc.) as the back end of the website, as opposed to using PHP or ASP. Of course, java is another word for coffee (moreover, the logo of Java is a cup of coffee), so a web server running on coffee is likely to be well-caffeinated, and well-caffeinated people tend to bounce off the walls with enthusiasm.


[Single server in a server rack.]
Server: Hi! I'm a server! Who are you?
[Mobile device with a web browser.]
Browser: I'm a browser. I'd like to see this article.
Server: Oh boy! I can help! Let me get it for— ...Whoa! You're a smartphone browser?
Browser: Yeah.
Server: Cooool! Hey, I've got this new mobile version of my site! Check it out! Isn't it pretty?
Browser: Sure, but this is just your mobile site's main page. Where's the article I wanted?
Server: What article?
Browser: The one I—
Server: Who are you?
Browser: I—
Server: Hi! I'm a server!

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


Note that REAL HTTP/1.0 conversation is started by browser: First browser say everything, then server responds and close the connection. HTTP/1.1 conversation allows the browser to make another query in the same connection, but that's only to avoid the work on reopening connection, server is supposed to interpret this new query in same way as if it would be new connection. -- Hkmaly (talk) 09:15, 15 February 2013 (UTC)

Yes, proper HTTP implementations are stateless. 19:55, 18 January 2014 (UTC)

It seems that the server is vertical at the start, but horizontal in the following panels. 22:28, 25 February 2015 (UTC)

No, the server is horizontal, in the middle of a vertical rack. 19:00, 1 April 2015 (UTC)