本篇文章讲解服务端基础知识
适合人群:适合非技术背景产品经理,非技术背景互联网从业
互联网是如何提供服务的
我们是如何获取互联网资源的
我们通过手机或者电脑访问互联网上的资源,包括图片,文字,视频等都是在获取互联网资源,存储在服务器上的数据。客户端作为接入载体,访问服务端的数据,服务端提供计算逻辑和内容服务,以数据流的方式进行内容传递
互联网服务依赖于网络连接,客户端与服务端的通讯也依赖于通顺的网络,这是一切互联网服务的基础,通过ping命令可以检测某个服务器地址的连接是否可用(packet internet groper:互联网包探测器
工程师经常说的ping一下就是检测一下目标服务器是否连通
通过端口访问对应的服务
同一台服务器的服务可能有多个,通过端口可以唯一确定具体对应的服务,通过netstat -an可查看本地服务对应的IP地址和端口号
工程师所说的8080端口,就是某一服务对应的具体端口
代理服务器
代理服务器是指客户端在发起数据请求的时候,先发送到代理服务器,然后由代理服务器向目标服务器再发送请求,多客户端和目标服务器之间通过代理服务器间隔
优势:
1.逻辑解耦
2.提升安全性
3.便于做资源协调
CDN服务
CDN(content delivery vetwork),内容分发网络,主要通过大量服务器来为用户提供就近资源访问。CDN服务集群的特点:
1.需要海量服务器支持
2.内容路由分发规则
3.访问就近CDN节点
服务端基础技术架构
服务端基础介绍
服务端也被成为“后端”,在产品对应的技术体系中,负责业务逻辑处理和数据处理,是“大后方”
服务端处理逻辑:
1.客户端通过互联网将数据以接口的形式发送给服务端
2.服务端以服务器承载,接收客户端请求
3.服务端处理业务逻辑并做数据存储管理
4.服务端将请求结果返回给客户端
服务端放在哪里
客户端通常在用户侧,例如手机和电脑。服务端则放置在机房中,准确说,运行在服务器上。我们所说的云端,其实就是对应的机房。机房的构成:服务器机架,网线,不间断电源,维护人员
机房组成
服务器端构成:应用服务器,负载均衡服务器,交换机,数据库服务器,网络端口
服务器机房:服务器机组,网线及网络端口,备用电源,冷却装置
服务器端涉及的技术职能:服务端应用开发工程师,运维工程师,机房监控及管理人员,数据库管理员
作为产品应该知道出问题后找谁
服务端开发技术
服务端开发语言有很多,例如java,PHP,python等,不同的开发语言都可以用来构建服务端。服务端程序运行在服务器中,服务器的部署有两种放式:
1.自建服务器机房
2.使用云服务,如阿里云,亚马逊AWS等
什么是接口和API
如何实现数据通讯
客户端之间的通信,客户端与服务端之间的通信都通过接口来实现。应用程序编程接口(API:application programing interface)是一个通讯协议,约定客户端与服务端之间数据传输格式和访问地址
接口定义
接口(API)由两部分组成:URL地址,数据参数
URL地址:确定所访问的服务器地址以及对应的端口和服务
数据参数:以某一种格式来定义和携带数据,经数据从客户端发送到服务端
例如:登陆接口的定义
API对应的URL:https://192.168.0.1:8080/myserver/login.do
数据参数json格式:{"username"="ryan","password"="pwd"}
数据载体json/xml
json(javascript object notation)是一种轻量级的数据交换格式,json格式灵活性高,易于人理解和阅读,目前用的比较多
xml(extensible markup language)全称可扩展标记语言,也可以用来进行简单的结构化文本数据的存储,格式与html相似
API和SDK的区别
什么是SDK
例:位置定位API的定义,API对应的URL:https://192.168.0.1:8080/myserver/location
SDK:软件开发包(software development kit),是一系列开发工具(API)的集合,比如定位SDK,推送SDK,数据统计SDK等
每一个平台或者技术语言,都有对应的SDK版本,例如android SDK,ios SDK,python版SDK
API和SDK的关系
API是一项单独能力,通常一个API对应一个能力接口,例如定位API,登陆API,授权API。SDK则是将一系列的API集合封装起来,以软件包的形式对外提供服务
应用程序是如何集成并使用SDK的
根据对应的版本,集成SDK包,按接口文档的要求,调用SDK里的API。使用SDK前需要专门申请对应的key,进行授权使用
使用SDK中接口的过程就是集成SDK的过程
服务端与客户端数据交互模型
接口请求与响应
客户端程序通过发送http请求访问对应的API(URL),并携带参数(json/xml)传递给服务端。对应产品功能是:
1)一个功能可能只对应一个API,也可能同时调用多个API
2)一次功能操作,API可以顺序执行调用,也可以异步处理调用
服务端接收API调用后,处理业务逻辑,并将处理结果以数据参数的形式返回给客户端。对应产品功能:
1)客户端操作某一功能后,等待服务端返回结果
2)等待服务端响应功能结果可以是同步的,也可以是异步的
基于请求-响应的数据交互模型
服务端与客户端之间都是基于这种数据交互模型来进行通信,每一次请求都由客户端发起,服务端接收请求并完成业务逻辑处理和数据处理之后将结果返回给客户端
生产环境与测试环境
服务端运行环境
服务端程序运行在服务器中,可分别配置生产环境和测试环境。
例:不同的运行环境可以通过URL地址来区分
生产环境服务器IP地址:http://192.168.0.1/myserver
测试环境服务器IP地址:http://127.0.0.1/myserver
区分生产环境和测试环境主要通过访问服务器的IP地址不同来划分
运行环境注意事项
测试环境是用来给工程师开发测试用的,对应的功能和数据与生产环境会有一定的区别:
1.在发布新版本前,尽可能将生产环境数据同步到测试环境进行测试
2.在做一些例如数据推送测试,数据库修改测试时,仔细检查当前环境是测试环境,避免将线上版本删除,出现误操作
3.测试环境和生产环境都需要做新老版本兼容性测试