web学习心得V1.0

[TOC]

知识梳理

第一层级

算法

压缩算法

压缩算法主要有霍夫曼编码压缩和LZ77算法。霍夫曼算法利用建立霍夫曼树,将所有信息作为树的节点,进行编码。lZ77算法是利用重复出现的数据信息进行压缩,将出现最长的数据作为一个单元,对其位置进行编码,从而实现最高的压缩率。

查找算法

有二分法和散列算法。二分法查找算法是将中间元素和被查找对象对比,再对信息进行对半分割,直至查找到元素位置。散列算法,将数据压缩成摘要,生成散列函数,通过直接计算函数,得到数据的存储位置,查找速度远高于 二分法。

语言

JavaScript & typescript

JavaScript是现今大多浏览器的默认脚本语言,定义了网页的行为。typescript是JavaScript的未来,扩展了JavaScript。

JavaScript中对象是拥有属性和方法的数据,类似于其他面向对象的语言中类的概念,可通过复制实现继承,通过调用属性和方法实现重写和扩展。

使用构造函数能够方便地实现对象的建立和继承功能。

function obstacle(x, y, speedX, speedY, width, height, beginPos){
  this.x = x;
  this.y = y;
  this.speedX = speedX;
  this.speedY = speedY;
  this.width = width;
  this.height = height;
  this.beginPos = beginPos;
}

var obstacle1 = new obstacle(
  0,
  0,
  0,
  1,
  150,
  30,
  -500
);
HTML5

是一种建立网页的标记语言。

XML

是一种可扩展的标记语言,通过自行定义标签, 方便数据传输和存储,比较好的兼容性,利于信息的更新。json是近年来了更流行的数据数据交换语言。

svg

是一种可扩展的标记语言,可用来描述二维矢量图。

系统

Linux

Linux是一个多用户网络操作系统,从嵌入式到大型计算机,具有许多发行版本。现今服务器大多使用Linux作为操作系统,不同于Windows,Linux可以定制自己想要的功能,保留当前设备需要的,具有较强的专一性,利于充分发挥硬件性能。

熟练掌握文字界面的操作方法,是使用Linux的关键。

第二层级

UML

UML类图

类图是面向对象的软件系统结构重要的表达方式,类图显示了类的构成、接口和类之间的关系。在软件开发中,类图的建立是相当重要的,对团队的协作和程序框架结构搭建具有较大的帮助。

OSI七层模型

OSI参考模型是一种电子设备之间建立通讯的结构模型,它分为七层,物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。从数据传输最底层电信号的规定,到用户服务的管理,七层模型十分完善地描述了现代信息通讯的层次结构。

路由

路由工作在OSI参考模型总的网络层,通过运行TCP/IP协议转发数据包实现网络互连。

由于当今的网络域名有限,无法实现每台终端都占有一个IP,所以需要路由器来转发数据,实现若干终端同时占有一个IP。每台路由器占有固定的IP,又由路由器分配给每台相连的计算机局域网的IP,局域网内的计算机可通过路由器发送自身分配的IP和端口至公网,可实现公网内的计算机间通讯。为了不造成数据的收发混乱,路由器通过查找路由表,将数据发送至指定IP的指定端口,应用通过占有对应端口,实现数据的无损收发。

域名

域名是互联网上计算机的名称,用户可通过访问域名来访问相应的计算机。通过对域名的不同端口的选择,可以访问到远程计算机指定的文件。域名通过DNS服务器解析之后就成了一个固定IP,这样看域名其实就是一个IP。

TCP & UDP

TCP/IP协议是一种互联网通讯协议,规定了互联网内设备之间的连接和通讯的方法。TCP协议可实现数据的安全无损正确的传输,同时满足了不同种类设备终端之间的无差别传输。

UDP也是一种网络传输协议,不同于TCP协议,其数据传输的可靠性不足,但是速度较快,两者适用于不同要求的环境下。对于数据准确性要求高的环境下,适用于TCP协议,而对于那些不要求每帧数据都落实,但对速度有要求的通讯环境则适用UDP协议。

