一道技术问题引起的遐想,最后得出结论技术的本质是多么的朴实!

核心提示昨天在不经意的浏览网页,突然收到了一个问题回答的邀请,看了这个问题我不仅思绪万千,其实亮点不在于这个问题,这个问题本身没没有什么特殊,而这个问题中的一些东西让我产生了一系列联想,这个问题是这么问的:“html5如何将表单数据提交到数据库表的

昨天无意中在浏览网页,突然收到一个回答问题的邀请。看完这个问题,我不仅有很多想法,而且亮点并不是这个问题。这个问题本身并没有什么特别的,这个问题中的一些东西让我产生了一系列的联想。这个问题问“html5如何向数据库表的指定空单元格提交表单数据?”。

如果看几年前的这个问题,html/js怎么操作数据库?这是从表单向数据库提交数据的过程,你的答案会是这个过程中有一系列的过程,比如通过表单form或者ajax向web服务器提交数据。如果是java,一般是jboss server或者tomcat之类的。如果是phpweb服务,一般是nginx或者apache服务器,然后web服务器收到请求响应后会交给特定语言进行分析。然后这些计算机语言对提交的字段做数据校验处理后,会将字段一一映射到数据库字段。

然后,计算机语言通过数据库提供的一些协议与数据库连接,比如jdbc协议、odbc协议等。连接后,通过数据库的操作将数据存储在数据库中,然后计算机语言将处理结果输出给web服务器,web服务器再将这些输出返回给客户端的html页面。到目前为止,已经实现了一个请求和对应的整个流程,这个流程中涉及的角色很多。如前端页面、前端js、http协议、web服务器、后端服务计算机语言、数据库协议等。,所以很多东西都实现了页面数据的一个请求交互。

虽然现在html5很先进,但毕竟是前端语言。如果用前端语言直接访问数据库,肯定是不安全的。前端js代码可以在客户端看到。谁会蠢到把数据库连接地址和账号密码暴露给客户端?如果把前端语言设计成直接连接数据库,我觉得设计者的思路一定有问题。也许你会反驳。我清楚的看到网上有一种用js连接数据库的方法。不信你看下图。

这段代码看起来确实像js连接到数据库,所以有几种可能性。第一,这个js不是你理解的js,而是一种后端语言。比如nodejs是后端js语言,所以连接数据库没有问题。这种情况不会暴露数据库地址。第二,这里的数据库不是我们传统的数据库,所以不存在安全问题。如果真的是前端js,可以连接数据库。也就是说没有后端开发。所有的业务逻辑都放在前端,然后用js写业务逻辑,用js连接数据库。那么,这类产品的安全性如何呢?代码不都是对公众公布的吗?虽然你可以把压缩和js混为一谈,但是你还是可以解压的,对吧?只是成本问题。

当然,话说回来,html5技术确实好了很多。他已经意识到了很多以前不可能意识到的事情。比如以前网站的验证码只是一张写着数字的图片,然后就可以阻止一些无良用户的暴力请求。然而html5技术诞生后,这些简单的图片验证码已经无法阻止。现在,你在网上市场上是看不到这个验证码的。现已改为手动滑动。或者按顺序点开汉字,或者找到各种同类型的验证码等等。这方面12306网站应该是第一家,或者有些网站直接用手机验证码作为验证码,主要是短信费的成本。

另外,市面上很多app不一定是原生app,也就是使用html5技术,而不是android技术或者ios技术。可见html5的出现,大大提升了技术领域的前端地位。此外,最近流行的小程序也是html5技术的一些打包,可见html5在未来会发挥越来越重要的作用。

即便如此,无论html5技术发展到哪里,有些方向性的问题是不会改变的。比如用前端语言直接访问数据库是不可能的,除非未来有非常强的加密技术无法破解,这种情况可能有一天会发生。另外,我想说,在计算机世界里用来看很酷的东西的技术很简单。只是计算机的快速运算和程序员的逻辑智慧让我们看到了这一切华丽的东西。比如我们看到的动画,一个白球在自由落体。你真的认为这个球在向下移动吗?其实程序实现的思路是先画一个背景图,然后在背景图上画一个白球,再画一个背景图盖住原来的球和背景,再在新的背景上画一个球,然后反复画。用户视野中看到的球在向下移动,其实是程序在一张一张地画图。这个不深刻。其实任何技术本质上都很简单。

以上图片均来自网络。大家好,我是“上辈子的一朵花”。有什么好的见解或看法,可以在评论区一展身手,互动交流。如果你想更了解我,那就关注我吧!

 
友情链接
鄂ICP备19019357号-22