后台即服务器,按传统C/S架构而言,Client是我们玩的网络应用程序(QQ、微信),Server是远在另一个地方的服务器集群,所以后台开发主要写处理客户端发出的各种请求的代码,
如给另一个用户发消息,上传信息,修改账户密码。

客户端和服务器相隔甚远,请求需要通过网络来传输,所以需要掌握计算机网络,主要是TCP协议,因为许多场景要求信息传递的可靠性保障(如果你发出的重要信息半途掉了你却不自情,可想会造成多大的损失),服务器大多部署在linux下,所以也要懂linux,尤其是linux下TCP API(应用开发接口),即socket,以及linux下的进程间通信(理由见注解1)。

客户请求抵达服务器端后,服务器开始处理,其实处理逻辑比较简单,与数据库 进行交互,上传用户发来的消息到数据库(QQ空间上传图片),修改账户密码等等。

后台开发真正难的在于如何尽快处理超大规模的用户请求,如淘宝双十一;这里需要学习多线程(注2)、分布式(注3)、高可用系统的知识。

总结:

编程语言基础、linux(socket、进程间通信)、计算机网络(TCP)、数据库;

多线程、分布式系统、高可用系统

注1:进程间通信

 大型应用程序的设计方式:
    1.一个庞大的应用程序完成全部工作,程序的各个片段间通过函数参数、函数返回值、全局变量相互调用
    2.使用IPC进行通信的多个应用程序,如unix工具使用shell管道
    3.由多个使用IPC通信的应用程序组成的单个应用程序,通信发生在线程间(也以IPC称呼)
所以一个处理请求的逻辑可能需要涉及多个不同进程之间的互动

注2: 多线程

大白话:为了应对数量庞大的请求,一个进程应对一个请求会导致消耗过多的系统资源(进程占据的、切换导致的),所以把进程内部再分出一些线程来,一个线程处理一个请求,CPU在线程间切换,线程共享进程的系统资源,切换的代价小很多。
再次大白话:就好像原先一个家庭招待一个客人,现在家里的一个人接待一个客人,资源还是一个家的

注3:分布式

不太懂。。
分布式缓存集群:
    根据28法则,用户百分之80访问的资源只是最常见的20%(热点),所以可以将这些信息进行分布式缓存集群里,找距离用户最近的端点发出信息。