文档章节

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

 晓已
发布于 2015/04/03 16:40
字数 741
阅读 57
收藏 1
点赞 0
评论 0

【转载】作者曾健生,公众号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-server通过RPC接口,从通用业务服务获取数据 biz-service通过RPC接口,从多个基础数据service获取数据 基础数据service通过DAO,从独立d...

xqtesting
2017/12/15
0
0
互联网分层架构系列之四:前后端为什么要分离

通用业务服务化之后,系统的典型后端结构如上: web-server通过RPC接口,从通用业务服务获取数据 biz-service通过RPC接口,从多个基础数据service获取数据 基础数据service通过DAO,从独立d...

wqhlmark64
04/12
0
0
matplotlib中什么是后端

什么是后端 Created Monday 10 December 2012 在很多网上文档和邮件列表中提到了"后端",并且很多初学者会对这个术语迷惑。matplotlib把不同使用情形和输出格式作为目标。一些人用matplotli...

LianyouCQ
2012/12/10
0
0
synchronized/EasyCaptcha

EasyCaptcha JavaWeb图形验证码,支持gif验证码,可用于基于的session的web项目和前后端分离的项目。 效果展示 刷新页面可以重新生成验证码图片。 导入项目 gradle方式的引入 需要先在proje...

synchronized
07/02
0
0
互联网分层架构,为啥要前后端分离?

作者:58沈剑,来源:架构师之路 一,典型后端架构 通用业务服务化之后,系统的典型后端结构如上: web-server通过RPC接口,从通用业务服务获取数据 biz-service通过RPC接口,从多个基础数据...

bjweimengshu
2017/12/07
0
0
Web系统开发构架再思考-前后端的完全分离

原文:Web系统开发构架再思考-前后端的完全分离 前言   前后端完全分离其实一直是Web开发人员的梦想,也一直是我的梦想,遥想当年,无论是直接在代码里面输出HTML,还是在HTML里面嵌入各种代码,...

杰克.陈
2017/12/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之开发拦截器(21)

序言:几乎所有项目都需要拦截器,所以小伙伴们必须要掌握这门技术哦,不然只会mybaits增删改查那是实习生干的活呀。 1、创建拦截器类,implements HandlerInterceptor public class MyInce...

木九天
14分钟前
1
0
(转)SQL语句的执行顺序

(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (......

Avner
23分钟前
0
0
1.14 救援模式

确保开机启动时连接镜像文件,如果是真机服务器,就需要:U盘或光盘镜像启动进入BIOS 不同主板进入bios按键不同,一般是F12或Esc 光标:移动到Boot(开机启动项) 减号移动:光标选中行,按-...

小丑鱼00
30分钟前
0
0
ES11-全文检索

高级别全文检索通常用于在全文本字段(如电子邮件正文)上运行全文检索。 他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。 1.term查...

贾峰uk
34分钟前
0
0
java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
49分钟前
2
0
jstack的简单使用

公司测试反应, 一个java应用的机器, 即使不做交易, cpu始终是30%多, 于是想到了jstack, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid下的cpu占用...

零二一七
56分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
今天
5
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
今天
1
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
今天
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部