文档章节

8.app后端和web后端的区别

 晓已
发布于 2015/04/03 16:40
字数 741
阅读 59
收藏 1

【转载】作者曾健生,公众号IDappbackend

               比目科技 Bmob后端云

 

  很多从web后端转到app后端的小伙伴经常很茫然,不知道这两者之间有啥区别。本文通过例子,分析web后端和app后端的区别,使各位更好地把握app后端的架构。

  

(1)app后端要慎重考虑网络传输的流量,主要是api设计,图片处理上

  

  现阶段,手机上网的资费还是要按照流量算的,一般的3G用户,每个月的流量几百M,4G用户,每个月的流量也就几G。

  

  如果不考虑网络传输的流量,一张图片就占了几百K,流量用得飞快的。

  

  在前面的文章《7appapp后端的通讯》中提到,api的返回结果一般是json格式,使用json格式的一个重要原因是,同样的内容,用json格式更省流量。

  

  app下载的图片也一样,默认是让app下载经过压缩处理的图片(一般是几十K以下),当用户需要查看原图时,才让用户下载原图。

  

(2)移动手机弱网络环境,稳定性,到达率

  

  移动手机因为移动的特性,特别是在高速移动的时候,3G信号是时有时无。

  

  因此,后端发给app的信息,是无法保证一定到达app的,极有可能当发送的时候app是有3G信号的,但发送的过程中,3G信号就没了,这样消息就没了。

  

  针对这种情况,需要做app端的信号的确认。

  

  例如,推送系统中,app要保存接收到的消息编号。

  

  服务端发送了编号为1,2,3这3条推送给appapp端记录下来的消息编号只有1,2,那就意味着编号为3的消息丢失了,但是推送服务器是认为编号为3的消息已经推送成功的。

  

  app每隔一段时间,询问一下服务器已经发送了哪几条消息,通过比对消息编号,如果有遗漏的,那就要求服务器再发送一次。

  

  通过这种策略,就能在很大程度上保证信息的完整性。

  

(3)手机电量有限

  

  普通的手机,充满电池能用一天左右,如果是在app端做大量的网络请求和运算,那么手机的电是消耗得很快的。

  

  但是,如果所有的运算都集中在服务端,也会增加了服务器的负担。

  

  这两者之间的平衡,需要在项目中仔细斟酌。

本文转载自:http://mp.weixin.qq.com/s?__biz=MzA3NDMzODk5Mw==&mid=203036279&idx=1&sn=e62d84176d0d7588939df9a4d...

共有 人打赏支持
粉丝 2
博文 15
码字总数 1110
作品 0
广州
私信 提问
app后端设计--总目录

做了3年app相关的系统架构,api设计,先后在3个创业公司中工作,经历过手机网页端,android客户端,iphone客户端,现就职于app云后端平台bmob(想了解bmob点击这里)。其中的乐与苦,得与失,...

云栖希望。
2017/12/04
0
0
产品经理的技术报3:如何精确区分问题属于前端还是后端?

背景 现实工作中,很多产品新人并不太了解技术,对前后端的理解也很模糊,需求也不知道属于前端工作还是后端,bug也不知道是后端数据没处理好还是前端没处理好引起的 前后端漫画 前端后端 来...

产品经理的技术课堂
2017/06/24
0
0
nginx学习之反向代理负载均衡

nginx是一款很强大的http和反向代理服务器。它的功能非常强大。 并不是一开始就需要负载均衡集群,当网络流量不断增长,单个处理单元无法满足负载请求时,网络应用流量将要出现瓶颈时,负载均...

yaoruixue
2017/07/14
0
0
Velocity与JSF之间有什么区别?

现在想把前端与后端完全分开,同事说JSF可以做到,但是OSC好像用过Velocity,请问这两者具体区别在哪里? 我普通WEB项目需要把前端与后端完全分开要用哪个好?或者有什么好的推荐? 回答有机...

loki_lan
2015/06/29
1K
8
【译】类比餐厅桌前就餐来解释前端和后端

如果你曾去过坐式餐厅,那么你就能理解web开发中前端和后端的区别。 在开始学习web开发,你会遇到一系列使你迷迷糊糊的概念。 数据库?服务器?客户端?服务端?AJAX? 幸运的是,你只需要了...

call_me_R
2018/12/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0
跟我学Spring Cloud(Finchley版)-15-Hystrix监控详解

Hystrix提供了监控Hystrix Command的能力,本节来详细探讨。 监控端点与数据 应用整合Hystrix,同时应用包含spring-boot-starter-actuator 依赖,就会存在一个/actuator/hystrix.stream 端点...

周立_ITMuch
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部