共享单车

共享单车是现今互联网技术和电子技术的一个典型的综合应用,需要对其逻辑关系和包含的技术,工作流程有个全面地了解。

二维码

不同的车都有自己独一的ID,手机扫描二维码之后得到一个字符串,代表一个服务器请求地址,其中包含这辆车的ID。

交互逻辑

客户端首先检查该用户是否为合法用户否是欠费,如果不合法,则提示违法信息,如果合法,客户端得到服务器地址后并访问服务器,服务器在数据库中寻找被扫的车子,读取其状态,若车子状态异常,便向客户端返回该异常,若车子状态正常,便向该车子的地址发送解锁请求。车子接收到解锁请求,控制IO口开锁,并通过行程开关检测车锁是否正常开启,并向服务器返会结果。如果服务器接收到开锁成功得信息,就向客服端返回成功信息,并在服务器上开始计费,如果开锁失败或者在一定时间内没有接收到车子的返回信息,则向客户端返回失败信息,同时在服务器的数据库中标记异常车辆。

st=>start: Start
e=>end
getCode=>operation: 扫描二维码
checkUser=>condition: 是否为违法用户
badUser=>operation: 显示违法信息
putID=>operation: 访问服务器
searchBike=>operation: 数据库中寻找车子并读取状态
checkBike=>condition: 车子是否异常
badBike=>operation: 向客户端返回车辆异常信息
putUnlock=>operation: 向车子发送解锁请求
unlockBike=>operation: 控制IO口开锁
checkLock=>condition: 行程开关检查车锁是否开启
unlockOk=>operation: 向服务器返回成功解锁信息
unlockFail=>operation: 向服务器返回失败信息
charging=>operation: 向客户端返回成功信息并开始计费


st->getCode->checkUser
checkUser(no)->putID->searchBike->checkBike
checkUser(yes)->badUser->e
checkBike(no)->putUnlock->unlockBike->checkLock
checkBike(yes)->badBike->e
checkLock(yes)->unlockOk->charging->e
checkLock(no)->badBike->e

P2P传输的实现

因为处于内网的计算机IP是不固定的,所以一般两个处于内网的终端之间无法直接得到对方的地址,两者之间的访问往往需要第三方的公网服务器的帮助,但是如果类似于视频的大数据量的传输,会造成带宽严重浪费,提高运营成本,所以点对点数据传输是解决这一问题的方法。P2P传输技术实现了两个处于内网的终端如何直接访问。

大致原理如下

A->routeA:
routeA->server:send data
Note right of server:get IP of A
B->routeB:
routeB->server:send data
Note left of server:get IP of B
A->routeA:
routeA->server:send request
server->routeA:send IP of B
routeA->A:
Note left of A:get IP of B
A->routeA:
routeA->routeB:send data
routeB->B:
Note left of B:build connect

处于内网终端的IP是由路由器分配而不固定的,而路由器的IP是固定不变的,所以可以通过中间服务器的媒介作用,使处于内网的两个终端得到互相的IP,从而做到点对点的数据传输。

学习规划

自身现状分析

经过这段时间的学习,对HTML5有了更多的了解,同时掌握了js的基本语法,能够实现基本的游戏逻辑和一般的静态界面。对于互联网的基础知识和系统概念,在茶话会之后有了基本的了解。

虽然有了一些基本概念,但是还没有进行更多的动手实践,很多知识还需要深入了解学习。例如知道很多算法,其实没有真正使用过。

学习目标

基础知识学习

提高自己python和js的能力和编程思想。完善自己的js小游戏。

动手实践

实现一些物联网技术的小制作,利用树莓派,搭建一个可以远程访问的服务器,并制作从一个远控控制小车,同时可实现图像传输,信息交互。

你可能感兴趣的:(web学习心得V1.0)