Redis 中的布隆过滤器

2018-10-18
阅读 2 分钟
17.4k
布隆过滤器是一个神奇的数据结构,可以用来判断一个元素是否在一个集合中。很常用的一个功能是用来去重。在爬虫中常见的一个需求:目标网站 URL 千千万,怎么判断某个 URL 爬虫是否宠幸过?简单点可以爬虫每采集过一个 URL,就把这个 URL 存入数据库中,每次一个新的 URL 过来就到数据库查询下是否访问过。

SSH 登录流程分析

2017-12-07
阅读 4 分钟
11.2k
本文首发于 [链接]作者 jaychen 写一篇短文,介绍 ssh 密钥登录远程服务器流程和注意事项。 登录流程 密钥登录比密码登录安全,主要是因为他使用了非对称加密,登录过程中需要用到密钥对。整个登录流程如下: 远程服务器持有公钥,当有用户进行登录,服务器就会随机生成一串字符串,然后发送给正在进行登录的用户。 用户...

Laravel 中的数据迁移和数据填充

2017-12-02
阅读 6 分钟
4.7k
Laravel 中提供了数据库迁移的方式来管理数据库,想象一个场景:在一个多人开发的项目中,你的同事修改了某个数据库结构并修改了代码,通过 git 你可以即时的同步同事修改的代码,但是数据库结构,你只能通过手工的方式来复制同事修改的 SQL 语句,执行以保证数据库的结构一致。那么,Laravel 中的数据库迁移概念,就是...

Java 网络 IO 模型

2017-09-26
阅读 3 分钟
4.3k
在进入主题之前先看个 Java 网络编程的一个简单例子:代码很简单,客户端和服务端进行通信,对于客户端的每次输入,服务端回复 get。注意,服务端可以同时允许多个客户端连接。

单元测试工具 TestNG 使用

2017-09-18
阅读 5 分钟
7.9k
单元测试,顾名思义,对系统中原子性的功能进行测试,一般情况下是单元测试是针对某个功能函数的测试。编写单元测试是系统开发中重要的一环,也是一项科学优雅的装 X 方式。而且,编写单元测试代码并不是一件很麻烦的事情,只要稍微学习就可以掌握这项技能。

Java 代理模式与 AOP

2017-09-15
阅读 5 分钟
3.5k
先说下AOP,AOP 全称 Aspect Oriented Programming,面向切面编程,和 OOP 一样也是一种编程思想。AOP 出现的原因是为了解决 OOP 在处理 侵入性业务上的不足。

运输层--TCP协议(2)

2017-03-01
阅读 3 分钟
2k
首先,要明确流量控制是针对谁而言的.之前说过发送方会维护有一个发送窗口(rwnd, receiver window),落在这个发送窗口的数据都可以发送出去,但是可能存在一种情况:发送方发送数据的速度太快,接收方应用层的应用处理数据太慢,导致接收方接收缓存的空间已经满了,那么如果这个时候发送方还可以不断的向发送方发送数据,那么这...

运输层--TCP协议(1)

2017-02-20
阅读 4 分钟
4k
首先,为什么需要运输层?我们都知道网络层中根据IP地址可以确定整个网络中的一台主机.但是,真正进行通信的是两台主机中的进程.网络层只能唯一标识主机.如果没有了运输层,网络层可以通过IP地址把数据交付给接收方,但是对于接收方主机而言,并不知道这个数据要交给哪一个进程.所以在整个计算机通信过程中引入运输层,站在运输...

实现一个SSO系统

2016-12-29
阅读 3 分钟
6.1k
SSO全称Single Sign On,单点登录.用于实现多系统的登录认证.说白了就是只要一个账号就可以访问阿里旗下支付宝,淘宝, 天猫等网站.站在企业的角度这样做有一个好处:只要有一个系统负责登录模块,其他的子系统就可以专注于自己系统的业务逻辑,需要的时候请求认证系统就可以.站在用户的角度好处在于只要一个账号就可以访问其...

