《App后台开发运维与架构实践》第3章 App后台核心技术

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

3.1 用户验证方案

3.1.1 使用HTTPS协议

HTTPS协议是“HTTP协议”和“SSL/TLS”的组合。SSL(Secure Sockets Layer),即安全套接层,是为了解决因HTTP协议是明文而导致传输内容会被偷窥和篡改的问题。SSL协议标准化后名称改为TLS(Transport Layer Security)协议,即传输层安全协议

573de64d71117be43121947221cb32bb75d.jpg

3.1.2 基本的用户登录方案

bfa47550ef845069644a8dd822e7cf5540b.jpg

3.2 App通信安全

3.2.1 URL签名

b335d7b21542f90b5e182d4a593d2c4e97a.jpg

3.2.2 AES对称加密

  • 对称加密的原理

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

  • AES算法加密App后台返回的token数据
  • AES算法加密请求过程中所有的敏感数据

3.2.3 更进一步的通信安全

  • 使用自定义的通信协议传输敏感信息。
  • 使用RSA(非对称加密算法)加强通信的安全性。
  • 使用梆梆加固、爱加密等第三方工具对App进行加密。
  • 涉及到特别敏感的信息(比如支付密码),每次都需要用户输入支付密码确认,支付密码永远不在App端保存。
  • 使用自主开发的输入控件输入敏感信息。

3.3 短信服务

根据价格、短信的到达率和延时情况选择合适的短信平台。

3.4 处理表情的一些技巧

  • 表情在MySQL的存储

表情UTF-8编码有的是3个字节,有的是4个字节,所以一般的UTF编码(长度只有3个字节)是没法存储表情数据的。解决方案:把MySQL升级到5.5以上,然后把字符编码改为utf8mb4_general_ci;如果在不升级的情况下,将含有表情数据的字段类型改为blob。

3.5 高效更新数据

  • 内容的推拉

86cad8c8b5aad886739bc594d14b7923807.jpg

  • 数据增量更新策略

3.6 图片处理

3.7 视频处理

3.8 获取APK和IPA文件里的资源

3.9 文件系统

3.10 ELK日志分析平台

  • ElasticSearch:一个基于Lucene的分布式搜索服务,用来提供存储搜索。
  • Logstash:收集处理解析日志。
  • Kibana:一个开源和免费的工具,其可以汇总、分析和搜索重要数据日志并提供友好的Web界面,用来报警统计展示。

2e58bad07ef1ec19ea42fff62cfcc6e2822.jpg 

3.11 Docker构建一致的开发环境

Docker是一个用于统一开发和部署的轻量级容器,让开发者打包其应用及相关的依赖包到一个可移植的容器,发布该容器到其他机器,就能很容易地实现应用的部署。

  • Docker原理

传统的虚拟化技术体系在服务器操作系统上安装了多个虚拟机,每个虚拟机上通过虚拟化技术实现了一个虚拟操作系统,在这个虚拟操作系统上运行应用。

6ede2e82a7c74386824ef55560d38893efe.jpg

Docker的虚拟化技术体系在服务器的操作系统上有一个Docker服务在运行,在这个Docker服务上运行着多个Docker容器,每个Docker容器中运行着应用,容器与容器间的应用是相互隔离、相互独立的,但通过Docker服务占用着服务器的硬件和网络资源。

7fcecf324ab2c65d33cc5bcf86c4b868f67.jpg

 

转载于:https://my.oschina.net/lienson/blog/3035325

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA 配置 JDK

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 提前安装jdk,配置环境变量 一、配置jdk 1、依次点开File -->Project Structure,点击左侧标签页&#xff0c…

xml编辑无提示?这么破!

在学习testng这个单元测试框架时,如果咱们碰到了编辑测试套件xml,不提示的情况(有提示方便咱们学习,并且testng的测试套件定义必须按照他的dtd文件约束来),咱们可以按照下面的步骤去解决这个问题。 1.检查t…

navigator.geolocation的应用 - 将定位信息显示在百度地图上

在学习navigator.geolocation的时候,有一个实例是获取坐标后显示在谷歌地图上。众所周知,谷歌地图国内并不能直接访问,得用特殊手段,那我要测试的时候还要开着梯子挺麻烦的,想给别人用也得那个人能访问谷歌地图先。 地…

centos7 mysql数据库安装和配置

