PAC文件语法学习

pac文件可以采用JavaScript语法编写,pac文件中必须包含一个叫做FindProxyForURL(url, host)的函数,因此,可以认为这个函数就是他的main函数。

每一个浏览器请求之前,都会执行一次这个函数。由于传入的参数有url和host,编写pac文件的时候,是可以实现URL级别的代理控制(即http://a.com/bhttp://a.com/c可以使用不代理)。

这个函数的执行返回值,就是告知浏览器用何种方式发出请求:

  • DIRECT 直接访问
  • PROXY 127.0.0.1:8016 http代理
  • HTTPS 127.0.0.1:8888 https代理
  • SOCKS 127.0.0.1:8888 socket4代理
  • SOCKS5 127.0.0.1:8888 socket5代理
  • DIRECT; PROXY 127.0.0.1:8016; SOCKS5 127.0.0.1:8888 依次尝试,直到能够成功请求

相关资料

小思考1: http代理和修改host是否一样?

实验准备

  • 方法一:在/etc/hots中加入127.0.0.1 twwy2.net
  • 方法二:在浏览器的pac文件进行设置:匹配到twwy.net的时候返回PROXY 127.0.0.1:80

抓包观察差异

  • 方法一
    • GET / HTTP/1.1\r\n
    • Connection: keep-alive\r\n
  • 方法二

结论

由此可见,两种方式的HTTP包构造上存在差异的,按照协议来说,应该是能抓到CONNECT这样的一个包,但是实验的时候没有抓到。如果方法二如果需要正确响应,对方必须是一个代理端口,而如果是一个正常服务的端口,则会出现异常。你可以尝试将网上/etc/hosts文件中的google.com对应的IP不在hosts文件中设置,而是用pac设置成 HTTPS IP:443等,应该响应都是异常的。

小思考2: DNS/hosts的结果是否会影响http及socket代理

实验

  • /etc/hots中加入127.0.0.2 twwy.net
  • 在浏览器的pac文件中进行设置:匹配到twwy.net的时候返回PROXY 127.0.0.1:80

结论

在浏览器中访问http://twwy.net/返回的是127.0.0.1的结果,从抓包上来看也验证了这一点。浏览器是直接根据地址向http代理请求访问http://twwy.net/这个页面,而非根据本机dns或hosts解析成127.0.0.2之后再向http代理请求。

地震之后

逃离,我正在不停地逃离。
回溯,我的记忆在不停地回溯。
那是在地震的前夜,街道的负责人挨家挨户地来敲门,让我们搬到一个统一的救灾广场,地震可能即将到来。我们收拾了一下,起身来到广场。广场上还真是热闹,人头攒动啊。一个老外跑过来,不知道是用着我们听不懂的中文还是英文和我们陈述,他为一个非盈利机构服务。他需要搭建一个灾后用于寻人和重建的门户。他自称技术专家,但是貌似各种技术细节也都经不起推敲,我也不想去鸟他,继续前进。

Read More

正确的错误

今天早上在车上看了可汗的TED视频,有个点深有感触:允许犯错,重视犯错。这对学习而言是非常重要的,是的,其实这个对于任何事情都是重要。
不知何时起,犯错似乎变成了一件奢侈的事情。我们没有过多的成本去犯错,或者我们的犯错必须是在可预期的范围内。是的,这有些可笑。因为错误的痛楚,让我们很聪明地因噎废食地将生命中的某块减去,不去这样做那么就不会犯错了。

请还给生活原本的模样

是的,我现在是平静的,而在一个小时前,我还是歇斯底里的:我觉得生命已无力前行,我会将所有的一切都抛洒在这里,包括生命,我无法忍受生命的平庸,无法忍受一无是处的自己,无法忍受四面楚歌的世界。

Read More

宁夜

周围,一点一滴都静下来了,台风的余威也过去了,只剩下一两声若有若无的猫叫。
仰望天空,月亮是没有从云中出发,也辨不清究竟是白云还是乌云了。放松,放松,感觉心头那块黑板正在被擦拭着,干净,干净了。
原本我应该准备睡觉去的,但是却不太有睡意,便开着本子,码些字。我是有印象的,之前也写过类似的感觉,类似的文笔的文章,也不知在哪次博客迁徙中丢失了。不过既然已经丢失了,那么我即使码得和原来一样也没人知道了吧,哈哈。
夜的景象,在我的脑海是比较单调的,因为我是一个倒头就睡的孩子,深夜,多半已经在了梦乡。慢慢地,我将时间纵向切割,回溯,串联起生命中的每一个夜晚,它们的景象也渐渐清晰起来。
小时候在爷爷奶奶家的夜晚,是没有空调的,只有电风扇和扇子,电风扇一般也只开一档就够了,吹了一会儿周遭感觉也都凉下来了,躺在竹席上的我也已然睡去了。
荷塘月色的景象却闯入了我的脑海,实际上我从未到过这样的景,但靠着这样的想象,我才背下了这篇课文,于是也就永生难忘了。夜色,荷叶,晚风,感觉时间久了,当时丰满的景也有些被抽离了,不过虽然我不能痕清晰地讲出画面,但是我相信你们心中也一定藏着一幅类似的画面吧。
在夜里,似乎我的情感是被抽走了飘在空中的,随着微风摇曳在空中,飘啊飘。一睁开眼,我发现我落在了月球,我直起身子,无助地看着地球,便有了微信的首屏的画面。
其实我想说的,并不是我所写的,而我脑子中的词,却怎么也串不成句子落到键盘上,那么就让它飘着吧,守护着这宁静的夜。