前言
前端的定义,通常是指软件与用户交互的gui层。软件的构成通常包含前端、后台(服务端)、数据库。在软件设计高内聚低耦合的思想,和设备类型和展现形式日益丰富的现在,软件的开发逐步走向模块化,也就是前后端分离。
前后端不分离状态的web开发
以我最开始学的Tomcat为例,前后端不分离时,后台不会单独提供http接口,而往往会包含一个Web-Content文件夹下的许多jsp页面,通过内部流转走向的形式,数据会存储在浏览器缓存数据和服务器数据库。没有单独的前端页面服务器。用户验证主要采用cookie和session两种方式。
cookie与session
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
而session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
前后端分离的web开发
前后端分离的开发形式是目前主要的开发形式,后端只负责提供http接口和数据处理以及数据存储,与前端服务器分开部署,前端则包罗万象,包括各种浏览器网页和各操作系统的原生应用开发和h5开发,比如Windows.net和windows.exe;Android.java/kotlin和android.webview;ios.swift/objective-c和ios.webview;各种小程序;以及各种h5框架;Uni-APP;ReactNative等等等等;目前浏览器网页主要是VUE和React;大陆主要采用VUE,国外主要是React;
前后端分离后带来的挑战就是,h5要类似于原生Android一样有自我生命周期管理和基于js的http访问能力和数据处理能力;当前主流的开发模式则是按照mvvm的响应式开发和观察者设计模式(这个大前端是类似的Android也是这样);
对了,前后端分离后的用户验证主要采用token方式,是一串加密字符,存贮在本地,每次http请求的时候在参数里加上后发送给后端验证,token丢失也就是各位使用app的时候的重新登陆;
对于前端同学,需要掌握基于VUE的:
- 前端的界面样式绘制(先学会原生html的DIV标签的千变万化,其他就都好上手)(vue的组件)
- 前端的动画
- 前端的页面管理,事件,生命周期之类的(VUE的框架)
- http使用以及json数据解析能力
- 数据处理能力,包含操作文件+操作sqlite
- 观察者模式的响应式布局开发,也就是MVVM;
- 最好把架构历史都了解一下,从 MVC > MVP > MVVM
后记
以上仅仅是我对整体软件架构的认识和了解;入门应该够用;当然,这一切的基础都是基于语言的熟练运用,信本同学加油哦!还有移动端等着你呢,之后还有原生和Flutter等等等等;当然,除了大前端,还可以走全栈,学后台,走向人生巅峰,哈哈哈