代理server的理解(1):Windows环境下的代理server设置
浏览器中的代理server设置
Windows系统接口提供的代理server设置是一个全局的代理server的设置,如图所看到的,这里就不多解释:
各个浏览器在使用代理设置的时候,能够主动地获代替理设置亦或是不使用该代理设置,比如Chrome浏览器假设要使用代理设置,仅仅能在图中所看到的的位置进行更改,所以简单地(不使用辅助性工具)为Chrome设置代理,仅仅能通过更改系统全局代理设置(当然此时不会影响不使用该代理设置的进程)。如图:
而360浏览器能够有几种选择:
它能够使用自己程序配置的代理,使用IE的代理(应该就是系统的全局代理设置),或者不使用代理,这样它能够使用独立的代理配置(连使用系统全局代理设置的进程都不会受影响)。
JAVA进程中的代理server
Windows环境下。在java编程中,验证了自己的一个理解。代码例如以下:
package UserApp;
public class LocalProxyHostPrint
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
while (true)
{
System.out.println(System.getProperties().getProperty(
"http.proxyHost"));
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
该代码打印当前的代理server设置。结果发现。当设不设置系统的代理server,都不影响java的打印结果,如上代码执行结果都为null。
另外的一段java程序表明,在同一个进程下,仅仅要这个进程用java代码设置了代理,那么进程下全部线程都使用了这个代理设置。
代码例如以下:
线程代码:
public void run()
{
while(true)
{
System.out.println(System.getProperties().getProperty("http.proxyHost"));
try
{
Thread.sleep(1000);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
main函数的代码:
System.getProperties().setProperty("http.proxyHost", myextractor.__v_ip.get(it));
试验过的还有一个程序表明。假设进程1设置了代理之后。进程2不设置代理。且用进程2打印代理设置,此时。结果为null。这说明代理设置这个上下文是依赖于进程的。而系统的代理设置也不是属于全局覆盖性、全局强制性的设置。它的存在相当于仅仅是把一个參数放在系统某个位置。使用该设置与否。还得详细由进程通过代码来控制。