HTTP协议工作原理是什么 HTTP协议工作原理介绍【详解】

HTTP协议工作原理是什么 HTTP协议工作原理介绍【详解】,第1张

由于网站的用户规模小,一开始没有自建用户体系,使用的是国内流行的几个开放平台的第三方帐号登录。比如:新浪微博、QQ、淘宝、人人网。

这些网站使用的都是OAuth 20协议实现的认证和授权,下面是我按照自己理解画的OAuth 20认证和授权流程图:
整个流程设计3个角色:用户,或者称浏览器;应用服务器,也就是用户访问的站点;开放平台(微博、QQ等)。这里以Weibo为例详细讲讲各个步骤:

用户点击网站页面上的“登录”按钮:

网站收到用户请求后,向开放平台请求一个Authorization Code。网站发送的这个请求url中会包含开放平台分配的APP KEY和一个回调地址。回调地址的作用是用户授权后开放平台通过该回调地址将access token返回给应用服务器。

浏览器页面跳转到开放平台的登录页面,要求用户登录。可以注意到这时浏览器地址栏中的地址是开放平台的域名,而非用户访问的站点,因此不必当心应用站点知道你的开放平台用户名密码。
用户输入用户名、密码,点击“登录”

用户在开放平台登录成功后,如果用户之前没有对当前访问的站点授权,或者已经取消了授权,那么开放平台会将页面跳转到授权确认页面:
默认都是最普通的权限。如果网站想要更高级的权限,需要将权限对应的编码作为scope参数添加到2中的url中。

用户根据网站需要的权限内容选择授权或拒绝。不管用户有没有授权,其实到了这一步都已经完成了2A中的Authentication即认证这一步了。只是如果用户没有对网站授权的话,网站就无法获取到用户的数据,无法进一步为用户提供相关服务。

用户授权以后,开放平台会生成一个Authorization Code,并通过网站提供的回调地址将该code发送给网站。

网站在拿到授权码(Authorization Code)后,就可以使用授权码到开放站点换取Access Token了。Authorization Code只表示得到了用户授权,具体访问用户资源还需要Access Token。

开放站点将Access Token返回给应用服务器。

网站使用Access Token请求用户基本信息。这里由于各个开放平台的api不一样,有时候可能需要不止一次请求,但逻辑上已经没有多大区别了。一旦网站有了这个Access Token,就可以调用开放平台提供的接口请求授权的用户资源。

Access Token有一个有效时间,通常是24小时。在这段时间内,如果用户不做修改密码或取消授权等动作,网站都可以使用该token获取用户的资源。

开放平台校验Access Token无误后,将当前用户的基本信息返回给站点。通常这段信息中会包括用户的昵称、性别、头像等。

站点获取到用户信息后,将页面跳转到登录成功页面,并使用获取到的信息为用户提供一个友好的页面提示,也可以利用该信息为用户提供更多的个性化服务。

这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材需要做点9patch。 这里还需要懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便app能完美适应不同分辨率设备。其中交互设计需要懂得很多人机 *** 作的技巧经验,掌握Axure等交互工具的使用,UI设计需要掌握Photoshop和Illustrator等 *** 作。
3、使用ADT之类的开发环境进行app开发,最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那还得掌握WebService相关知识和开发语言,常用的有ASPNet,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。

如何开发APP

一、APP开发的基本步骤:

1、APP项目筹备期

作为企业或者创业者项目筹备需要解决的问题是:做一个什么样的手机APP?为什么要做手机APP?手机APP解决的问题是什么?手机APP面向的服务对象、人群是谁?。筹备期要把做APP的初衷明确到位,并切要结合自身的资源和优势,以免盲目的扩大APP的需求,最终导致项目上线后运行困难。总之项目筹备期明确自身的优势确定APP解决的问题和面对的对象。

2、APP项目需求文档

