随笔分类 -  读书笔记

摘要:点击测试 自己的私人文章,仅仅用来测试,不可见啦啦啦 阅读全文
posted @ 2021-06-02 17:40 猫叔玩流量 阅读(106) 评论(0) 推荐(0) 编辑
摘要:函数式编程的特点1 一切都是函数,没有对象的概念2 给定相同的输入产生相同的输出3 函数没有内部状态,函数没有副作用在erlang来说,继承了函数式编程的特点,同时增加了一条,elang函数变量只能赋值一次erlang继承了prolog的思想,在prolog语言中,有三种元素——原子,变量,列表,erlang也是一样,同时也继承了其语法和强大的模式匹配功能,这些特色都是来自与prolog如果说 erlang本身的特色的,主要包括以下几点:1 没有线程,都是轻量级进程没有线程就意味无资源共享,极大的简化了并发编程以及增加了并发执行的效率,对于并发实现来说,主要是创建一个轻量级进程。这个我比较好奇 阅读全文
posted @ 2013-01-25 09:36 猫叔玩流量 阅读(280) 评论(0) 推荐(0) 编辑
摘要:最近这一段时间一直在了解prolog这一门极其有意思的逻辑编程语言,和以往的命令式编程语言完全不一样。prolog是声明式的,个人觉得更像一门DSL语言,逻辑方面的DSL语言。prolog语言没有代码,其实就是三点事实:定义了一些逻辑概念,这些恒为真,不需要任何证明,就像欧式几何里面的公里一样。规则:定义基础事实之间的规则。有点像欧式几何的推理过程,由基础公里可以推导出来一些定理。目标:也就是问题,通过事实和定义的规则推导出来问题的解决方案,有点像数学证明题这一门语言最核心的就是递归。完全是通过递归去解决目标问题。递归有两个重要元素:边界条件,递归定义也就是不能无限递归下去,如果在单位时间内递 阅读全文
posted @ 2013-01-25 09:35 猫叔玩流量 阅读(241) 评论(0) 推荐(0) 编辑
摘要:最近这两周一直在看scala语言,突然发现这一门语言非常棒,能够编译成为java字节码。scala是编译式,静态,强类型语言,和java一样,但是经过scala添加的语法糖以及编译器的优化,在语言表达能力上完全比java强多了。现在看起来,java有一些太笨重了。和java相比,scala最大的优势在于1 类型推断,根据值推断类型,这个是经过scala编译器进行推断,个人觉得相对来说好实现。2 支持函数式编程:在java里面,任何事物都是对象。经过scala的语法润色,支持函数定义。其实执行起来还是需要对象的,只不过scala编译器帮你自己创建了匿名类,源代码层面看上去是定义了函数,实际是定义 阅读全文
posted @ 2013-01-25 09:35 猫叔玩流量 阅读(236) 评论(0) 推荐(0) 编辑
摘要:这周主要看了ruby,和prolog语言对于ruby语言,ruby是解释型语言,对命令一条条解释,其实个人认为也可以先编译,在执行,加快效率,甚至可以和java的JIT一样,编译成本地语言,加快执行速度。ruby明显特点就是动态性,变量不需要定义直接可以赋值,相对与java这样的静态语言,变量需要先定义变量名和变量类型,然后进行赋值,而ruby就可以直接进行赋值,赋值的过程包含在定义里面。这种特定对于开发效率非常高,但是排错的情况就比较复杂。对于里面提到的鸭子类型,并没有太大的感觉,和接口有点类似,实现了某一个接口的类就具有接口的类型,唯一不同的是ruby没有接口,可以通过mixin机制来实现 阅读全文
posted @ 2013-01-25 09:34 猫叔玩流量 阅读(394) 评论(0) 推荐(1) 编辑
摘要:今天写java代码,发现一个ruby的一个特性非常有意思,就是调用任何方法都有返回值在javabean里面,调用set方法,返回为void,如果想初始化对象,必须写成多条语句。例如帮助12345XXXBean xx = new XXXBean();xx.setName(name);xx.setAge(age);而在ruby里面,用xx.setName(name).setAge(age) 一行语句搞定,效率相当高由重新看了io语言,终于理解了javascript里面的prototype是什么意思,原型就是对象的类型,和面向对象Class有点类似,但是原型本身也是一个对象。可以在类型上添加方法 , 阅读全文
posted @ 2013-01-25 09:34 猫叔玩流量 阅读(221) 评论(0) 推荐(0) 编辑
摘要:原来一直是java的忠实粉丝,开始觉得java语法严谨,类型安全,面向对象的特性,觉得java特别适合大企业,多人协作式开发。这两年,自己也尝试做一些网站,发现java在这方面效率太低。所以慢慢接触了php,groove这些脚本语言,一下子开阔了自己的视野。所以买了这本书来了解各个编程语言的设计思想以及特性书名提到了编程范式,个人理解就是编程模型或者程序的设计思想,从以前的面向过程的编程(汇编,C),到面向对象的编程(java,c++,.net),在到函数式编程(list,haskell),再到并发编程(go) 。之所以出现这么多编程范式,个人觉得就是对为了解决特定的问题,在偏业务领域,比较适 阅读全文
posted @ 2013-01-25 09:33 猫叔玩流量 阅读(514) 评论(0) 推荐(0) 编辑
摘要:对于tcp连接的建立来说,主要是通过三次握手,而对于tcp连接的正常关闭来说,主要是四次通信。为什么要四次通信,主要是tcp连接是双工的,客户端需要关闭连接,服务器端也需要关闭连接。正常情况下:客户端主动发起tcp关闭连接请求报文,服务器端返回一个ack报文客户端发送关闭连接请求报文的时候,tcp连接状态是FIN_AWAIT1状态,服务器端接收到报文的时候服务端状态为CLOSE_WAIT ,当客户端受到服务器端发送ack响应报文的时候,客户端状态变为FIN_WAIT2状态,这个时候客户端就一直等待服务器端发送连接关闭的报文请求,否则客户端一直都是FIN_AWAIT2状态当服务端发起连接关闭的请 阅读全文
posted @ 2012-11-15 23:01 猫叔玩流量 阅读(4745) 评论(0) 推荐(1) 编辑
摘要:tcp的连接过程客户端主动发起连接:采用三次握手机制服务器端在某一端口监听连接请求,服务器端的状态为LISTENING客户端发送带有 syn标志的tcp连接报文,报文内容长度为0,初始序列号ISN由客户端程序设置,客户端状态变为SYN_CENT服务器端接收客户端连接请求,确认请求,发送一个带有syn标志以及ack标志的报文,ack 序列号为ISN+1,确认请求的tcp报文 syn序列号为服务器端初始化的,服务器端状态变为SYN_REVC客户端且接收到服务器端的ack报文,也发送一个带有ack标志的tcp报文给服务器端,ack的序列号为服务器syn的序列号ISN+1,这个时候连接状态变为ESTA 阅读全文
posted @ 2012-11-02 10:42 猫叔玩流量 阅读(1325) 评论(0) 推荐(0) 编辑
摘要:web缓存作用:减少网络的数据传输,增快响应时间,减轻服务器压力web缓存:客户端缓存 和 共享式缓存客户端缓存一般通过浏览器来实现共享式缓存一般通过缓存服务器来实现控制缓存的http header信息http1.1Cache-Control:no-stroe|no-cache|maxage对于http响应报文no-stroe:告诉缓存服务器不要缓存内容no-cache: 告诉缓存服务器对于缓存的内容都需要座有效检测maxage:设置一个相对过期时间,单位秒 例如maxage=3600 一小时之后过期对于http请求报文no-store:强制缓存服务器请求web服务器返回内容,并且删除缓存no 阅读全文
posted @ 2012-10-17 22:25 猫叔玩流量 阅读(289) 评论(0) 推荐(0) 编辑
摘要:100 响应码:http/1.1 100 continue主要是客户端和服务器段进行意向,客户端请求头部里面 Expect: 100 continue ,服务端如果ok,就响应这个,如果不ok 返回 407影响码不常用的http header 属性Vary 主要是用来和服务器进行协商,根据Vary的属性返回适合的内容,而Vary的属性值是 某一个 header属性,例如Vary: User-Agent则是服务器 根据User-Agent的值来返回不同的响应实体Age,这个主要是代理使用的,代理缓存了服务器的数据,但是不知道啥时候过期,给出一个猜测值给客户端,可以是绝对时间以及相对时间(秒)Ag 阅读全文
posted @ 2012-10-17 22:04 猫叔玩流量 阅读(301) 评论(0) 推荐(0) 编辑
摘要:重定向技术1 通过http 3XX重定向技术需要一台代理服务器,浏览器需要连接代理服务器可以绕过代理,直接访问实际的服务器,通过web负载均衡和轮训算法2 通过DNS重定向一个域名对应多个IP地址,DNS解析域名的时候返回其中一个IP地址负载均算法,轮训算法,物理路径最短算法3 通过IP,MAC地址,在交换机一层进行重定向由于在交换机这一层进行,闲置比较多,两个交换机必须是物理上直接连接的4 通过IP分组,在路由器一层进行重定向通过改写IP地址实现IP的重新转发,要复习以下TCP/IP协议,这里面的原理不是太懂 阅读全文
posted @ 2012-10-17 21:47 猫叔玩流量 阅读(255) 评论(0) 推荐(0) 编辑
摘要:在http请求过程中,可以对实体内容进行编码通过content-encoding头部说明,一般使用 gzip,conpress,deflate,identity默认是identity,不对实体进行编码,使用最广泛的是gzip,主要是用来对内容进行压缩,减少网络传输的数据头部使用accept-encoding来说明客户端可以那些编码,可以使用指定多个,说明优先级,编码之间用;隔开content-type,实体MIME类型 text/html 一般有主类型和子类型,这个可以在MIME中心进行注册content-length 这个比较重要,实体的长度,主要是在http1.1中作为数据发送完成的标示在 阅读全文
posted @ 2012-10-15 21:48 猫叔玩流量 阅读(423) 评论(0) 推荐(0) 编辑
摘要:服务器要求客户端进行认证,可以通过401响应码,以及头部加上www-authenticate:Basic realm=”xxxx”需要对client进行验证,有两种方式基本认证和摘要认证,基本认证通过base64对user:password进行加密,然后发送给服务器,通过头部 Authentication: Basic 密文 发送给服务器,由服务器进行验证。这个是可逆的,可以通过密文知道用户的用户名和密码摘要认证:采取生成消息摘要的方式对用户进行认证。一般采取md5,对user:password:请求头部:实体报文 进行摘要,不可逆,不能通过密文算出原文,安全性较高,但是一般可以通过截获请求 阅读全文
posted @ 2012-10-14 20:23 猫叔玩流量 阅读(241) 评论(0) 推荐(0) 编辑
摘要:web服务器识别用户的几种方式:1 透过客户端ip来确定:多个用户可能在同一个电脑上使用,不能准备识别2 胖URL:服务器每次在生成URL的时候加入用户的识别码 ,常见就是就是 http://www.test.com/index.php;sessionid=1234563 通过http请求头部client-ip:client-ip并不是http定义的标准头部,并且在存在代理的情况也不会太准确4 通过httpauthentication 机制:web服务器生成304的响应 http/1.1 304 authentication required ,要求客户端输入用户名和密码,不能实现跨站点。并且 阅读全文
posted @ 2012-10-11 22:45 猫叔玩流量 阅读(316) 评论(0) 推荐(0) 编辑
摘要:web机器人要标示机器人 通过http User-Agent进行声明原理:通过root路径->页面中的anchor 递归下去,基本上root页面就是一个网站的首页web机器需要知道那些url已经爬过,由于url不规范,需要先规范化url,比如添加默认端口80,格式化url中的特殊字符用 %XX代替,去掉查询字符串中的#等等web机器人爬去页面主要注意:1 避免陷入环路,比如a包括b,b里面有包括a2 避免被恶意网站陷入死循环,比如动态页面,每爬取一次,重新新生成的动态内容,新的动态页面继续生成动态页面,循环下去3 url连接回路,比如http://www.test.com/index.h 阅读全文
posted @ 2012-10-11 21:31 猫叔玩流量 阅读(285) 评论(0) 推荐(0) 编辑
摘要:原文地址http://www.infoq.com/cn/news/2012/10/big-company-disease-1?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_news_clkhttp://www.infoq.com/cn/news/2012/10/big-company-disease-2?utm_source=infoq&utm_medium=related_content_link&utm_campaign=relatedContent_ 阅读全文
posted @ 2012-10-11 09:43 猫叔玩流量 阅读(433) 评论(0) 推荐(0) 编辑
摘要:网关:连接客户端和服务器端的代理,主要是用来进行协议转换客户端网关:客户端使用非http协议和网关交互,网关使用http协议和web服务器交互服务器端网关:客户端使用http协议和网管交互,网管使用非http协议和应用程序交互比较常见的网关:http/ftp https/http http/https常用在存在防火墙的情形,比如防火墙只允许80端口的http协议通过,又要保证客户端数据安全传输的话,就可以使用https/http网关CGI网关:其实是把URI中以cgi开始的请求转发到cgi处理程序,也算是一中网关了。web隧道:web隧道的原理是通过http连接到网关,网关通过tcp协议和服务 阅读全文
posted @ 2012-10-10 21:04 猫叔玩流量 阅读(1351) 评论(0) 推荐(0) 编辑
摘要:URI和资源之间的映射apache服务器中,通过docroot进行设置,一般是DocRoot+请求部分URI可以对不同的域名分别进行映射,利用virtualHost进行映射代理和网关的区别传统定义:代理是连接两个使用相同协议通讯的两个端点,网关是用来对两个使用不同协议进行通讯端点进行协议转换。例如http/POP协议网关,可以把http协议转化为邮件pop3协议,也就是我们所说的web邮箱代理的几个作用:1 web缓存;缓存图片,文档等,加快访问速度2 控制文档访问权限:对权限进行控制3 内容过滤:儿童黄色站点的过滤4 请求转码:例如对请求内容的编码进行转化 utf-8 转化为 gb23125 阅读全文
posted @ 2012-10-09 16:27 猫叔玩流量 阅读(269) 评论(0) 推荐(0) 编辑
摘要:http报文组成请求报文:Method URL HTTP/Vershon头部信息(Header)实体信息(Entity)Method:主要包括,head,put,delete,get,post,head其中head,get,post常用 put,delete 不常用head只是需要返回影响头部响应报文:HTTP/版本号 状态码 描述头部信息实体信息一般情况下 ,都是HTTP/1.1头部信息一般包括:通用头部:date,charset,cach-control,parma,connection,content-type,host请求头部:agent,transfer-encoding,accep 阅读全文
posted @ 2012-10-07 08:32 猫叔玩流量 阅读(487) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示