| "HTTP tunneling" is a term that can have a range of meanings. In this context, I believe we are talking about tunneling other TCP/IP protocols through HTTP."
This works, much of the time. It requires the firewall to allow HTTP traffic outbound on port 80.
Simple HTTP tunnels require an unobstructed connection to the destination on port 80. More capable HTTP tunnels can work through SOCKS firewalls.
The downside to HTTP tunneling, for most users, is the requirement to build a remote end of the tunnel somewhere. Many users don't have a server running somewhere on the Internet where they can tunnel to.
The other downside is that you need an HTTP tunneling client on the network where you are tunneling from. Usually, this is just an inconvenience.
Sometimes, instead of tunneling, I will just set up a web-based ssh client. Then, I just point my web browser to the ssh client, log in, and connect to whatever I need to from my Unix shell. |