项目筹备期后就可以做项目需求文档了,项目需求文档是指用通俗的语言把你想要实现的事情说明白,例如:做个手机APP商城,商户和消费者可以在我的手机App平台上交易购物,特色或者和其他平台差异的地方详细的阐述明白即可;企业或者创业者在写需求文档时应该注意的是要明确你需要实现的功能,并且明确你自己创造性的部分,有了基本的需求后就可以和专业的产品经理交流分析,最终会形成详细的App需求分析。

筹备期和需求文档由需求企业或创业者独自完成。如果这两项未完成和确定时,我们建议不要联系App开发公司,做为App开发公司主要的职能和作用是通过专业的技术帮你实现你的想法,他是没法帮助你创造想法的,我作为铭讯软件多年的APP开发产品经理这点很了解。

3、APP项目分析

做为企业或创业者以上两步完成后就可以联系你所信赖的开发公司详细的交流项目了,做为专业的app开发公司拿到你的需求后,会结合以往开发项目的经验给你提出一些开发建议,比如在开发中用什么样的开发方式实现、如何提高用户的体验度、如何让用户最简单会使用,在开发方式上如何能做到流程最简洁,包括未来项目开发中遇到的问题也会给你提出,在拿到需求分析时开发公司会评估技术实现难度和开发周期,预估开发需要的费用,包括前期你需要准备的资料。App项目分析主要解决的问题就是你的需求结合开发公司的实力和经验为您初步诊断项目、开发难度、开发周期和评估开发费用,一般有经验的开发公司会给你更多的项目指导。

4、APP项目流程图

在项目开发公司项目分析完成后,会根据你的项目需求来绘制详细的项目流程图也叫思维导图,此步骤的主要目的是对项目所有流程的详细剖析,此流程完成后会明确两个问题,第一项目开发方是否对你的项目需求有准确的了解,第二项目需求方也会明确你预想的流程是否合理。此流程开发方和需求方会经过多次的沟通最终确定双方理解正确的流程。项目流程图建立完成后需要注意的几个方面:需求方必须充分了解项目的流程和各个交互环节是否在流程图上表达清楚,开发方必须根据以往的经验结合项目和用户体验做出最优化的流程。一般在开发中此步骤双方交流的时间比较长。也是项目开发初期至关重要的一步,铭讯软件APP产品经理的建议此步骤不明确时不要盲目进行下一步骤。

5、APP项目原型图

在流程图确定后,做为开发方就要开始绘制原型图了,原型图是项目需求图形化的第一步,原型图的目的是:第一简易的图形化帮助需求方来了解未来手机App的布局和结构;第二交互的确定,因为手机APP是一个完整的流程,每个流程如何到下一步,下一步后如何返回上一步,异常流程时如何提示,这些都在原型图中会展现出来,会帮助需求者再次确定流程的完整性。原型图完成后开发方会和需求方深度的沟通交流,因为在交互步骤每个人的认知和习惯是不一样的,每个受众群体也不一样的;在此步骤做为经验丰富的开发者也会考虑到,此步骤需要开发方产品经理和需求方负责人员多次交流沟通最终确定。此步骤需要的时间也是很多的。

6、APP项目效果图

在原型图确定后,恭喜你,项目开发已经完成20%的工作量了,接下来开发方的UI设计部门会根据原型图和流程图来制作图文并茂的效果图了,效果图是最接近项目完成时的形态的,效果图的制作会根据项目的需求、项目的LOGO、项目的人群来选择主色调,例如:京东APP是红色、淘宝APP是橘红色、政务APP是蓝色等,不同的选色会给项目APP带来不同的效果。一般项目开发方的UI设计部门会第一时间完成项目首页的效果图,首页效果图完成后会和需求方讨论,主要讨论色调,一般大型的企业客户会有标准的企业用色,但是做为创业者可能前期没有标准的企业VI设计,需要根据项目和需求喜好最终确定项目主色。此步骤开发公司会把所有的页面根据原型图的设计完成。此步骤完成后项目的视觉部分基本完成。

7、APP项目开发(页面APP标注适配、项目后台接口开发、项目数据库设计)

