EDIT: Thanks! I've got a lot of information from everyone and I'm going to go through it bit by bit.
I realize I wrote a rather misleading question. I am interested in Computer Science and its abstract topics as well as networking/web topics. I want to know what technology I'm working on and how it works, and I want that theoretical background so that I can be a better programmer.
http://en.wikipedia.org/wiki/Packet_switching
http://en.wikipedia.org/wiki/Ethernet
http://en.wikipedia.org/wiki/Internet_Protocol
http://en.wikipedia.org/wiki/Transmission_Control_Protocol
http://en.wikipedia.org/wiki/User_Datagram_Protocol
http://en.wikipedia.org/wiki/Client_server
http://en.wikipedia.org/wiki/Http
http://en.wikipedia.org/wiki/Secure_Sockets_Layer
http://en.wikipedia.org/wiki/Domain_Name_System
http://en.wikipedia.org/wiki/HTML
http://en.wikipedia.org/wiki/CSS
http://en.wikipedia.org/wiki/Java_script
http://en.wikipedia.org/wiki/AJAX
http://en.wikipedia.org/wiki/Inter-process_communication
http://en.wikipedia.org/wiki/Algorythm
http://en.wikipedia.org/wiki/Java_%28programming_language%29
http://en.wikipedia.org/wiki/Sql
http://en.wikipedia.org/wiki/Unix
http://en.wikipedia.org/wiki/Well_known_ports
http://en.wikipedia.org/wiki/Google_page_rank
There are good links at the ends of these articles. If you can remember some of the history of these various technologies and mention it in an interview it could be the deciding factor for a nerd to give you the job :-)
It is very python heavy, but python is an excellent first language for someone wanting to quickly get into the thick of things. Enjoy!
I am not sure about networking but whenever I want to find a good book on a given topic, I usually head to Amazon.com and find out the bestsellers or highest rated books: http://www.amazon.com/gp/search/ref=sr_nr_n_5?rh=n%3A283155%...
SICP is a great introduction to programming topics like recursion, abstraction, and implementation of programming languages. It teaches a way of thinking about programming, which is quite abstract. It is utterly unhelpful if you're interested, as the op seems to be, in the more practical concepts of real-world systems, and the internet / web-development in particular.
on the programming side, i'd suggest familiarizing yourself with object-oriented design; i've heard that http://www.lynda.com/Programming-tutorials/Foundations-of-Pr... is a great video series. i'm not sure of a good resource to gain a deeper understanding of web development, but i don't think protocols are the right place to start. i'd look for resources that really dive into the http response cycle, mvc pattern, and the guts of whatever framework (such as rails or django) you're using.
good luck.
You succinctly described my plight, "knowing the syntax but not having a deep understanding" as well.
I don't feel comfortable giving specific book recommendations, because I have no way of knowing whether the ones I own or have read are much if any better than most of the others out there; and you can look up reviews on Amazon probably easier than I can.
For example, here's RFC 2616 (http://www.ietf.org/rfc/rfc2616.txt), the primary definition for HTTP/1.1. Try writing a web server just using sockets in Python/Ruby/whatever, based off of that. Don't worry about performance, handling more than one client at a time, or covering the complete spec, just look at how the essentials fit together.
I learned a LOT doing this (in Lua); I learn best building from the bottom up. If you learn better top down, try digging down from whatever platform(s)/framework(s) you're using now.
If you want to dig deeper, look into distributed systems, Unix network programming (Stevens's books are great), and let your interests lead you from there.
For more specific topics, look through the entire O'Reilly catalog. There is bound to be something there that covers at least part of what you want to learn. http://shop.oreilly.com/category/browse-subjects.do
For stuff that you do while you're doing something else, I really like Unix Power Tools. http://shop.oreilly.com/product/9780596003302.do
I honestly think Wikipedia is a fantastic and fairly in-depth resource for technical topics. I would start here and follow as many links as you need to get a better understanding of what's going on: http://en.wikipedia.org/wiki/OSI_model Protocol specifications are also surprisingly readable. Here's the HTTP protocol RFC (request for comments): http://www.w3.org/Protocols/rfc2616/rfc2616.html
As a newer programmer recently remarked to me, it's tough when you get going because you don't even know where to look. It's a lot like learning a new (spoken) language: immerse yourself, understand that bewilderment and frustration is normal in the beginning, and keep at it until you hit that inflection point where it starts making sense. The fact that you even want to get from "phrase book" to "fluent speaker" is a good sign.
For the "how does the web work question", the real question is if you are really interested in knowing that, if so "Computer Networking: A Top-Down Approach" gives a really in depth analysis of protocols at the different levels of abstraction. Otherwise most web related O'Reilly books cover the surface of what you need to know to develop applications at most small corporations.
http://amazon.com/exec/obidos/ASIN/0716782847/mqq-20 http://i.stanford.edu/~ullman/focs.html
http://en.wikipedia.org/wiki/Outline_of_computer_science
I flipped through the Schaum's guide once - it's very good, I would have benefited a lot from it if I were younger. Wikipedia's outline is a good alternative, just maybe not as compact or tailored to the needs of a student.