为什么前端代码会被设计成允许用户在浏览器中看到而客户端代码却不能

前端不是故意愿意给客户端看到代码,而是技术原因不得已而为之,前端依靠客户端浏览器解析html,js,css才能呈现界面,实现功能交互,现在一些前端代码敏感的网站,会对js进行混淆加密,但是作用不太大,有心抄代码实现逻辑的还能能解出来的而客户端程序,一般是经过编译后的可执行文件,不需要源码,但是通过一些反编译软件反编译后也是大概看到程序的实现逻辑的
参考:
评论都是吃瓜的吗[捂脸] 很简单,客户端开发用的是oc、java这些都是静态语言是要编译的。
javascript是动态语言,是运行时解析。
所以运行时可以看到javascript的源码,java看不到源码。

参考:
你能看到的,大部分都只是与界面布局有关的,真正的需要保密的东西一般不开放的
参考:
浏览器里运行的代码大部分是显示层的,关键逻辑都在服务端,浏览器里的代码公开也无所谓。
如果需要保护,加密也行。
客户端程序可能会执行关键逻辑,考虑到性能和授权,会编译成机器码(C#没加密过可以用ILSpy反编译)。
除非是开源项目,一般是看不到源代码的。
出现这种差异主要原因是两者的商业模式不同。
WEB浏览器商业模式一般靠广告,关键逻辑在服务端,客户端代码没有保密的价值,可以损失一定的执行效率来保证灵活性。
客户端一般是卖授权,授权就要防破解之类的,自然就不能泄露源代码。

参考:
因为是静态的,所以暴露都没所谓,而且浏览器需要渲染。
当然因为渲染而暴露代码这个理由有些牵强,因为浏览器完全可以内部处理而不让人看到,所以重点还是因为静态内容暴露也没所谓,而且暴露有好处就是方便开发。
而后台蕴含大量的用户数据为了安全肯定是不能公开的,对于商业软件而言即使后台代码被曝光了也是件很严重的问题
参考:
不太明白你的意思,客户端就是前端
参考:
还不是浏览器的锅。
浏览器只能识别html,css和js。
发别的不认呀。
浏览器对于这些又没有任何保护措施。
你让前端怎么办呢?
难道自己写一个浏览器?
补充,浏览器也可以运行ocx,比如大名鼎鼎的flash。
你看不到flash的源码吧。
(还可以通过虚拟器运行Java)但是ocx的缺点太多,浏览器对ocx的兼容性又不好。
比如有一段时间,谷歌浏览器就是不兼容flash。
总之,别赖前端,都是浏览器的事。

参考:
网页的前端代码也并不是全部都是公开的,也有一些脚本啊,是加密的。
嗯,网页的前端之所以让用户可以看,主要是因为一些重要的功能都是放在服务端运行的,想要前头页面展示出相关的内容,你就必须获取到相应的权限,而这个权限的获取是要依靠服务端的,所以呢,即便你看到了前端的一些代码,你也无法获取到其他人的信息。
而应用程序的客户端呢,因为有很多重要的功能,已经放在客户端上来做了,尤其一些比较有特色功能的APP。
所以呢,他要对客户端做一些加密,避免自己独创的一些功能被其他模仿者简单的就抄走了。

参考:
了解历史的都知道这事主要怪微软,阻挠浏览器标准制定,本来有希望浏览器即操作系统,大型游戏也有希望跨平台,但是影响了Windows的利益没有通过
参考:
刚看到这个问题非常困惑,不知道楼主要表达什么?
仔细琢磨了一下,前端代码你应该指的h5,js之流,客户端指的c#等写的exe程序。
也许这样说会好点,前端代码即h5,它叫超文本标记语言,是由浏览器来解析执行的,所以在浏览器后台可见。
客户端为提高多平台兼容以及运行效率,会先编译成一个中间码,也就是你看到的exe,这个中间码主要是由计算机来执行的,不会考虑人的可读性。

标签