Hi SSHSSH
I don't think there is any documents describing the ratio between HTTP requests and responses, but maybe it would be time well spent if you used some time on reading about HTTP. When the TCP session is created to a site like google.com, the browser will request the root of the site. This request will usually be a in the size of a few hundred bytes (346 bytes in this case of testing). When the HTML of the site has been returned to the client (in a 605 bytes large packet), the client will begin requesting all the elements of the site that was not delived in that HTML (pictures for example). These elements might not be able to be transferred in one TCP packet, but might require many packets = much bigger reponse than request.
I recommend downloading Wireshark and try it out on a very basic site without SSL (will hide all the fun stuff). This can be very informative and quite fun if you like that kind of stuff :)
The same goes pretty much for SQL. I don't really know much about SQL traffic patterns, but probably it's a bit more "equal" in terms of up/download. I base this on the fact that even though you might make a query that received a lot of information, you probably also does updates, inserts, deletions where the inital request is actually bigger than the response from the database.