关于工具,前后端的思考
date
Aug 31, 2021
slug
Thinking-about-tools
status
Published
tags
迷思
type
Post
summary
如何摆正自己的位置
"前端, 后端?"
前端, 后端是什么?
前端后端只是一个代词, 站在用户的角度,运行在用户终端的就叫做前端,不运行在用户的终端里的就叫做后端
jsp
首先用户根据url请求,url有个路由的逻辑,路由是根据不同url运行不同的程序。
- 按照路由的功能分成两种路由: 文件路由和api路由
- api路由: 一般后端提供给前端的接口,就是url的形式,api路由主要是动态的操作:比如支付等
- 文件路由: 文件路由是静态的,就是根据url地址返回对应的文件流
jsp其实就是在路由这里动了手脚,做了一些动态操作
原理就是字符串匹配,字符串替换,jsp其实就是个html页面(模板),但是在html的基础上实现了个el表达式(将用户数据填进去html模板),就是说客户端请求文件的时候,不是直接把文件流读出来返回给客户端,而是做了一个字符串替换的工作。
为什么要有jsp这种技术
因为之前ajax技术不成熟,页面想渲染成动态的,所以就用到了模板语法,在服务端渲染,通过el表达式把html里的数据替换了,所以就有了动态的效果
- 以前流程是这样的,用户登录后,后端数据库有用户的信息,然后通过jsp把用户信息替换上
- 现在的流程是这样的, 这个文件路由就是静态的,不做动态模板替换了,静态文件返回给客户端,然后客户端调用js,通过ajax发请求,从请求接口里拿到数据,在前端渲染
前后端一体?分离?
服务端渲染的前提是什么? 就是文件路由和api路由是同一个进程提供的,而前后端分离就是文件路由和api路由是两个进程提供的
前后端分离的好处? 代码不耦合在一起,独立部署,独立运维
前端的任务: 从文件开发,编译,到文件打包(比如工具链build出一个文件)然后部署到文件路由的服务器上
后端:提供api路由的接口,主要是操作数据库的
!!!
不要把技术 ,工具按照前段后端来分,前段后端只是网络请求的一个身份(请求者和响应者)
node也可以做前段,比如node做用户端,桌面应用,请求java写的服务端程序
后端的服务也可以不操作数据库,也可以操作内存,硬件,什么的,比如打开我家空调,这些都是随意的
比如ajax发个请求,打开我家空调,这些都是可以的,只不过大部分后端都是操作数据库的,
nginx node tomcat 这些都是服务的提供者,至于他们想提供啥服务,都可以,所以,你不清楚他们的位置,他们就没位置!
他们(工具)想做什么都是自由,只不过每个工具都有擅长的,
node擅长非阻塞io,所有一些异步操作的服务用node写更方便,
nginx 就是删除静态文件的路由
这些工具都是启动http服务,至于什么服务,就看自己定义的