开发者

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, undefi开发者_Python百科ned, 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...


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.


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 ?


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