什么是网络代理

代理服务器英文全称是Proxy Server
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。

  大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。

  更重要的是:代理服务器是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层,从而起到防火墙的作用。

  鉴于上述原因,代理服务器大多被用来连接INTERNET(局域网)和INTRANET(国际互联网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达网外网,例如从169到达163。代理服务器就象是连接两岸的桥梁,但是169与163之间的代理服务器一般的都被设置了访问密码,或者要收代理费用,阿Z搜索并提供的是完全免费的代理服务器地址,完全没有任何限制,不需缴交任何额外费用!
网络代理有两种:
1.局域网上,通过别人的计算机上网。这种,只要知道IP地址,用户,密码,在IE 选项-连接-局域网设置上把相应的东西填上就可以了。

2.突破上网限制,通过别的计算机来实现上网的无限制。设置就是在IE选项上相应网络连接点设置天上相应的地址,用户,密码就可以了。

3.国内的通通通,要下载软件。具体到通通通网站看吧。 什么是代理服务器?
代理服务器(Proxy server),从其名字上不难理解,就是做代理的,其作用与现在各种各样的代理商差不多。
作为教育网和169的用户来讲,他们不能直接访问国外的站点,而且网络速度也惊人的慢,这样很多网络功能就无法使用。最典型的例子就是不能用Icq了,因为Icq的服务器都在国外,直接连不上。因此在这个时候代理服务器就起了至关重要的作用。
通常我们访问网站都是直接与目的主机相连,使用了代理服务器,可先与代理服务器进行连接,然后把我们的请求(比如说我们想得到哪个网页的内容)告诉代理服务器,由代理服务器帮我们取下来。一般代理服务器都有一个很大的Cache,起缓冲的作用,它不断将新取得数据储存到它的存储器上;如果浏览器所请求的数据在它本机的存储器上已经存在,而且是最新的话,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著地提高浏览速度和效率了。
代理服务器通常有两种类型,Http代理和Socks5代理。Http代理是用来浏览网页用的,其端口一般是80和8080,不过也有3128等其它端口的;而socks5代理则可以看成是一种全能的代理,不管是telnet、ftp还是irc聊天都可以用它,这类代理的端口通常是1080。

php命名空间,自动加载

1:首先介绍下php魔术方法__autoload()
实现自动加载最简单的方式就是使用 __autoload 魔术方法。当需要使用的类没有被引入时,这个函数会在PHP报错前被触发,未定义的类名会被当作参数传入

2:在说下spl_autoload_register() 方法
这个方法需要你的 PHP 版本号大于 5.12。一旦调用 spl_autoload_register() 函数,当调用未定义类时,系统就会按顺序调用注册到 spl_autoload_register() 函数的所有函数,而不是自动调用 __autoload() 函数

3:PSR4规范
PSR-4 规范中必须要有一个顶级命名空间,它的意义在于表示某一个特殊的目录(文件基目录)。子命名空间代表的是类文件相对于文件基目录的这一段路径(相对路径),类名则与文件名保持一致(注意大小写的区别)。

举个例子:在全限定类名 \app\view\news\Index 中,如果 app 代表 C:\Baidu,那么这个类的路径则是 C:\Baidu\view\news\Index.php

4:实现过程
我们就以解析 \app\view\Index 为例,编写一个简单的 Demo:

namespace app\view; 
 class Index 
 {
     function __construct()
     {
         echo 'Welcome To Home';
     }
 }


接着我们在创建一个加载类(不需要命名空间),它处于 \ 目录中:

class Loader
{
    /* 路径映射 */
    public static $vendorMap = array(
        'app' => __DIR__ . DIRECTORY_SEPARATOR,
    );

    /**
     * 自动加载器
     */
    public static function autoload($class)
    {
        $file = self::findFile($class);
        if (file_exists($file)) {
            self::includeFile($file);
        }
    }

    /**
     * 解析文件路径
     */
    private static function findFile($class)
    {
        $vendor = substr($class, 0, strpos($class, '\\')); // 顶级命名空间
        $vendorDir = self::$vendorMap[$vendor]; // 文件基目录
        $filePath = substr($class, strlen($vendor)) . '.php'; // 文件相对路径
        return strtr($vendorDir . $filePath, '\\', DIRECTORY_SEPARATOR); // 文件标准路径
    }

    /**
     * 引入文件
     */
    private static function includeFile($file)
    {
        if (is_file($file)) {
            include $file;
        }
    }
}

最后,将 Loader 类中的 autoload 注册到 spl_autoload_register 函数中:

include 'Loader.php'; // 引入加载器
spl_autoload_register('Loader::autoload'); // 注册自动加载

new \app\view\Index(); // 实例化未引用的类

/**
 * 输出:  Welcome To Home 
 */