《互联网技术的秘密》开篇

从你用浏览器打开一个网页开始,如果从技术上来说,你知道这后面发生了一些什么事吗?无论是电脑上的网页浏览器,还是手机上的浏览器,无论是手机中装的各种APP,还是你家的可以联网的电视,无论是各种可以联网的车载系统,还是各种可以联网的可穿戴设备,以及开始兴起的智能家电,只要能够联上网的,我们都称之为上网终端。
那么问题来了,这些上网终端是怎么和互联网技术产生关联的呢?我们以微信打开一篇某公众号的文章为例,来说说,这后面发生了什么。我们打开一篇文章,实际上打开的是一个网址,如:https://mp.weixin.qq.com/而接下来要发生的事就开始了:

  1. 浏览器解析https://mp.weixin.qq.com/ 域名
  2. 将域名解析到IP:180.163.21.166
  3. 如果第2步中的IP只是一个代理IP,那么接下来,它的请求会转发到某真实网页服务器IP,生成真正的内容网页,如果是很小型的网站,可能网页中的所有元素都存放在这台机器上,那么流程就结束了,直接到第5步结束返回内容。而真正大型的网站,为了应对巨大的流量访问,采用的是分布式系统架构,那么就会有第4步中服务器进行组合了
  4. 它们有:图片服务器,视频服务器,音频服务器,数据库服务器,缓存服务器,消息队列服务器,JS,CSS静态资源服务器
  5. 通过HTML将所有第4步中的所有元素组织起来,生成一个内容页,返回给微信的内置浏览器

那么这中间所涉及到的技术有哪些?下面罗列一些比较常用的技术点:

  1. DNS解析,DNS轮询
  2. 代理转发,负载均衡,LVS,Nginx
  3. 各种协议,如:HTTP协议,TCP/IP协议,UDP协议等
  4. 数据库,如:MySQL,SQL Server, Oracle, DB2等
  5. 文件存储,如:图片,视频,音频等,CDN加速
  6. 缓存,如:Redis, Memcache等
  7. 消息队列,如:Kafka, RabbitMQ, RocketMQ, ActiveMQ等
  8. 网页前端技术,如:HTML/5,Javascript,CSS/3
  9. 服务端编程语言,如:Java,PHP,Python,NodeJS,Golang,Rudy,C#等
  10. 客户端编程语言, 如:IOS,Android等
  11. 安全,如:加密解密,SSL,ARP攻击,跨站脚本攻击,SQL注入攻击等

这么多的技术,一般公司会配备什么样的技术人员呢?
如果是具有一定规模的公司,会配备一下技术人员:

  1. 后端开发:负责实现后端所有业务逻辑,通常负责的是系统的最最核心的部分。负责用好编程语言来通过算法实现业务逻辑,他们通常操作的比较多的是数据库,缓存,消息队列,存储等等。后端编程博大精深,不同的编程语言,不同的数据库,不同的缓存,不同的消息队列都要求后端开发人员具有不同的技术积累。
  2. 前端开发:负责前端页面的呈现,分网页前端和客户端前端。网页前端包括:HTML,CSS,Javascript等技术的HTML5开发。客户端前端分:IOS,Android,电视TV,PC的软件,智能设备中嵌入的软件等。不同的客户端,通常都不需要不同的的开发人员进行开发。
  3. 运维:负责管好各种服务器,与他们打交道最多的是Linux,LVS,Nginx,Tomcat,Apache,防火墙,容器,Shell,IIS,ARP,安全,SSL,TCP/IP协议,组网,局域网等。
  4. DBA:负责管好各种数据库,如关系型数据库,NOSQL数据库,缓存,消息队列等,他们经常需要关心的是数据库的备份,容灾,分库,分表,监控等。

这么多的技术,这么多的人,这么多的精英,改善了我们的什么生活呢?可以说方方面面。

  1. 交通,打车,订票,实时公交查询,滴滴,12306
  2. 支付,支付宝,微信支付
  3. 银行,理财,各大银行的网上银行
  4. 吃饭,美团,饿了么
  5. 购物,天猫,淘宝,京东,唯品会,拼多多,云集,聚美优品,屈臣氏
  6. 娱乐,视频,音乐,短视频,直播
  7. 旅游,马蜂窝,携程,艺龙,去哪儿
  8. 资讯,新闻,4大门户,新浪,搜狐,网易,腾讯
  9. 家政,58同城
  10. 通讯社交,QQ,微信,飞信,子单短信,网易泡泡,米聊
  11. 搜索,百度,搜狗,360搜
  12. 地图,百度地图,高德地图,腾讯地图
  13. 等等等等……

本网站将围绕以上技术,行业进行一些思考,不定期发布一些文章,如果你喜欢,欢迎帮转。