针对企业对员工上网行为的控制管理,可以采用URL过滤技术。如企业不允许研发员工在上班时间访问娱乐网站,在下班时间则允许;或者企业不允许市场人员访问研发内部网站等等。这些基于不同的用户组、不同的时间段,访问的网页有区别的问题,可以采用URL过滤技术实现。
URL过滤功能可以归纳为3大类:
分类查询,提高了访问速度。
web访问高峰期,要建多少TCP连接,是不是会超过设备负载,性能是不是会受影响,查询速度是不是会很慢;若是UDP连接,怎么处理链路拥塞情况下查询报文丢失的情况,查询超时怎么处理?总而言之,查询到分类后,可以与本地的用户组和时间段关联,判断该http请求是否该放行。
server,给client发送一个 reset报文,并重新构造一个报文发送给客户端。涉及到报文封装,校验和计算,序列号修改。
如何从http中提取URL呢?我们知道http get请求的格式:
GET /new/tb_02.gif HTTP/1.1
Accept: */*
Referer:http://www.360doc.com/content/09/1209/10/556933_10698354.shtml
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows
Host: pubimage.360doc.com
Connection: Keep-Alive
我们把 host 部分提取出来,进行 URL 过滤,过滤的时候,用什么匹配方式?可以考虑 MPSE 算法,即把要匹配的模式串先预编译成状态机,对string进行一次扫描时,进行状态跳转,因此一次扫描,就能找出所以字符串。时间复杂度为0(n);
工作。
在该特性开发过程中,碰到的问题有:
1、易用性:web页面整改:按主功能划主页面,主页面里放子功能;匹配方式整改,分为prefix, surfix, exact, obscuring;分类页面区分自定义和预定义;category, user, address,action 的配置;默认IP地址;
2、功能问题:分类查询的返回报文;页面推送中RST报文重传;
如何测出这些问题:
1、易用性:按功能模块来设计页面;
2、功能问题:多任务交互时,考虑资源修改的情况;交互复杂的地方容易出现问题;