CSRF攻击原理及预防手段

2016-12-27
阅读 2 分钟
14.7k
CSRF全程 Cross Site Request Forgery, 跨站域请求伪造.这种攻击方式相对于XSS,SQL注入等攻击方式比较晚被发现,今天就来讲解下这种攻击方式以及避免方式.

使用docker搭建开发环境

2016-12-21
阅读 12 分钟
28.9k
我的主力机是windows,windows下面有太多提升效率的软件.但是开发的时候不得不使用linux.就单单开发而言.我还是喜欢使用linux.所以就造成了我得在windows下面使用虚拟机.这是最开始的办法.后面得知有vagrant这个东西之后,用了一阵子感觉还不错.但是我使用的时候动不动就会出现一些问题,所以一怒之下决定学学docker.然后使...

Apache--MPMs && Nginx事件驱动

2016-12-21
阅读 4 分钟
4.4k
MPM全称是多道处理模块,我们都知道apache是以模块化方式设计的.那么MPM用来决定apache如何处理用户请求的.是通过一个进程处理一个请求,还是一个线程处理一个请求.当前MPM有三种可以选择的方式: prefork worker event 虽然有以上三种方式,但是要注意在任何时间,必须有一个,而且只能有一个MPM被使用.那么下面就介绍一下这...

深入MySQL索引

2016-12-16
阅读 10 分钟
5.4k
MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起.

PHP包管理工具--Composer自动加载

2016-12-16
阅读 2 分钟
6.9k
接触过Laravel的同学都知道,Laravel使用Composer作为项目的包管理工具.但是Composer并不是Laravel独有的,Composer是PHP的包管理工具,这两者的关系就像pip于Python,npm于Node一样.但是发现真正项目中使用composer还是比较少的, 所以这里这里写一遍文章介绍Composer的使用,帮助那些对于Composer还是有点模糊的同学.此文跟L...

深入Laravel服务容器

2016-12-09
阅读 6 分钟
7.8k
在开始之前要明确一个概念,不管是设计模式,还是依赖注入等等,都是为了实现模块化.所谓模块化就是希望一个软件是由很多子模块组成的,这些模块之间的依赖程度尽量的低,也就是如果系统中不需要某一个功能,那么只要移除这个功能所对应的模块就可以了.

计算机网络基础2

2016-12-08
阅读 5 分钟
3.4k
上一篇,我们谈到了交换机没有办法解决广播风暴的问题,所以我们在MAC地址的基础上增加了一个逻辑地址,即IP地址.引入了IP地址之后,所有的通信都要靠IP地址并且,多个广播域之间使用路由器连接,这个网络变成下面的样子.

深入理解Laravel中间件

2016-12-06
阅读 7 分钟
16.2k
Laravel中的中间件是laravel中的一个重点,本篇将从源码的角度去讲解Lravel中的中间件,洞察Laravel中的中间件是如何运行的,明白为何我们使用中间件的时候要进行那些步骤. 本篇文章假设读者已经掌握中间件的基本用法,如果不了解其用法,可以移步查看laravel中间件的使用

计算机网络基础1

2016-12-05
阅读 3 分钟
2.6k
网上关于网络基础的文章有很多,而且有很多都是很优秀的文章.这系列的文章只是作为自己梳理计算机网络知识点之用.文章从计算机网络起源开始,逐步分析计算机网络为何发展成今天的样子.

网络通信中使用的算法

2016-12-03
阅读 3 分钟
4.6k
加密算法在计算机体系中运用得很广泛, 你可能很经常听到单向加密算法,私钥,公钥之类的名称,但是并不清楚之间的关系以及为什么会有这些加密算法,那么这篇文章可以帮助你找到答案.

编译安装php&&apahce以及pecl使用

2016-12-03
阅读 6 分钟
4.1k
网上有很多关于编译安装php&&apache的教程,但是个人感觉都不是很好,所以决定干脆自己写一篇.本篇不单单是编译安装php&&apache的教程. 还穿插了一些其他的知识点.