- 1 从用户在浏览器地址栏输入URL 开始,发生了什么?
- 2 DNS Query
- 3 HTTPS
- 4 负载均衡
- 5 应用服务器
1 从用户在浏览器地址栏输入URL 开始,发生了什么?
2 DNS Query
浏览器和服务器之间的连接是HTTP 连接,HTTP 是一个无状态的协议,HTTP 不 保留两个Request 之间的任何数据。HTTP 一般是建立在TCP/IP 传输层协议之上。 所以要建立HTTP 连接,浏览器需要知道服务器的IP 地址。浏览器通过查询DNS 找到服务器IP 地址。
3 HTTPS
因为HTTP 传输内容是明文,没有加密,所以客户端和服务器之间的任何一个第 三者都可以看到传输内容。HTTPS 是建立TLS(Transport Layer Security) 之上, 利用TLS 实现HTTP 加密传输。
4 负载均衡
在互联网上一个流行的服务,客户端数量往往是多于服务器,绝大多数情况下, 一台应用服务器难以支撑所有的客户端请求,所以在应用服务器之前会有负载均 衡服务器来把客户端请求发送给后台多个应用服务器。同时负载均衡服务器也可 以部署TLS 证书,HTTPS 的请求在负载均衡服务器上会被解密成原始HTTP 请求。 负载均衡服务器然后将HTTP 请求根据负载均衡策略发送给后台应用服务器。
5 应用服务器
后端开发人员的代码主要部署在应用服务器。应用服务器主要任务是接收HTTP 请求(Request),然后执行业务逻辑,返回对应的HTTP 回复(Response)。
应用服务器主要任务是执行业务逻辑,但是一般不保存数据。需要保存的数据一般保存在数据库。根据数据访问和存储特征,常用的数据库有内存数据库和传统关系型数据库。内存数据库(比如Redis)存取速度快,但是存储数据量小。关系型数据库(比如Postgres)存取速度慢,但是存储数据量大。
我们一般用内存数据库Redis 保存用户Session 数据,用Postgres 保存业务数据。