前后端分离
在开发的时候,前端用前端的服务器,后端用后端的服务器,当开发前端内容的时候,可以把前端的请求通过前端服务器发给后端(称为反向代理)。这样就能实时观察结果,并且不需要知道后端怎么实现,而只需要知道接口提供的功能,两边的开发人员就可以同步开发。
前后端分离的优点:
- 项目的分工更加明确了
- 实现了前后端的解耦
- 可以将前端和后端部署到不同的服务器上来减轻服务器的压力
- 前后端代码在不同的服务器上,可以提高安全性
项目开发的方式:
- 产品经历/领导/客户提出需求
- UI做出设计图
- 前后端约定接口&数据&参数
- 前后端并行开发(无强依赖,可前后端并行开发,如果需求变更,只要接口&参数不变,就不用两边都修改代码,开发效率高)
- 前后端集成
- 前端页面调整
- 集成成功
- 交付
请求方式:
- 浏览器发送请求
- 直接到达html页面(前端控制路由与渲染页面,整个项目开发的权重前移)
- html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据,json数据格式因为简洁高效而取代xml)
- 填充html,展现动态效果,在页面上进行解析并操作DOM
好文推荐:什么是前后端分离
正向代理和反向代理
正向代理
指是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
步骤:
- 用户发送请求到自己对应的代理服务器
- 代理服务器发送请求到服务器
- 服务器响应请求,将数据返回到对应代理服务器
- 代理服务器把数据返回给用户
特点:
- 代理服务器代理客户,同原始服务器做通信
- 一个局域网内的所有用户可能被一台服务器做了正向代理,由该台服务器负责 HTTP 请求;
反向代理
指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
步骤:
- 用户发送请求到服务器
- 反向代理服务器发送请求到真正的服务器
- 真正服务器返回数据给反向代理服务器
- 反向代理服务器将数据返回给用户
特点:
- 代理服务器,原始服务器对客户端不可见
- 意味着用户和负载均衡服务器直接通信,即用户解析服务器域名时得到的是负载均衡服务器的 IP ;
共同点
- 代理服务器作为服务器和客户端的中间层
- 加强内网安全性
- 代理服务器可以做缓存,提高访问速度
区别
- 正向代理代理客户端,反向代理代理服务器
- 正向代理,服务器不知道客户端;反向代理,客户端不知道服务器
- 正向代理主要是用来解决访问限制问题;而反向代理则是提供负载均衡、安全防护等作用。