在效果图完成后,经过需求方确定后项目就进行程序开发和数据库设计环节了,但是做为App开发还有一个重要的环节就是页面标注和手机适配,此环节也是App开发独有的环节,很多客户就不能理解为什么还有标注和适配,我重点给大家讲解一下。

71、页面APP标注和手机适配

智能手机做为新时代的产物已经不仅仅是完成手机的基础打电话、发短信功能了,还具备了电脑、相机、定位的特性,伴随的时代的发展手机也逐步的发展由起初的小屏幕低配置到现在多样化;屏幕区分:全面屏手机、页眉手机屏、1080屏、真彩屏等;手机 *** 作系统区分:安卓系统(20-100版本)、IOS系统、塞班系统(Symbian)、微软(WindowsPhone)等系统;手机厂家区分:苹果手机、华为手机、小米手机、联想手机、vivo手机、OPPO手机等;其他配置区分:前置摄像头、后置摄像头、指纹识别、GPS定位、北斗定位、内置陀螺等;所有大家会看到很多手机的型号和 *** 作系统版本,为了让开发的APP能在各个手机上都能最好的显示和正常使用,开发人员要进行大量的适配工作,这也是在开发环节中很重要的部分,也是体现一个手机APP开发公司实力和经验的重要部分,此步骤的完成质量直接会影响到未来项目上线后用户使用体验。

72、数据库设计和后台系统开发

数据库的设计是专业数据库工程师或者项目负责工程师的工作,数据库通俗讲就是数据存储的一个盒子,会存储所有的数据库包括会员姓名、产品资料、交易数据等,在这个存储的盒子里面又根据存储的数据库类型分成了若干个‘货架’,条理的按照类别和使用频率存放在‘货架’上,这样在使用到时系统会最快、最准确的取到和存放。数据库结构的合理会大大提高系统工作时所需要的时间、效率和储存量,这也就是很多项目在运行中期为什么有的运行很快有的运行很慢,甚至有的还会出现计算错误的原因。所以在设计数据库时工程师会充分考虑。

系统后台开发通俗的理解是系统运行中作为集中管理的一个地方,包括了数据查看、数据发布、数据统计等重要工作。也是日常处理系统数据的重要地方,后台设计的功能一般是根据项目的需求功能确定的,比如商城类APP后台要有产品发布、产品管理、会员管理、产品订单等。

安卓和ios工程师根据标注效果图和原型图设计前端程序。

APP项目开发完成后,此项目的开发基本完成了70%工作量。

8、APP项目初稿测试

APP开发公司完成项目开发后的一个内部测试环节,一般的App开发公司是有多人多部门多岗位联合开发一个项目,做到了专人专岗的分配,也会保障项目在最快时间开发完成,所以项目多部门合作开发完成后需要进行开发公司内部的测试,开发公司会有专门的岗位叫测试工程师,一般测试内容分为:流程测试、体验测试、功能测试、性能测试等几部分;

首先进行的是流程测试,测试项目的流程是不是按照项目需求、项目流程图、项目原型图进行的,在测试期间除了测试系统流程的准确性之外,测试工程师还会根据自己以往的经验对项目流程进行测试,一来拟补设计时的一些不确定因素,还会更加完善项目。

体验测试是对项目整体用户 *** 作体验进行测试,包括交互的顺畅程度、交互体验感、交互是否顺畅等。

功能测试是测试工程师对项目的功能,进行系统性测试保证功能开发的完整性和可用性。同时对功能提出更优化的建议和见解。

性能测试是对系统的稳定性、安全性和承载能力做的系统性测试,包括多终端的测试,手机的适配测试,不同手机和系统版本进行的测试,做到系统兼容性强;承载能力是指系统数据处理能力和反映时间的测试,详细测试项目软件的并发数量和对服务器环境的要求,做到高并发大数据集中处理的能力。

9、APP内测

