互联网,是个较为明确且范围有限的概念。因此,互联网技术相对也是有限的,互联网公司的技术体系也是有限的。
站得更高一点看,它也就“那么点技术”。
But,现在的我们依旧渺小。o(︶︿︶)o
对于互联网公司的技术体系,我有以下认识,仅供参考。
本文只是想表达一种观点:互联网公司的技术体系是相对明确的,大多数公司就在“大圈里画小圈”。
第一层:终端设备
终端设备,是用户直接操作的工具,包括硬件设备、操作系统、应用程序3个部分。
常见的有5种:
1、PC客户端
硬件(台式机+笔记本)+操作系统(Windows,Linux,iOS)+本地应用(QQ、酷我音乐盒、有道云笔记)
2、PC浏览器
硬件(台式机+笔记本)+操作系统(Windows,Linux,iOS)+浏览器(IE、360、QQ、Chrome)
3、移动客户端
硬件(手机+平板)+操作系统(Windows,Android,iOS)+本地应用(微信App、京东金融App、支付宝App)
4、移动浏览器
硬件(手机+平板)+操作系统(Windows,Android,iOS)+浏览器(QQ、UC)
5、其它设备
大型主机、路由器、互联网电视、车载导航系统、智能手表等多种设备。
第2层:域名解析
用户请求,需要先找到服务方的IP地址。但是,IP地址不够友好,大部分请求的地址URL是用域名来表示的,比如http://jd.com/article/xiaolei.jpg。
域名解析,是由全球无数个有层级节点的DNS服务器共同合作完成的。
国内的域名解析,注册域名之后,可以直接“解析”。但是,不能用作网站用途。
解析:把jd.com域名映射到11.12.13.254这个ip。
网站用途:访问jd.com。如果没有备案,运营商会提示“请首先备案”。
网站备案:最常见的是指域名备案,提交域名基本资料,到工信部备案。
其它备案,包括ICP证、电信增值业务许可证、公网安备等几十种。
没有相关“证书”和“牌照”的网站,都是处于“灰色地带”,随时会出事。
第3层:网络协议
信息传输过程中,会遵循各种网络协议。最常见的有,HTTP和TCP/IP。
第4层:请求分发
软件和硬件实现的负载均衡机制,会把请求分发到其中一台服务设备上。
负载均衡,常见的至少有2个层次,比如直接把域名解析到不同的IP上,可能直接交给了某台应用服务器,也可能是交给了Nginx,再转发给某台应用服务器。
第5层:应用容器
Weblogic、Tomcat、Apache等应用服务器和容器,通过容器中的程序来响应互联网请求。
这里需要简单提一下“内部分发网络CDN”。
用户请求,如果访问的是静态内容,可以直接去CDN获取,而不一定会到应用服务器这里。
第6层:展示交互层
Web请求,交给了Web容器比如Tomcat里的Java程序处理。
Java程序中,有一层专门用来接收请求,解析数据,在内部处理完成之后,把结果数据交给用户。
这一层,可以叫做Controller层、展示层、界面交互层等。
第7层:业务服务
第6层的展示交互层,只做数据的接收和简单封装,请求的核心响应逻辑,通常在“业务服务层”,这一层才是真正的处理“业务逻辑”的地方。
比如,用户购物、理财产品回款报表、物流运输路线等。
需要特别说明的是,随着互联网的发展,出现了各种各样的SaaS平台,第三方API,第三方可用服务,展示交互层和业务服务层,可以调用第三方的API,满足自身的需求。
第8层:数据层
数据库,MySQL和MongoDB等。
缓存,Redis和Memcache等。
文件系统,本地和远程。
第9层:硬件和网络设备
主机、云主机、应用容器、虚拟容器、应用引擎、网络、IP、机房。
全局观:对于咱们有工作经验的人来说,先全局后局部,可以更有效率地学习和实践。