客户端、前端、后端、服务端的区别分别是什么?

客户端、前端、后端、服务端的区别分别是什么?,第1张

客户端是指开发面向客户的程序,分很多平台,比如Windows 安卓 苹果,还有游戏客户端也算一类。

前端指的是通过浏览器和用户交互的那部分。

后端是在服务器上跑的,一般是管理数据,为前端 客户端提供数据传输的。

服务器端就是后端

服务端各种安全机制,比如身份验证,这一条的情况在于,有的前端做身份验证就是调用一下接口,获取到类似token字段,自己也不知道是什么意思,就乱丢乱用等。

本质上来说,前端是做不了什么安全措施的,但是,相应的拦截和安全还是要做,因为可以帮后端挡掉很多低质量攻击以及前端自身的用户体验。

客户端是默认支持json的,后端是需要处理的。这点可以引申到,前后端各自传递的数据格式问题。有些前端 null undefined 空串分不清楚,到了后端就各种问题。

HTTP长连接

HTTP1.1协议具备的,TCP连接一直不断保持着,Connection:keep-alive头来验证是否支持。

Web交互方式

普通轮询:普通的前后端通信方式,请求中多半无用,可以使用HTTP长连接技术;可以使用AJAX(XMLHttpRequest类),也可以使用ifram方式请求;实时性差。

长轮询:对于有实时性要求的场景(其实在两次连接之间,还是会有实时性问题),客户端发送请求后,后端hold住,有数据时才返回,客户端收到后断开,再启用新的请求进行连接,通过这样的方式模拟服务端推送。节省了反复建立连接的开销,但是服务器端会一直while保持着连接消耗资源,服务器端需要设置好超时时间(set_time_limit),有数据时返回(flush&ob_flush)超时时间内如果没有数据返回,则需要跳出断开连接,以免死循环。这种模式被称为反向AJAX/Comet,由服务器端进行数据实时推送。问题是:服务端开销依然很大,每次通信都需要一次请求,HTTP请求头中带大量Cookie等信息,浪费带宽。IE不支持AJAX,因此需要iframe代替。

SSE(Server-Sent Evetns):HTML5的Comet方案。SSEAPI创造到服务器端的单向连接,服务端推送的模式,服务器响应的MINE必须是“text/event-stream”,用于服务器端给客户端实时传数据,只进行一次连接,则后续服务端可以一直传送数据。

数据流:在长轮询的基础上,收到数据后不要断开连接,继续接受服务端数据;由于数据流是不断的,所以需要客户端自己来处理解析数据和管理游标,增量处理获得的数据,增加了逻辑复杂度。

Websocket:替代长轮询方式,减少开销。

通信业务是前端。前端指客户端。就是用户使用的软件。后端指服务端。就是构建整套互联网服务的部分。后端相对于前端,更多的指后端技术,就是开发和优化服务端程序的技术。服务端就像基站,前端就像通信工具,后端就像通信服务。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/570042.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-03
下一篇2023-07-03

发表评论

登录后才能评论

评论列表(0条)

    保存