注:本文内容源自`polaris`在知识星球[**Go项目实战**](https://t.zsxq.com/BM72RZR)中的直播,已获得本人许可。
## 第一站:穿梭于Internet
![internet.png](https://static.studygolang.com/190414/54cbfeadeaca42405e2ec9b11ac809fc.png)
## 第二站:协议
重点掌握
- TCP/UDP
- HTTP
常考面试题
- TCP的三次握手过程
- TCP的四次挥手过程
#### 推荐书籍
- 《图解http协议》
- 《图解TCP协议》
建议用`wireshark`抓包软件进行分析。
## 第三站:Unix/Linux操作系统
掌握对`Unix/Linux`操作系统的常用操作指令操作,例如
- `shell`脚本
- `vim`编辑器的使用
- `sed`
- `awk`
多练习,多总结
网络编程方面需掌握
- Socket、Unix Domain Socket
- 进程间通讯
#### 推荐书籍
- 《UNIX网络编程卷一:套接字》
- 《UNIX环境高级编程》
- 《Linux/Unix设计思想》
## 第四站:Nginx、Apache、Caddy、等Web Server和核心功能
### 介绍
![server.png](https://static.studygolang.com/190414/96f54064f0a2cc073513d66883e4ec93.png)
### Web Server核心功能
- HTTP解析
- HTTPS支持
- 虚拟主机(一个端口,多个域名)
- 静态资源
- URL重写
- gzip压缩
- 作为反向代理,和其他进程常用通讯协议的支持
推荐学习了解下`Caddy`
## 第五站:常用的支持Web开发的语言
- PHP(LAMP、LNMP)
- Java
- Python
- Ruby
- Go
- C#(.NET)
另外常用的数据结构和算法要有了解
## 第六站:数据库
- 关系数据库:SQLite,MySQL,Postgresql,SQL Server,Oracle
- NoSQL:Redis,Mongodb,Cassandra,HBase
- 缓存:Redis,Memcached
- 其他:Go BoltDB,dgraph,CockroachDB
入门数据库推荐使用`MySQL`
#### 推荐书籍
- 《高性能MySQL》
- 《MySQL技术内幕InnoDB引擎》
- 《Redis实战》
## 第七站:架构
- 高可用,高性能,可扩展
- 分布式,CAP理论
- 分布式消息队列:Redis,ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等
- 常用的应用场景:异步处理,应用解耦,流量削峰和消息通讯
- 微服务
## 写在最后
直播后有个答疑环节,我将此次答疑的收获整理如下:
#### 关于服务端面试
面试考语言的分量比较小,因为服务端涉及的面比较广,需要学习的东西很多,有时候原理比语言更重要。
#### 关于承压
在项目研发过程中,无论是测试还是上线跑,服务端会经常背锅,所以在压力上要及时调整好心态,做好和其他岗位人员的及时有效沟通。
#### 关于未来发展
努力去大公司,做一些大项目,最好流量是千万级别以上的。
学无止境,一起努力!
[原文连接](https://niannian.cleer.club/category/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%BC%AB%E6%B8%B8/)
有疑问加站长微信联系(非本文作者))