Skip to content

Latest commit

 

History

History
143 lines (75 loc) · 5.12 KB

http.md

File metadata and controls

143 lines (75 loc) · 5.12 KB

http学习

我本来是打算学习koa,然后写点学习总结。但是当教程中介绍到app.listen(...)时,其中提到app.listen(3000)是http.createServer(app.callback()).listen(3000);的“语法糖”,就让我对http.createSever()方法产生兴趣。于是就开始了追根溯源之旅~

httpcreateServer()

这是node.js封装的一个http模块的方法,从字面意思看出来就是创建一个http服务器,与之相对应的还有个http.request(),即创建一个客户端。 一般的用法是这样:

var http = require('http');

http.createServer(function(req, res) {

// 主页
if (req.url == "/") {
    res.writeHead(200, { "Content-Type": "text/html" });
    res.end("Welcome to the homepage!");
}

// About页面
else if (req.url == "/about") {
    res.writeHead(200, { "Content-Type": "text/html" });
    res.end("Welcome to the about page!");
}

// 404错误
else {
    res.writeHead(404, { "Content-Type": "text/plain" });
    res.end("404 error! File not found.");
}

}).listen(8080, "localhost");

但这仍旧是node.js已经封装好的方法,而我想知道的如何用最原生的语言创建一个http服务器。而在阅读完很多不同语言的实现web服务器的文档后,发现比较核心的有这么2个专业名词。

超文本传送协议HTTP

http是个协议,有固定的格式,不同客户端的不同浏览器向万维网服务器请求万维网文档以及服务器把文档传送给浏览器的时候都要遵守它。

http有以下几个值得注意的特点:

  1. 面向事务。要么所有的信息交换都完成,要么一次都不进行。

  2. 无状态。每一次访问都是独立的,服务器不会记录任何访问之间的关系。

  3. http的报文结构

    (1). 开始行。区分是请求报文还是响应报文

    (2). 首部行。说明浏览器,服务器或者报文主体的一些信息。

    (3). 实体主体。

  4. HTTP/1.1协议使用了持续连接,即服务器发送响应后在一段时间内保持与客户端的连接,使得服务器可以继续在连接上发送后续的http请求报文和响应报文。

Socket

socket

socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;做个比喻就是:HTTP是轿车,提供了封装或者显示数据的具体形式;而Socket是发动机,提供了网络通信的能力。 其中的很多函数可以自己查阅资料。

神经网络学习总结

什么是神经网络?

我们把大脑看成是一个高度复杂的,非线性的和并行的计算机器,而神经元就是组织它的组成部分;每当触及听觉,视觉,感觉等需要大脑处理的事件时,神经元就在以超级迅速的速度进行特别地计算。

神经网络是由简单处理单元构成的大规模并行分布式处理器,天然地具有存储经验支持和使之可用地特性。

理解:简单处理单元:神经元。并行:同时处理多个进程。分布式:将某个进程分为多个子进程交给不同的神经元处理。通过学习获得并且存储经验。

1. 神经网络是通过学习过程从外界环境中获取知识的。
2. 互连神经元的连接强度,即突触权值,用于存储获取的知识。

神经网络有用的性质和能力

(理解可能有误,不能全信)

非线性

“人工神经元可以是线性或者非线性的”。当神经网络在处理一个进程时,得到的信息和输出的信息(转化为动作)并不是线性依赖关系。

输入输出映射

“即教师学习,监督学习。利用带标号的训练样例,通过不断调整突触权值重复训练神经网络,直到神经网络达到对突触权值没有显著修正的稳定状态”。理解为不断得让神经网络获得信息,并且不断地改变突触权值直到输出的信息和目标信息极其相似,并且记录下当时的突触权值。

自适应

“神经网络具有调整自身突触权值以适应外界环境编号的固有能力”。在环境变化不大时,神经网络看也很容易进行重新训练。在不稳定环境中,它自身可以设计神经网络使得突触权值随时间实时变化。

证据响应

神经网络在获得信息后会先对信息进行模式分类,其不仅可以设计不同的提供选择哪一个特定模式的信息,还可以排除一些模糊的模式,提高分类性能。

上下文信息

神经网络的每个神经元都受其它神经元全局活动的潜在影响。

容错性

当某个神经元或它的连接坏了,其产生的并不是毁灭性的失败,而是缓慢恶化的过程。因为神经网络信息存储是分布的。

人脑中神经网络分层

中枢神经系统

区域电路

局部电路

神经元

树突树

神经微电路

突触

分子