foobar
foobar

Reputation: 11374

Why are browser requests not going through my proxy server?

I tried writing a simple proxy in node.js today with a basic HTTP server, I realized in Firefox when I reload the proxy, I can see a request. However, when I load any page, it doesn't seem to be going through my proxy. I can curl the server, and it works fine. But why is the browser not using my proxy?

The code just looks like:

var http = require('http');

var listener = function(request, response) {
  console.log('hi');

  response.write("200");
  response.end();
};

var server = http.createServer(listener);
server.listen(8000, undefined, function() {
  console.log('Server has started on 8000');
});

I'm just looking for something that changes the header of the request, though a reverse proxy would also be cool.

Edit: This is how I'm pointing my browser to my proxy. In Firefox, preferences -> advanced -> Network -> Settings

I tried to setting the HTTP Proxy under "Manual proxy configuration" to 127.0.0.1:8000 - that seems to do something, cuz all my pages fail to load, but I don't see any activity on my proxy server.

I also tried to just put 127.0.0.1:8000 under "Automatic proxy configuration URL" which sends a request when I just configure it, but nothing is proxied afterwards. I'm wonder what kind of response the "automatic" configuration is looking for...

Upvotes: 3

Views: 3445

Answers (3)

j pimmel
j pimmel

Reputation: 11637

The code you have written isn't a proxy server? It's just an HTTPd responder, which is why your curl script 'works' but firefox doesn't

Taking an example already online, http://catonmat.net/http-proxy-in-nodejs, you will see that as well as setting up the HTTPd in node, you have the dispatch HTTP calls to the server being proxied and drain that output back into the response to your browser.

Upvotes: 1

Jamund Ferguson
Jamund Ferguson

Reputation: 17014

To use Charles to capture traffic to localhost you need to use http://localhost./ (yes, with a dot on the end).

See the documentation here: http://www.charlesproxy.com/documentation/faqs/localhost-traffic-doesnt-appear-in-charles

Upvotes: 0

Cyclonus
Cyclonus

Reputation: 537

In firefox, you want to set Manual Proxy configuration -> Http Proxy: 127.0.0.1 and your Port 8000

Check "Use this proxy server for all protocols"

That works for me :)

Maybe you have another server running on 8000 ?

Upvotes: 0

Related Questions