经过开发公司内部测试完成后,就可以联网进行系统内测,参与人员包括项目需求方和开发公司测试人员,可以下载并安装测试版本,此流程的测试包含系统后台使用培训环节,开发方会培训需求方后台使用方法,系统参数设置方法,需求方可以根据实际测试和内部运行的情况给出测试报告,包括实际使用中数据统计部分和 *** 作习惯部分的优化建议。前端可以多邀请一些内部人员进行测试,充分优化和测试系统的体验度和稳定性。此部分完成也代表着整个项目的开发接近尾声。

10、APP正上线

经过研发公司内测和需求公司的内测后系统通过后,项目基本具备上线运行的条件,根据需求方时间安排时间可以选择时间正式上线。期间需要租用正式的云服务器做为运行的环境。

11、APP项目技术运维

很多企业或者创业者经常谈到的一个问题,APP开发完成后需要多少后期运维人员,商城APP举例:一般一个项目的正常的运行需要的人员有财务人员、产品管理、产品售后、产品物流等人员。技术运维人员有系统BUG修复安卓、ios、后台等各一人,一般一个好的系统开发公司会跟踪项目的运维一段时间。

手机APP开发需要多少人、多少个岗位配合?

1、APP项目产品经理

产品经理是项目需求方和软件开发工程师之间的一个纽带,他既要根据产品需求方的需求文档做出相应的项目分析和项目诊断,还要为项目的后期开发提供项目流程图和项目原型图,以至于开发过中才能最节省时间,同时保证开发人员能按照客户的需求进行开发,以防项目开发过程中理解错误问题,同时项目经理会根据项目的需求结合自身的经验给企业或创业者更多开发建议。

2、APP项目后台、数据库工程师

此岗位人员会严格按照产品经理的分析和规划完成程序代码部分的书写,包括数据库的设计。一般工程师类型为Jav或PHP工程师。

3、APP项目安卓工程师

安卓前端开发工程师,主要完成项目的前端逻辑部分的代码书写,多版本手机的适配工作。

4、APP项目IOS(苹果)工程师

IOS前端开发工程师,主要完成项目的前端逻辑部分的代码书写,多版本手机的适配工作。

5、APP项目测试工程师

项目的测试和bug的发现。保证项目上线前的完成和测试工作。

6、云服务搭建和安全工程师

负责项目服务器的安全和搭建工作,一个项目完成后肯定要有一个容器来承载项目的程序和数据库,采用云服务有很多独特的优势,前期采用云服务器整体投资比例比较低是前期项目服务器部署的首选。

APP开发中常用的接口或服务申请

项目开发过程中会用到很多第三方软件的接口,可以做到多平台的融合,同时会提升用户体验感。一般前期会根据项目需求在项目开前期就着手准备接口的申请,常用到的接口如下:

1、微信开放平台

微信不言而喻是目前社交软件使用群体比较多的软件,同时微信提供了强大的传播功能,例如微信授权登录、微信支付、微信分享等。

2、支付宝开放平台

支付作为国内知名的支付平台,可以提供支付宝支付。

3、推送接口(极光推送、友盟推送等)

很多APP项目为了随时提供给客户数据变化或者消息通知都要推送给客户一些信息(也称手机任务栏消息),目前借助第三方的推送可以实现后台进程关闭推送,低延时、低功耗。支持手机广泛。

4、手机短信验证码接口

做为会员注册时必选的一个选项,目的是验证手机号码的可用性,包括重要信息修改时的验证工作,例如:修改登录密码二次验证工作、修改支付密码的验证工作,可以做到安全的数据提供。

5、阿里云服务器租赁

伴随着云服务的兴起,很多大平台都开放了云服务,做为项目前期选择云服务是比较合算的部署,云服务d性计算随用随付费,可以有效的管理支出,同时现在云服务上提供综合的云产品,包括高效的CND分发、负载均衡、云安全、国外云资源等,目前我们推荐项目使用最多的是阿里云和腾讯云。

6、其他使用的接口(身份z验证、身份z识别、人脸识别、即时消息等)

