后端
文章平均质量分 87
CopperDong
纯属巧合
展开
-
开放API接口签名验证,让你的接口从此不再裸奔
接口安全问题请求身份是否合法? 请求参数是否被篡改? 请求是否唯一?AccessKey&SecretKey (开放平台)请求身份为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改参数签名按照请求参数名的字母升序排列非空请求参数(包含AccessKey),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA; 在stringA最转载 2020-10-12 10:34:28 · 536 阅读 · 0 评论 -
深入浅出node.js:7 网络编程
利用Node可以十分方便地搭建网络服务器。在Web领域,大多数的编程语言需要专门的Web服务器作为容器,如ASP、ASP.NET需要IIS作为服务器,PHP需要搭载Apache或Nginx环境等,JSP需要Tomcat服务器等。但对于Node而言,只需要几行代码即可构建服务器,无需额外的容器。 Node提供了net, dgram, http, https这4个模块,分别用于处理TCP, U原创 2018-01-09 14:19:01 · 570 阅读 · 0 评论 -
Node.js项目实战-构建可扩展的Web应用(第一版): 1 安装Node.js及相关要点
https://github.com/azat-co/practicalnode你将学会:使用Express.js MongoDB和Jade模板引擎构建Web应用介绍Jade和Handlebars的各种功能利用MongoDB控制台操作MongoDB数据库中的数据使用Mongoskin和Mongoose ORM库操作MongoDB数据库使用Express.js 4和Hapi.js构原创 2018-01-10 16:09:50 · 446 阅读 · 0 评论 -
Node.js微服务 1 : 微服务架构
2015年,随着以Docker为代表的容器技术的突飞猛进,微服务的部署难题得到解决,甚至有人将2015年称为微服务架构元年。 作为一本微服务入门的实践指南,本书采用了Node.js和以Seneca、PM2为主的现代框架来进行阐述。 代码http://www.broadview.com.cn/book/24841.1 微服务应运而生 通常,在一家公司随着业务需求的原创 2018-01-27 11:36:38 · 5247 阅读 · 0 评论 -
Node.js微服务 2 :基于Seneca和PM2构建Node.js微服务
2.1 选择Node.js的理由 如今,Node.js已经成为国际上许多科技公司的首选方案。特别的,对于在服务器端需要非阻塞特性(例如Web Sockets)的场景,Node.js俨然成了最好的选择。 安装Node.js, npm, Seneca和PM2: Node.js的线程模型: SOLID设计原则:模块化归结于以下设计原则,单一职责原则、开放封闭原则、原创 2018-01-27 15:57:42 · 3503 阅读 · 1 评论 -
Node.js项目实战-构建可扩展的Web应用(第一版): 2 使用Express.js 4创建Web应用程序
大多数Node.js项目中都用到了Express.js,并且已经成为了标准。2.1、什么是Express.js Express.js是基于http模块和Connect组件的Web框架。这些组件叫做中间件,它们是以约定大于配置原则作为开发的基础理念的。 但是每月依然会有新的框架产生。2.2、Express.js是如何工作的 Express.js是单入口的原创 2018-01-10 19:24:25 · 485 阅读 · 0 评论 -
Node.js项目实战-构建可扩展的Web应用(第一版):3 Node.js基于Mocha的测试驱动开发和行为驱动开发
测试驱动开发(TDD)是一种主要的敏捷开发技术。它最强大之处是可以提升代码的质量,改进错误的检查方式,以及增强程序员的信心,使其获得更有效率的开发手段。 纵观历史,Web应用已经越来越难以自动测试,开发者们严重依赖手动测试。但其实,一些特定的项目,比如独立的服务和REST API可以且必须用TDD来测试。同时,富用户界面应用也可以用PhantomJS这种无界面浏览器来进行测试。原创 2018-01-10 21:05:33 · 392 阅读 · 0 评论 -
Node.js微服务 3 :从单块软件到微服务
随着公司的增长,单块软件会有增长的痛苦和低下的效率。3.1 单块软件 运行于单一容器且开发周期严格定义的大型软件组件是完全违背敏捷开发原则的:及早交付和频繁交付。 自然增长指的是,由于缺乏充分的长期规划,在业务压力下,软件系统无计划、无控制地增长。 控制自然增长的首要任务就是确保公司中的IT部门能与业务部门相匹配。通常大型公司并不将IT部门视为业务核心部门。最终这原创 2018-01-27 16:52:04 · 1125 阅读 · 0 评论 -
Node.js微服务 4 :编写你的第一个Node.js微服务
构建一个基于微服务的电子商务软件4.1 微电子商务概览 使用流行的JS框架创建一个集合所有其他微服务的微服务,并为单页面应用提供API。 谈论4个微服务:商品管理服务:订单管理服务:邮件服务:UI: 商品管理服务:功能获取数据库中所有商品信息。这在实际生产环境中或许不是一个好方法(因为一般在生产系统中可能会需要分页),但是在我们的例子中是可原创 2018-01-27 17:50:22 · 2977 阅读 · 0 评论 -
Node.js微服务 5:安全性和可追溯性
从大型企业中泄漏的信息数量之大令人担忧,尤其是90%的信息泄漏问题只需要开发工程师稍加处理就可以修复。 讨论如何管理安全与日志,以保证系统是安全的、可追溯的。5.1 基础设施的逻辑安全5.2 应用程序安全5.3 可追溯性5.4 审计原创 2018-01-27 22:00:14 · 603 阅读 · 0 评论 -
Node实战(第2季)7 使用Node.js绑定C语言库---51Degrees.node
7.1 开发背景 如何将一个已有的C/C++代码库拓展到Node.js平台上7.2 预备知识 51Degrees-C:原生C语言库的结构7.3 编码 https://github.com/51Degreesmobi/51degrees.node7.4 构建与发布 node-gyp与binding.gyp:7.5 如何从nan 1.x升级到nan原创 2018-01-27 09:51:56 · 679 阅读 · 0 评论 -
Node实战(第2季)6 Node.js测试服务搭建
6.1 概述 目的:写过电子邮件爬虫、基于RESTful的API服务器、服务中间件、类似于ZooKeeper的集群管理系统,以及应用服务器,在此期间也产出了不下100个与Node.js相关的模块。 本章主要介绍笔者在过去半年内与一家时尚杂志相关的互联网创业团队合作的部分经历,其中最重要的部分工作就是为该团队搭建了一套较基础的测试服务,测试范围涵盖服务器、浏览器、Mag+、Ado原创 2018-01-26 21:58:54 · 411 阅读 · 0 评论 -
深入浅出node.js:6 理解Buffer
JavaScript对于字符串的操作十分友好,无论是宽字节字符串还是单字节字符串,都被认为是一个字符串。 Node中,应用需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络流和文件的操作中,还要处理大量二进制数据,JavaScript自有的字符串远远不能满足这些需求,于是Buffer对象应运而生。6.1 Buffer结构 Buffer是一个像Array的对象,但它原创 2018-01-09 14:19:47 · 659 阅读 · 0 评论 -
深入浅出node.js:8 构建Web应用
伴随Web 1.0, Web 2.0一路走来,HTTP占据了网络中的大多数流量。因为Node的出现,"前端“将会被重新定义。 为了胜任Web应用的开发工作,各种语言、模式、框架层出不穷。单从框架而言,在后端数得出大名的就有Structs、CodeIgniter、Rails、Django、web.py等,在前端也有知名的BackBone、Knockout.js、AngularJS、Meteor原创 2018-01-09 17:35:39 · 481 阅读 · 0 评论 -
深入浅出node.js:9 玩转进程
9.1 服务模型的变迁 同步:最早的服务器,其执行模型是同步的,一次只为一个请求服务。 复制进程:每个连接需要一个进程来服务 多线程:数量多时,时间将会被耗用在上下文切换中。无法做到强大的伸缩性。 事件驱动:采用单线程避免了不必要的内存开销和上下文切换开销。单线程的架构并不少见,其中尤以PHP最为知名---在PHP中没有线程的支持。它的健壮性是由它给每个请求原创 2018-01-09 19:49:14 · 487 阅读 · 0 评论 -
深入浅出node.js:10 测试
测试的意义在于,在用户消费产出的代码之前,开发者首先消费它,给以其重要的质量保证。10.1 单元测试 意义:配备专门的测试人员,会让工程师产生依赖,不正视测试代码。 测试工程师是否可依赖: 第三方代码是否可信赖? 在产品迭代过程中,如何继续保证质量? 对于上述问题,如果你的答案是不关心,那么恭喜你原创 2018-01-10 09:41:31 · 309 阅读 · 0 评论 -
单页Web应用 7 Web服务器
单页应用的服务器则完全不同。大多数的业务逻辑(以及所有的HTML模板和展示逻辑)都移到了客户端。服务器仍旧很重要,但它的服务变得更精简和更专注了,比如持久化数据存储、数据验证、用户认证和数据同步。 在整个开发过程中,从前端到后端我们都使用JSON和JavaScript。这能消除数据转换的开销,并能显着减少需要掌握的语言和开发环境的数量。从而开发、交付和维护的成本将大大降低,产品的质量也变得原创 2018-01-17 22:15:25 · 490 阅读 · 0 评论 -
Feathers框架 1:Guides --> Basics
https://docs.feathersjs.com/guides/basics/readme.html1.1、The Basics Setting up:安装$ mkdir feathers-basics$ npm init --yes #默认初始化$ npm install @feathersjs/feathers --save #安装feathers$原创 2018-02-02 17:23:47 · 786 阅读 · 0 评论 -
Node实战(第2季)4 编写命令行工具---打造一个静态博客系统
使用commander模块来编写一个命令行工具。4.1 本章所使用到的第三方模块 1、commander:解析命令行参数 2、Express:Web框架 3、serve-static:静态文件服务中间件 4、markdown-it:渲染Markdown格式的文档 5、swig:swig语法模板引擎 6、rd:遍历目录下的所有文件,包括子目录原创 2018-01-26 17:55:03 · 451 阅读 · 0 评论 -
Node实战(第2季)5 基于Koa快速开发Web应用
讲解ES6中生成器、yield,以及Node.js下一代Web开发框架--Koa及其中间件的用法。5.1 ES6时代的来临 ECMAScript6,简称ES6,也称作ECMAScript2015,于2015年6月正式定稿。ES6是一次重大升级,是自2009年发布的ES5规范后的首次更新。 function和function* :function*就是上面提到的生成器函数fu原创 2018-01-26 20:34:34 · 1017 阅读 · 0 评论 -
Feathers框架 2:Guides --> A Chat Application
2.1 Creating the application$ npm install @feathersjs/cli -g$ mkdir feathers-chat$ feathers generate app # 创建APP? Project name feathers-chat? Description A Feathers chat application? What原创 2018-02-02 22:49:34 · 707 阅读 · 0 评论 -
Node.js微服务 6:测试及文档化
通过A/B测试来发布功能已然成为一种趋势,可以仅对某些类型的用户启用新功能,随后可以收集各种指标来观察系统表现有什么变化。6.1 功能性测试 通常正确的测试需要花费40%的开发时间,自动化是一种解决效率问题的好方法。而单元测试、集成测试以及端到端的测试都是一种自动化的形式。 过去,Ruby on Rails在一定程度上创建了一个通往新范式的大趋势,该新的范式就是测试驱动开发原创 2018-01-28 11:48:30 · 393 阅读 · 0 评论 -
单页Web应用 8 服务器数据库
8.1 数据库的作用 选择数据存储:选择MongoDB作为数据存储,有几个理由:它被证明是可靠的、可扩展的,它有良好的性能,它的定位就是成为通用数据库。它的存储格式是JSON,它的数据管理工具是专门为JSON而开发的。 消除数据转换:传统的Web应用程序:开发人员必须进行SQL->Active Record->JSON的转换,及JSON->Active Record->SQL的转换原创 2018-01-18 22:38:25 · 326 阅读 · 0 评论 -
Centos部署ffmpeg
为了进行小程序silk语音的转码,需要在服务器上配置ffmpeg的环境。接下来我以centos的linux系统作为基础进行介绍配置的操作。配置lamewget https://nchc.dl.sourceforge.net/project/lame/lame/3.99/lame-3.99.tar.gz tar -zxvf lame-3.99.tar.gz cd lame-3.99 ./...转载 2018-02-25 17:11:31 · 371 阅读 · 0 评论 -
centos7.2源码安装Apache2.4
ps:学了这么久计算机了一直是想到什么查什么,下次又要用时又忘了.总是这样无休止的循环下去,今天终于决定改变一下了,写个博客做个总结吧.centos7.2源码安装Apache2.4以前总是用yum安装软件,因为yum工具非常方便会帮你把依赖软件也一起装了,后来发现yum也不是那么好用,有时候死活装不上软件…..服务器环境是centos7.2(目前最新),由于服务器重装后,现在服务器非常干净什么也没...转载 2018-04-03 20:32:38 · 445 阅读 · 0 评论 -
图解HTTP(1)
一、了解Web及网络基础 为知识共享而规划Web:1989年3月,CERN(欧洲核子研究组织)的Tim BernersLee博士提出了一种能让远哥两地的研究者们共享知识的设想。最初设想的基本理念是:借助多文档之间相互关联形成的超文本(HyperText),连成可相互参阅的WWW(World Wide Web,万维网)。 现在已提出了3项WWW构建技术,分别是:把SGML作为页面...原创 2018-07-01 10:56:39 · 490 阅读 · 0 评论 -
图解HTTP(2)
五、与HTTP协作的Web服务器 HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。 除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道,它们可以配合服务器工作。 使用代理服务器的理由有:利用缓存技术减少网络带宽的流量,组织内部针对特定网站的访问控制,以获取访问日志为主要目的,等等。缓存代理和透明代理 网关:能使通信线路上的服务器提供...原创 2018-07-01 17:25:28 · 342 阅读 · 0 评论 -
图解HTTP(3) 安全
七、确保Web安全的HTTPS HTTP主要有这些不足:通信使用明文(不加密),内容可能会被窃听不验证通信方的身份,因此有可能遭遇伪装无法证明报文的完整性,所以有可能已遭篡改 通信的加密:和SSL组合使用的HTTP被称为HTTPS 内容的加密:客户端和服务端需要加密和解密 如何防止篡改:常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。 ...原创 2018-07-01 18:09:05 · 429 阅读 · 0 评论 -
图解HTTP(4)
九、基于HTTP的功能追加协议 HTTP的瓶颈:一条连接上只可发送一个请求请求只能从客户端开始。客户端不可以接收除响应以外的指令请求/响应首部未经压缩就发送。首部信息越多延迟越大发送冗长的首部。每次互相发送相同的首部造成的浪费较多可任意选择数据压缩格式。非强制压缩发送 Ajax的解决方法:名为XMLHttpRequest的API,通过JS调用就能和服务器进行HTTP通信。借由这种手段...原创 2018-07-01 20:58:55 · 452 阅读 · 0 评论 -
电商网站(Django框架)—— 思维导图
1.用户模块:注册、登录、激活、退出、个人中心、地址2.商品模块:首页、详情、列表、搜索3.购物车:增加、删除、修改、查询4. 订单模块:确认订单页面、提交订单(下单)、请求支付、查询支付结果、评论5.总结:主要功能模块:用户模块商品模块(首页、 搜索、商品) 购物车模块订单模块(下单、 支付)...转载 2019-04-18 18:50:10 · 5345 阅读 · 1 评论 -
vue.js电影网站
技术栈:Vue+Node.js+MongoDBvue init webpack book_view # 构建应用,一路Yescd book_viewnpm installnpm run dev # 启动服务npm run build # 启动生产模式,生成dist目录功能设计:显示电影下载地址 电影添加、修改、删除等后台管理; 前端预览 对用户的审核、权限、评论等管...原创 2019-07-25 18:40:08 · 5545 阅读 · 1 评论 -
nodejs文件上传处理模块formidable
本文转自http://itbilu.com/nodejs/npm/NkGKcF14.html 在web开发中,经常遇到处理文件上传的情况。而express框架在4.0版本后就不在支持req.files接收上传文件,对于文件上传,需要加multipart格式数据处理的中间件。multipart数据处理中间件有:busboy, multer, formidable, multiparty, conne...转载 2018-02-28 12:01:31 · 4248 阅读 · 0 评论 -
Apache http 服务器如何启用和设置 https 连接以提供加密的 http 通讯教程
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性。被广泛使用,是最流行的Web服务器软件之一,快速,可扩展性强,是 Apache http 服务器的特点。Apache HTTP Server 默认开启 HTTP 也就是 80 端口,并提供 HTTP 服务,但也可以通过创建证转载 2018-01-20 18:25:48 · 849 阅读 · 0 评论 -
APP后台开发运维与架构实践 9 : App后端架构剖析
9.1 聊天App后台架构 移动互联网的网络特性:弱网络性和对流量敏感。 针对弱网络环境,开发者在设计协议时必须考虑尽量减少数据往返的次数。长连接时可能会出现忽然中断的情况。这叫TCP half-open,有效的解决方法是使用应用层心跳机制:在App和服务器保持连接的过程中,App在规定时间间隔内向服务器发送一个数据。服务器收到这个数据知道这个连接是有效的。原创 2018-01-28 22:03:07 · 884 阅读 · 0 评论 -
Node.js微服务 7:微服务的监控
监控带来的巨大好处:快速响应失败的能力。通过对系统进行紧密监控,几乎可以在第一时间发现问题,并尽快解决问题,从而避免影响到客户对系统的使用。除了监控之外,另一个概念便是性能。通过了解系统在负载期内的表现,我们可以尽早做好容量规划。7.1 服务监控 采用PM2和Keymetrics进行监控: 7.2 类人猿大军 -- 来自Netflix的主动监控原创 2018-01-28 14:46:44 · 728 阅读 · 0 评论 -
APP后台开发运维与架构实践 2 : App后台基础技术
1、简介 需求2、App后台基础技术2.1 从App业务逻辑中提炼API接口 项目初期只知具体的业务逻辑, 6个阶段:业务逻辑思维导图功能---业务逻辑思维导图:支撑业务逻辑的功能模块,属于model基本功能模块关系:按照人和事来分,人、事、事件功能模块接口UML(设计出API):合理的耦合度编写API文档:使用Swagger-UI搭建,www.s原创 2018-01-28 16:30:04 · 724 阅读 · 0 评论 -
APP后台开发运维与架构实践 3 : App后台核心技术
App后台的技术实现和一般的Web后台是有区别的。3.1 用户验证方案 登录过程中怎样才能最大程度地避免泄漏用户的密码的可能呢? 用户登录后,App后台怎么去验证和维护用户的登录状态呢? 使用HTTPS协议:避免信息的泄漏,最基本的方案是所有涉及安全性的API请求都必须使用HTTPS协议。 基本的用户登录方案:传统Web网站使用Cookie+Sessio原创 2018-01-28 17:54:29 · 1052 阅读 · 0 评论 -
APP后台开发运维与架构实践 4 : Linux --- App后台应用最广泛的系统
涉及大量Linux的运维操作4.1 基本的系统优化 开机自启动服务优化:chkconfig命令主要用来更新和查询系统服务的运行级信息。 增大文件描述符:Linux系统中经常出现的错误“Too many open files”就是由于打开的文件数超过了文件描述符的限制导致。使用ulimit命令。4.2 常用的命令 top:实时显示系统各个进程的资源占用状况。c原创 2018-01-28 19:43:23 · 394 阅读 · 0 评论 -
APP后台开发运维与架构实践 5 : Nginx --- App后台HTTP服务的利器
Nginx是一个高性能的HTTP和反向代理服务,占用内存少,并发能力强。5.1 简介 全球Top1000的网站中,有44.8%使用Nginx5.2 基本原理 工作模型:使用了epoll和kqueue网络I/O模型,而Apache则使用的是传统的select模型,目前也使用epoll。 进程解析:master process和worker process5.3 常原创 2018-01-28 20:17:21 · 1438 阅读 · 0 评论 -
APP后台开发运维与架构实践 6 : MySQL --- App后台最常用的数据库
6.1 基本架构6.2 选择版本 1979年至今6.3 配置文件详解 /etc/my.conf6.4 软件优化 正确使用MyISAM和InnoDB存储引擎:6.5 硬件优化 增加物理内存 增加应用缓存 使用固态硬盘6.6 架构优化 分表:当用户增长时,查询性能下降,这时要考虑分表。 读写分离:复原创 2018-01-28 20:33:03 · 1432 阅读 · 0 评论