为啥前端不能直接连接数据库,一定要通过后台

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥前端不能直接连接数据库,一定要通过后台相关的知识,希望对你有一定的参考价值。

为什么前端只能连接服务器,不能直接连接数据库,一定要通过后台,其实前端发送的也是json,后台只不过是接受数据,连接数据库并把接受到的数据存入数据库,为什么前端不能直接连接数据库并把数据存入数据库呢
数据库是需要用户名密码才能连接的,我以前看到过有个框架有接口直接连接后端数据库,需要会React,这个框架火过一段时间,但是我想不起来了,不知道有谁知道是什么框架

为了数据安全 前端页面可以改动 如果前端直接连数据库 那同行也得只需要修改页面上的sql语句就可以读取、修改数据库的全部信息
而后台作为执行程序,是会部署到服务器上运行,用户是获取不到的,这就增大了入侵的难度追问

我以前看到过有个框架有接口直接连接后端数据库,需要会React,这个框架火过一段时间,是什么框架

参考技术A 现在在前端获取后台数据的主流方式是使用Ajax异步载入0。前端页面通过Ajax向后台请求数据,后台在放回给前端页面如果你有前端js基础和后台动态页面基础的话只需要学习Ajax就可以,个把小时就能学会用了。初学的话你要先了解下B/S架构的原理,虽然简单,但是很重要,这个原理贯穿在整个动态网站的设计制作之中。具体学习的话你可以上W3school网站上学,上面相关的web设计制作资料都比较全,也浅显易懂。建议学习的顺序为html-》CSS-》javascript-》XML-》php(或asp或.Net)。追问

我以前看到过有个框架有接口直接连接后端数据库,需要会React,这个框架火过一段时间,是什么框架

参考技术B 如果前端可以的话,那是不是各种网站都可以链接你的数据库了,那安全性就保证不了了追问

我以前看到过有个框架有接口直接连接后端数据库,需要会React,这个框架火过一段时间,是什么框架

追答

这个还真不知道,你是说express

追问

express是nodejs后端的框架,像React
vue属于前端的,我说的是前端,是个接口还是框架忘了可以直接连接后端的数据库接口,刚出来火了一阵子,后来因为要会React才能用,对前端要求还是挺高的,就没人提起了。我是不知道什么地方看到过

追答

这个就没听过了,不过前端也有数据库的概念,如 indexdb

为啥不直接使用js与后台交互,而使用jsp等技术?

现在假如想做个网站,我们可能会使用asp,jsp与php,现在就说jsp,在html页面中加入java代码,从而实现与用户的动态交互功能.我想问的是,为什么不直接使用JavaScript与后台进行交互呢?而是只将js用于网页前端开发中.如果说JavaScript也可以和jsp一样,直接与后台交流,那不是省很多的事情吗?(听说后来有了个nodejs,是不是可以解决这个问题?)

前端与后台是两个不同的运行环境,所要面对和处理的问题是完全不同的,比如前端脚本主要是用来处理页面与浏览者之间的交互的,而后台脚本则是根据前端的要求读取数据库并返回数据给前端,如果一种程序语言既要兼顾前端又要兼顾后台,那么它必然会很臃肿,会影响运行效率。nodejs虽然使用的语法是JavaScript,但它本质上与前端的JavaScript还是不同的,它其实跟asp、jsp、php一样是运行在服务器的(浏览器查看源代码是看不到nodejs代码的),只不过语法是js而已。
退一万步讲,即使JavaScript能实现前后端统一,在实际应用中它仍然要分为泾渭分明的前端和后台两部分,服务器会首先执行后台部分的代码,然后把前端代码(包含html+css+前端js)发送给客户端浏览器,浏览器在渲染页面效果的同时解析执行前端js。这样的话,前后端都用js与前后端用不同的语言或系统又有什么本质区别呢?更何况实际开发中前端和后台是由不同的人(或团队)来进行的,这种情况下又怎么能强求两者的一致呢?
再一个就是安全问题,如果前端js可以直接操作后台,那么很多后台的秘密(不单单是密码)就会直接暴露在全世界所有人的眼皮下,这是一件很恐怖的事,堪比世界末日!追问

那为什么浏览器端语言要设置成能看见的呢

参考技术A 后台就是操作数据库,js也可以连接并操作数据库,但是因为密码是可以看见的,所以不能这么做,当然如果都是内部员工之类很信任的人使用,可以这么做,因为你是用js直接连数据库,所以真的使用的时候,你只要给用的人发一个html文件就可以了

以上是关于为啥前端不能直接连接数据库,一定要通过后台的主要内容,如果未能解决你的问题,请参考以下文章

echarts怎么连mysql

能不能用Excel做前端,连接和访问后台的SQLS

用unity3d制作网络游戏,客户端直接连接MYSQL还是通过其他方法

为啥后台线程用不了flask_sqlalchemy

招新系统(jsp+servlet,实现简略前端网页注册登录+后台增删改查,分学生和管理员,Java语言,mysql数据库连接,tomcat服务器)

Mysql 命令行连接