wolfgang ziegler


„make stuff and blog about it“

The Absolute Minimum Every Developer Should Know About HTTP

June 10, 2013

Those of you following Joel Spolsky will probably recognize this post’s title as being a reference to his famous blog post on unicode, character sets and the absolute minimum software developers have to know about these.

Today, the tools of the trade for software developers have increased dramatically and the core technologies and domains, we have to have keep a good understanding of, go way beyond knowing our whereabouts in the world of bits and bytes or being able to handle a single programming language reasonably well.

If I had to identify just one single trend towards which our industry has shifted lately, it is the aspect of connected and distributed applications and services. The era of standalone, offline software is effectively over. Nobody is an island and especially software applications are not (anymore). Today, the bare minimum everyone expects from an application is some automated update check but quite often applications are backed by rich online services any way.

This leads to the topic of service and network communication and the fact that each and every software developer should have a basic idea about the technologies and protocols involved there. Picking HTTP as the most ubiquitous web protocol, everyone considering himself a professional and serious developer, should have a reasonable understanding of its inner workings and characteristics. Being well-understood, human-readable and relatively simple, HTTP has become a communication protocol for all kinds of distributed systems, way beyond its original purpose of serving HTML. HTTP has effectively become the least common denominator and lingua franca of communication protocols.

So, anybody sensing a knowledge gap in this area, might want to take a look at HTTP Succinctly, an eBook from Syncfusion’s Succinctly Series – a series of free eBooks serving as a primer on many different topics related to software development.

image

HTTP Succinctly, written by Scott Allen, is structured into five chapters.

  • Chapter 1 introduces the concept of resources, URIs, URL encoding and content types.
  • Chapter 2 provides a basic overview of HTTP messaging, requests and responses. Concepts like GET and POST or HTTP status codes get explained here.
  • In chapter 3, HTTP’s nature as a stateless protocol is explained based on the OSI network layer model. C# code samples for “hand-crafting” HTTP messages add a nice touch to understanding the basic concepts seen so far.
  • Chapter 4 provides information on how HTTP proxy servers operate, how caching works and which parts of an HTTP message determine whether it is subject to caching.
  • Last but not least, chapter 5 covers security, cookies, identification and authentication.

 

While this book is really just a primer and first approach to the realms of HTTP, it will serve as the perfect introductory reading for those who quickly want to get up to speed on this technology or brush up on some rusty knowledge.