是否有可能区分requestURL作为一个在地址栏中键入login节点代理?

我只是无法使http-proxy模块作为正向代理正常工作。 它作为一个反向代理很好。 因此,我使用节点的http和net模块实现了一个基于节点的转发代理。 它工作正常,都与http和https。 稍后我会处理websockets。 除此之外,我想logging通过浏览器访问或请求的URL。 在请求对象中,我确实得到了URL,但是正如所料,当一个页面加载时,其他的请求被触发,包括AJAX,第三方广告等。我不想logging这些。

我知道我可以区分一个AJAX请求和x-requested-header。 我可以通过检查用户代理头来区分来自浏览器的请求(尽pipe这些可以通过curl来欺骗)。 我想尽量减less日志条目。

商业代理如何logging这些信息? 或者他们只是logging每一个请求? 一种方法是在主要请求假定它们全部与主请求相关联后的某个时间内不logging任何请求。 这在技术上不准确。

我在这方面进行了研究,但没有find任何解决办法。 我不寻找任何具体的代码,只是一些方向…

没有人能够准确的知道,但是你可以find诸如“HTTP referer”,“x-requested-with”或者在每个ajax请求中添加自定义头文件的线索(默认情况下,squid proxy会发送一个“X-Forwarded-For “他说,他是一个代理),但任何人都可以找出你发送了什么标题你的请求或复制所有默认浏览器发送一个普通的浏览器,你会相信它是一个人从浏览器,但可能是一个bash由bot发送的cURL。 所以,实际上,例如,如果请求是AJAX请求,因为头部不是强制性的,默认情况下,您的浏览器或框架会添加一个x请求的或有用的信息来帮助“猜测”谁在执行请求。