Analysing HTTP Request and HTTP Responses

Status Code Categories

Range Category
100-199 Informational
200-299 Successful
300-399 Redirection
400-499 Client Error
500-599 Server Error

Common HTTP Status Codes

Code Reason Description
200 OK Success
301 Moved Permanently Resource has moved, don’t check here again
302 Moved Temporarily Resource has moved, but might be here later, so check again later
304 Not Modified Resource was the same as last time (think eTags)
400 Bad Request Probably bad syntax or malformed packet sent from the client
401 Unauthorised Client may need to authenticate
403 Forbidden Server refused access to that resource
404 Not Found
500 Internal server error An error occurred on the server
503 Service unavailable Server will not or cannot service the request

There is generally a three package TCP handshake before HTTP packages are sent.
http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml

A server can only support a certain number of concurrent connections. By default sockets are kept open (persistent connections) and slowly ramp up.
http://en.wikipedia.org/wiki/Slow-start

HTTP 1.1 defines persistent connections as default. If you want to close the connection, you must include the header:

Connection: Close

Tools

Windows Network Monitor 3.4
http://www.microsoft.com/en-us/download/details.aspx?id=4865

Wireshark
http://www.wireshark.org/download.html

Fiddler2
http://fiddler2.com/

Cache Control Directives

Directive Meaning
public A response for everyone
private A response for a single client
no-cache Don’t cache the response
no-store Do not act on this response