cs系列教程五(delphi)
[Post=150]大家好,我是CashSoldier;
上次讲了一下WEB服务器,许多人也许听的是云里雾里的,不过,这也是我期望的,否则,我还有什么水平继续讲下去?所谓艺术,就是一般人看不懂的东东就叫艺术;所谓技术,也是一般人看了莫名其妙的就叫技术;不然,别人花那么多钱请我搞技术干嘛?
好了,上次明白了WEB服务器的工作原理,顺便我也讲了一些有关浏览器的工作内容,今天我们谈谈代理服务器。
何谓代理服务器呢?我想无非就是代理你的部份工作,我直接请求某个客户,可能关系不到位,他不想见我,我怎么办,只好找个关系好的代理人了;代理服务器也一样,网赚中很多都要求同一IP不能怎样怎样的,无非就是不想见我,就像有段时间有些网站封杀中国的IP一样,你访问它,它自然知道你的IP等信息了,你不可能不给它一个名片吧,可名片名片,也就是明摆着骗,这样可不行的,所以,一定要找到代理才好骗的。
另外提一个话题,很多人问我,怎么样改变IP地址?我知道的除了代理服务器外,就是拔号上网时不断地断开连线,由ISP给你分配IP时每次不同了。更有人追问,我不如直接修改我的IP信息不就得了,要那么麻烦干嘛?呵呵,人家都吃干饭长大的?那么容易?你以为你就可以多印几张名片,到处乱撒不负责任呀?可以呀,通过一些方法是可以改变我现在发出去信息的IP地址,到网上查查DDOS吧,它就是来改变IP地址等信息的,人家做得多绝呀,中文名称叫做什么?拒绝服务攻击!你的IP倒改变了,可你所需要的信息怎么样返回给你?不可能签了合同,钱却汇到它人帐上了吧,你愿不愿意?对方不知道你的IP地址,或者你给的地址是别人的,你怎么收东东呢?如果你发工资的时候也是这样的话,麻烦你去你公司财务室将你工资卡的帐号改成我的,谢谢了啊!TCP/IP中,如果返回信息到不了目的地的话,会多次进行尝试,不然为何叫安全的联接呢(有这个意思在里面),这样会浪费很多网络带宽和服务器的工和时间。上次不是造成大量的网站死翘翘吗?我可不是黑客(当然即使是也不会在这里承认的)。说这些呢,也就告诉大家,以后不要问我这个问题,现在我的技术虽然很高很高(可能只比你高一点点),但这个东东我还没去仔细研究过。
那今天要讲的代理服务器有什么用呢?其它的作用我不多讲,只谈谈它的工作原理,因为它对我们的工作有很大的用处,至少可以大大减少一些工作量。
通过浏览器发送和接收,我们可以通过浏览器的菜单:查看-->源文件看到返回的信息,可你怎样看到发出去的信息?以及返回的头信息部份呢?有人会告诉我,用工具呀,IRIS或Net 什么等等截包工具。当然可以了,它们的内容我就不讲了,但能否有更简单的呢?就是通过代理服务器了。有人会问:代理服务器会让我看这些信息吗?不可能呀!对!所以,了解代理服务器的工作原理,除了做其它的外,自己也可能做一个呀。我就自己做了一个,虽然简单,但分用来分析代码已经足够了。
上次我们谈过,浏览器提交的内容是文本格式的,我只讲解了第一行的内容,但是,对于代理服务器来讲,有这一行就足够了。
如下面的内容:
GET /login.cgi?user=abc&pass=abc HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://www.sina.com.cn/index.cgi
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host:www.sina.com.cn
Proxy_Connection: Keep-Alive
Pragma: no-cache
第一行是请求的文件,这是浏览器发给网站的信息,如果是发给代理服务器,就有些不同了。首先,要联接的IP地址不再是URL所解释的网站地址和端口了,而是代理服务器的IP地址和端口,代理服务器将收到如下格式的内容(自己写浏览器如果要支持代理的时候一定可要记住了):
GET http://www.sina.com.cn/login.cgi?user=abc&pass=abc HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://www.sina.com.cn/index.cgi
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host:www.sina.com.cn
Proxy_Connection: Keep-Alive
Pragma: no-cache
是的,它第一行是全称了,也就是你输入的URL全部内容,因为,代理服务器只需要第一行的内容来进行分解和处理,其处理方法和浏览器没什么两样,联接好网站主机后,会以浏览器提交的格式一样提交出去,收到信息后,原封不动地送回给浏览器。
就这样,我们就可以自己写一个代理服务器,可以很清楚看到浏览器提交的全部内容和WEB服务器返回的全部信息,而不会留下一些自己不知道的东西了。
[/Post]