I'm running Windows Vista home premium. I want to see all outgoing HTTP requests from my PC along with the URL. Is there any free tool for this?
You can use http://www.wireshark.org/
The user guide can be found at http://www.wireshark.org/docs/wsug_html/
To filter http traffic specifically you can refer to; https://serverfault.com/questions/96272/how-to-filter-http-traffic-in-wireshark
There is a detailed article on this topic at Hubpages. It describes a solution to easily log and filter HTTP requests made in a home LAN based on Wireshark and some supplemental free software.
In a nutshell, the article deals with the problem of memory overgrowth that prevents using Wireshark for continuous HTTP requests monitoring. To address the issue, the author suggests using tshark.exe (the commandline version of Wireshark) periodically killing and restarting it with System Scheduler and a batch file like this:
FOR /F "usebackq tokens=2" %%i IN (`tasklist ^| findstr /r /b "tshark.exe"`) DO start /MIN sendsignal.exe %%i ping 127.0.0.1 -n 7 -w 1000 tshark -2 -l -t ad -R "http.request.method == GET" -N nC -i 2 | ts_rdln.exe
where sendsignal.exe is a utility to send Ctrl+C to a program; ts_rdln.exe is a simple tshark log parser/filterer; ping command is used to introduce a delay; and the i argument of the last line is the number of your NIC looking out into the Internet.