由浅入深写代理(1)-介绍

代理作为现代人上网必备的一个工具,但是大家其实对其中的原理也不是特别了解,所以写了一个系列的教程,由浅入深的讲解下。

代理可以分为正向代理和反向代理。

  • 正向代理是一个位于客户端和目标服务器之间的代理服务器,用来把客户端的请求代理到目标服务器,比如科学上网。
  • 反向代理就好像是目标服务器,客户端并不知道这个请求具体会被转发到哪里,由反向代理自己判断,比如负载均衡。

这次主要教程跟正向代理有关,目前已更新如下

由浅入深写代理(2)- socket 编程
由浅入深写代理(3) -socks5 代理
由浅入深写代理(4)-socks5-代理
由浅入深写代理(5)-socks5-代理
由浅入深写代理(6)-http-代理
由浅入深写代理(7)-https-代理
由浅入深写代理(8)-ss-代理
由浅入深写代理(9)-ssh-代理
由浅入深写代理(10)-内网穿透

tips

  1. 这次教程的所有资源的 github 地址为 https://github.com/facert/socket-example
    (除了 ss-local.py 和 ss-server.py 以外,其他都用 python3 编写)
  2. 公众号 程序化思维 , 欢迎关注

写给前端的甩锅指南

1
2
3
4
5
6
7
8
9
前端小白,“老王,你的接口不能用了”
后端老王一脸不屑,“怎么可能,刚刚还能用,你看看参数传对了没有。”
前端小白吭哧吭哧检查了几遍,“参数没问题啊,你看看是不是有 username, id。。。”
后端老王顿了许久, “参数应该没问题,你再清下浏览器缓存试试”
前端小白摁着 "ctr + f5" 刷新了好多次, 一脸苦逼的说:“清完浏览器缓存了,还是有问题”
后端老王略过一丝疑虑,难道是我接口出问题了,不该啊,刚还能用,都测试好几遍了,说道:“你看看是不是数据库存的测试数据有问题,删了再试试,或者换个浏览器,重启下 server。”
前端小白照着老王的方法逐一尝试着。。。
突然老王拍了下脑瓜,一脸尴尬的说:“小白,我刚 fix 一个线上 bug, 测试环境换了分支,所以接口出问题了。”
小白一脸生无可恋的望着老王头顶的地中海发呆。。。

上面情节纯属虚构,作为一个后端开发人员,我怎么忍心这么黑自己的同行呢 😭。不过思考下这么一个问题,前端如何能够快速的定位问题呢。这里面跟很多因素有关,比如前后端协作流程是否完善,前后端人员的经验。

Read More

过滤豆瓣租房小组中介贴之 python 实现 k 近邻算法(四)

豆瓣有各种小组,每个小组会有个主题,比如租房小组基本里面全是房源相关的,当然偶尔也会有广告出现。那么如何能够让机器知道你发的帖子到底是哪个主题的呢,简单来说就是如何给帖子分类。这个时候需要介绍机器学习一个最简单的算法,叫 k 近邻算法。 原理介绍见这篇 K NEAREST NEIGHBOR 算法

屏幕快照 2017-03-06 下午1.35.46

Read More

过滤豆瓣租房小组中介贴之 python 实现 TF-IDF 算法(二)

前段时间写过一篇 过滤豆瓣租房小组中介贴之 python 实现余弦相似度(一), 这里面使用 jieba 将文档分词,然后计算对分词的结果向量化计算相似度。比如 我的房子在方庄地铁附近的芳城园一区 会被分词为 方庄 芳城园 一区 地铁 房子 附近,我们发现少了 我 的 在 这些词,在自然语言处理的过程中,称这些词为停用词,简单的说就是这些词对于分词结果没有多少帮助,所以需要直接过滤掉。因为我们直接调用 jieba.analyse 方法,所以停用词被直接过滤了,如果只是调用 jieba.cut,会将返回包含停用词的结果。

Read More

过滤豆瓣租房小组中介贴之 python 实现 布隆过滤器(三)

其实这篇文章跟过滤中介贴没什么关系,只是在爬豆瓣小组的时候遇到的一点思考,我们知道,其实爬虫就是循环的爬取网站的 url,但是怎么判断爬取的 url 是否重复呢,最简单的,维护一个列表,每次循环查找,很明显效率很低。进阶的,采用哈希表,每次查询都是 O(1), 看上去不错。不过如果一旦 url 大到一定程度时,单台机器的内存肯定吃不消,这个时候分布式方案就呼之欲出,变得越来越复杂。那么能不能在牺牲一点点精确性的前提下,有简单的方案呢,答案是肯定的。这就是 布隆过滤器。

Read More