根据实际需要更多的接口可以申请,比如身份识别的身份z验证、活体识别的人脸识别等,目前技术成熟使用方便,按需付费。

云服务器的选择

1、阿里云服务

2、腾讯云服务

3、百度云服务

4、其他云服务(京东云服务、亚马逊云服务等)

五、APP项目首期开发后,如果发生了需求变更如何处理?

一般项目开发完成时,会根据项目实际投入市场后的运行情况进行结构或者流程的调整,这些都是在所难免的,前期策划再周全也难免后期的调整和改动,一般一个项目的成熟大改需要半年的时间,所以在开发前期要做好充足的准备,我们铭讯软件一贯的做法是负责项目一年左右的基础功能运维工作,还可以通过付月维护费来签署战略合作伙伴,这是会为客户提供每月的技术升级技术改造服务,充分让客户把经历投入到市场推广和项目运作中。

开发一个APP的详细流程有什么

按照时间规定,我们分为以下七个阶段:

1、沟通阶段

仔细做软件致---电---幺伍扒---幺幺叁叁---驷柒驷驷进行用户访谈、需求分析、需求评审。企业的想要做什么样的APP,APP想要实现什么样子的功能,APP整体想要什么样的风格,APP想要适配哪个系统平台,进行系统化的交流与整理之后,交给技术团队去实现的。

2、评估致---电---幺伍扒---幺幺叁叁---驷柒驷驷阶段

了解用户使用环境、 *** 作流程和功能需求之后,企业要对APP开发的一个工期所需的报价进行评估。

3、设计阶段

设计阶段包括:流程拓扑图、界面交互设计、高仿真原型设计与提供交互方案。设计是纯主观的,就带有一定的不确定因素。

4视觉创意阶段

其中包含:编码规范、页面制作和技术嵌套、系统兼容、单元测试、修复BUG。之后可以用头脑风暴的形式,确立初步的创意方向与定位。接下来将会为用户提供创意表现、页面分格、创意说明等等内容。

5技术开发阶段

进入开发阶段时,对项目本身进行评估,对研发周期、提测时间、预发布时间点进行初步的判断。然后才是对功能进行分解,进行开发准备,按照编码—系统集成—系统测试—BUG修复—交付的流程进行。

6、验收阶段

程序开发完成之后,要等待专业测试人员进行测试,测试内容包括APP性能、功能、内容等。如果测试无BUG,那么就可以验收了。

7、运营阶段

上线之后,APP即可进行运营。在运营期间,要进行推广与数据分析,即对数据报告与数据跟踪,为后期维护做好准备。

嗯,你好!APP开发涉及的知识主要包括:

1、前期需求的分析规划:需要一个完整的需求文档,包括流程图、时序图等,这个非常重要。

2、交互设计、UI设计:就是APP页面的设计和各个页面链接的跳转情况。

3、APP前台开发

苹果iOS版:

从基础开,一定要掌握C语言和数据结构,然后按照C语言+数据结构(面向过程)》C++(面向对象)》Java(进阶)

由于Xcode是运行在MacOSX上的开发环境,你必须首先熟悉苹果电脑以及苹果MacOSX系统的

安卓版:

最基本的Java语言和XML知识,还得学Android特有的API的用法

程序相关

如果想成为android应用开发者,最基本的是需要懂得用。掌握了这两种语言后再装个Eclipse和AndroidSDK,就可以做开发了。当然,

4、服务器相关:得掌握WebService相关知识和开发语言,ASPNet、PHP、JSP等。

5、熟悉并能开发数据库。

6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。

7、API接口开发:包括你自行开发API的能力以及调用第三方API的经验。

8、TCP/IP,socket等网络协议和相关知识。

9、App发布的流程,真机调试技巧,证书,打包,上架。

看到这里,想自学开发一个APP还有信心吗?别伤心、别害怕,因为专业的程序员要自己一个搞定一个成熟的APP也很困难。要一步步地脚踏实地,方能水滴石穿,柳暗花明又一村。加油^0^~!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13365030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存