views:

188

answers:

12

I am fluent in HTML and PHP and slowly learning JavaScript however I have noticed that there is a huge hole in my knowledge when it comes to understanding how web software communications actually work.

I understand the flow of information across the net however I would like to learn about HTTP protocols to better understand how the data is actually sent back and forth through the internet to help me understand things like REST, HTTP Headers, AJAX requests, etc. However, I must be searching the wrong terms because I haven't been able to find a good description of HTTP protocols.

Any help is appreciated to point me in the right direction. Thanks!

+4  A: 

If you want the full story, best to check out the RFC on w3.org: http://www.w3.org/Protocols/rfc2616/rfc2616.html

That goes into copious amounts of detail.

mopoke
Missed by a matter of seconds :)
Dima Malenko
Great resource; but *argh, my brain..* @.@
David Thomas
RFC-2616 is quite helpful, but I think most people would find it easier to start with something like HTTP The Definitive Guide or Restful Web Services (both O'Reilly), and with that springboard jump into the specs.
Jim Ferrans
A: 

RFC 2616 may not be the perfect way to start, but it definitely is fairly complete source of information on the subject.

Dima Malenko
A: 

O'Reilly has the HTTP Pocket Reference (which I like) and HTTP The Definitive Guide (which I have never seen, but their books are always good).

Ray
+2  A: 

Since you mention REST: I actually learned a fair bit about HTTP in this book.

Rafe Lavelle
+2  A: 

This looks like a good place to start hitting the basics, and if you want more detail there is always RFC 2616

Bert Lamb
A: 

Go search for a broken PHP application and make it work, make it in the way you like (functionalities, layout, db schema, web server etc). By the time you are happy with your work, you are good to go.

Jay Zeng
I am not entirely sure what you are trying to say here..I do not have problems with HTML/PHP, but attempting to understand http.
PHP was mainly born for web development, which builds on top of the HTTP protocol. If you do not have problems with HTML/PHP, how will have you problem with the HTTP protocol? How do you handle various exceptions like redirecting your users to one page if a 404 is found? How do know if code on handling SQL is broken when you see a 500? Perhaps you opt for different ways of learning, what I suggested is the best way for me, and people around me.
Jay Zeng
This is my problem - understanding how to correctly manipulate the http with html/php/javascript - not simply using the preset http php functions.
Sure, and this is also my opinion. I offered it because you asked for suggestion. It is totally up to you to take it or not. But I don't think you get my point at all, anyway, not a problem.
Jay Zeng
+1  A: 

Go read Fielding's Ph.D thesis. Read all the RFC's related to CGI/HTTP/MIME-Types/BASE-64 encoding/HTTP-POST/url-encoding etc. Also study the Apache server process model to understand the nature of a HTTP server -- I would recommend the FMC modelling project's documentation of Apache (the content seems damaged, this should be fixed soon).

I would also recomend this book.

Hassan Syed
+3  A: 

Oreilly's: HTTP The Definitive Guide is a truly remarkable resource for learning HTTP.

Brian R. Bondy
Excellent link thank you very much!
+1  A: 

What about firing up Telnet and trying out basic HTTP with a native speaker?

~> telnet stackoverflow.com 80 // FROM THE COMMANDLINE
Trying 69.59.196.211...
Connected to stackoverflow.com.
Escape character is '^]'.
HEAD / HTTP/1.0  // TYPE THIS IN YOURSELF
Host: stackoverflow.com // AND THIS, FOLLOWED BY TWO CARRIAGE RETURNS

HTTP/1.1 200 OK // FROM HERE ON IS THE SERVER'S RESPONSE.
Cache-Control: private
Content-Length: 115915
Content-Type: text/html; charset=utf-8
Expires: Wed, 16 Dec 2009 00:44:42 GMT
Server: Microsoft-IIS/7.0
Date: Wed, 16 Dec 2009 00:44:42 GMT
Connection: close

Connection closed by foreign host. // NOW YOU'VE SPOKEN HTTP!
d__
+1 for a simple interesting example into how http actually operates.
A: 

Thank you to everyone who submitted locations for information. In order to provide a single place for any future searches on this topic I will answer my own question with your posts. I up-voted everyone who contributed to this answer to be fair. Thanks again!

HTTP The Definitive Guide

HTTP Wiki

HTTP RFC

Easy HTTP

Fielding's Ph.D thesis

Web Services: Concepts, Architectures and Applications

RESTful Web Services

telnet stackoverflow.com 80 // FROM THE COMMANDLINE
Trying 69.59.196.211...
Connected to stackoverflow.com.
Escape character is '^]'.
HEAD / HTTP/1.0  // TYPE THIS IN YOURSELF
Host: stackoverflow.com // AND THIS, FOLLOWED BY TWO CARRIAGE RETURNS

HTTP/1.1 200 OK // FROM HERE ON IS THE SERVER'S RESPONSE.
Cache-Control: private
Content-Length: 115915
Content-Type: text/html; charset=utf-8
Expires: Wed, 16 Dec 2009 00:44:42 GMT
Server: Microsoft-IIS/7.0
Date: Wed, 16 Dec 2009 00:44:42 GMT
Connection: close

Connection closed by foreign host. // NOW YOU'VE SPOKEN HTTP!
A: 

The best and only place to learn how HTTP works is the RFC: http://tools.ietf.org/html/rfc2616

Alex
A: 

One thing to add: the HTTP RFC is currently being revised, both to make it more readable and correct problems. It may server as a useful starting point, although it's a work-in-progress.

http://tools.ietf.org/wg/httpbis/

Mark Nottingham