2019独角兽企业重金招聘Python工程师标准>>> 一、系统环境 yum update升级以后的系统版本为 [rootyl-web yl]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) 二、mysql安装 一般网上给出的资料都是 #yum install mysql #yum install mysql-serve…

【Quartz】Quartz概述及入门实例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允…

【Quartz】深入Job、JobDetail、JobDataMap、Trigger

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Quartz API核心接口有: Scheduler – 与scheduler交互的主要API;Job – 你通过scheduler执行任务,你…

图形界面上机作业

1、 制作一个如图所示的界面(使用FlowLayout布局),不要求实现功能。 2、设计一个用标签、文本行与按钮来登录的界面(用GridLayout布局方式)。如图所示。 转载于:https://www.cnblogs.com/quan-2723365710/p/10881691.h…

【Quartz】Spring3.2.9 + Quqrtz2.2.1 实现定时实例

一、工程创建 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1、新建一个工程,导入相应的包Spring3.2.9Quqrtz2.2.1commons-logging 集成起来比较简单,对线程无需任何理解&a…

第十二周作业

这个作业属于那个课程c语言这个作业要求在哪里https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/3236我在这个课程的目标是学习掌握单向链表,掌握二级指针的概念,以及指针数组这个作业在哪个具体方面帮助我实现目标前面3道题…

【Quartz】插件的使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Quartz 框架提供了几种用于扩展平台能力的方式。通过使用各种 "钩子" (通常指的就是扩展点),Quartz 变得很容易被扩…

自动化运维平台(前端vue)

前端的大体流程:首先是Login登录组件,当输入用户名和密码之后,发送post请求到后端,然后根据返回的数据的是否正常,如果正常,将返回的token以及用户名保存到sessionStorage中,并使用导航守卫进行…

Quartz 之入门示例

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 环境:XPMyeclipse6.5JDK1.6 quartz官网:http://www.quartz-scheduler.org/ 参考资料 1 Quartz任务调度快速入门 http://www.blogjava…

CSS3最颠覆性的动画效果,基本属性[3D]

和2D一样也是transform 即变形 1)rotateX rotateY rotateZ(也可以用transform-origin来设置旋转中心点) 2)透视(perspective) 给父亲加透视,透视就是模拟眼睛到物体的距离,近大远小,即数值越小,3D越明显 理…

解决报错 :A component required a bean of type ‘gentle.test.Show‘ that could not be found

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 启动工程失败,报错如题: A component required a bean of type gentle.test.Show that could not be found.…

解决.quartz.ObjectAlreadyExistsException: Unable to store Job : ‘jyGroup.jyJob‘, because one already

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 报错如题: 定时任务出现异常 : org.quartz.ObjectAlreadyExistsException: Unable to store Job : jyGroup.…

WeMos-D1R2的使用

2019独角兽企业重金招聘Python工程师标准>>> WeMos介绍 WeMos-D1R2一个基于ESP8266-12 Wifi模块的Arduino-UNO开发板。也就是说,WeMos-D1R2是一个具有wifi功能的Arduino开发板,但WeMos-D1R2与Arduino-UNO的引脚不是一一对应的,其对…

RabbitMQ MQTT协议和AMQP协议

RabbitMQ MQTT协议和AMQP协议 1 序言... 1 1.1 RabbitMq结构... 1 1.2 RabbitMq消息接收... 4 1.3 Exchange种类和消息发送模式... 4 1.4 RabbitMq的协议... 6 1.4.1 AMQP协议... 6 1.4.2 MQTT协议... 8 2 RabbitMq服务器安装和使用…

Quartz 定时任务(Scheduler)的 3 种实现方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 PS&#xff1a;第 3 种最简单。 一、引入 jar 。 <!-- quartz 定时任务调度 --><dependency><groupId>org.springfr…

加速财务自由的7种理财方法

有人说财务自由是个遥不可及的路&#xff0c;有人却觉得想要在财务上成功很简单&#xff0c;到底财务自由有没有一个正确的方法或是被证明的技巧可以被实现&#xff1f;如果你现在还没达成或是正在达成&#xff0c;底下这7种简单有效的行动与方法可以加速你建构财务自由之路。 …

Git 安装及 idea 配置 Git

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.git官网下载地址&#xff1a;点此跳转git官网 git具体安装不做详细叙述。 2.打开idea 点击Configure -> Settings 3.选择Git 找到…