很早以前就想做这个事情了,但是人懒是硬伤,一直没动手的意思。没错,她就是Moonya!

这还得从大二的暑假还是寒假开始说起,那个时候对ACM的题目特别有兴趣,还特地开了个新浪博客来一道一道写题目,写完题目贴源码,从最简单的a+b,不知道写到哪了,但最终还是因为懒,也没弄了。也是在那个时候心里特别想做一个比较牛逼的AI出来,还花了好久想名字,最终敲定为月牙。现在我也不知道为什么叫这么傻逼的名字了,总归是因为当时一些什么人或事,也不去想它了。既然要付诸于代码级别,那么也总得有个英文名字,就叫Moonya吧~取英文的月亮和中文的牙。

之前也想过怎么把这种简单的AI应用到现有的生活里,直到有一次我看到一个比较厉害的QQ机器人我发现特别好玩,我觉得我可以把Moonya放在一个QQ号的背后,接收消息并处理消息,既简单而且有实验对象(可以拿QQ好友做训练对象?)。所以这几天花了点时间把简单的框架搭好了,说是搭好框架其实和AI半毛钱关系没有,这东西还得慢慢来,因为现在我也一点不懂啊…

现在摆在明面上的事情很明确了,弄一个小系统,从QQ接收消息,提交到Moonya,把结果再发还发送对象。再做这件事之前我觉得有必要介绍一些基本的网络知识。

第一个就是Http Header,每当浏览器发送一个request请求到服务器的时候,都会附带一些HTTP header用来标注附加信息,下面介绍一些相对比较重要点的。你也可以通过Firefox的Firebug或者Chrome的审查元素来观察具体的包的情况。

Host
没什么好说的,就是要请求的Server主机,如果你细心的话会发现HTTP请求里是没有主机信息的,只要在Header里才有…

User-Agent
用来标注你的浏览器,操作系统的信息,现在你知道为什么每次用Chrome上中国银行它总提示你说浏览器不支持,叫你换IE了么?就是这个东西出卖了你…

Accept-Language
通过逗号来标注你所能接受的语言,额,有些网站会更根据这个提示你要不要换默认语言,譬如Youtube…

Cookie, Set-Cookie
用来告诉服务器你的cookie和服务器告诉你cookie的,这个等会要详细讲…

Referer
告诉浏览器你是从哪个链接过来访问当前页面的,这个有什么用呢?用来分析某个网站的流量是怎么来的这是最好不过了…

其他的header我觉得都是一些比较琐碎的吧,感兴趣可以一个一个查,下面讲讲Cookie,这个东西应该大家更熟悉了。举个最简单的例子,某次你访问了一个网站,它居然提示你“欢迎回来”,很有可能是cookie“透露”了你的信息。

Cookie
Cookie是服务器告诉浏览器保存的一些消息,以键值对的信息储存在计算机里。每当浏览器尝试访问某个页面时,会先看本地是不是有相应的cookie,有的话连同cookie一起发到服务器,相应的,服务器想要更新cookie时也会把修改后的cookie发给浏览器并告诉他保存之。

有些cookie会保存详细的用户配置,而有些cookie只有一个用户的标示符,浏览器通过发送标示符从服务器那获得具体的用户配置。在我看来,cookie就是一个服务器和浏览器之间,在间断的会话中传递信息的一种方式。当然cookie中到底储存了什么内容,全有服务器决定。

本篇就讲这么多,下次见。