我想使用MySQL在Android上制作应用程序。是否有必要为应用程序开发使用基于HTTP的客户端/服务器通信?
我是新来的,所以我第一次看到很多其他的应用程序设计。我发现一件事是,如果他们必须使用数据库,他们经常使用RESTful设计,为客户端/服务器端通信定义一些HTTP协议的API。然后,有很多事情要做,比如:将资源映射到url,发送/接收doGet,doPost,..请求。
但我不明白。这是一个应用程序开发,而不是Web开发。为什么他们必须像网络一样制作应用程序?如果我不想使用phoneGap,HTML5,那种基于HTML的开发,我想写一个本地应用程序。我仍然希望在我的代码中分离客户端和服务器端,我的服务器端可以与MySQL通信,并且我的客户端将其显示给用户,并且它们全部用java编写。因为他们都是java,所以我有一个本地的想法:
“为什么我不直接从我的客户端调用我的服务器端代码?”
由于它全部在应用程序上运行,因此没有必要将其映射到用户访问的url中。但正如我所观察到的,大多数人不这样做。所以我想知道他们为什么不按我想的方式制作他们的应用程序?是否涉及安全?还是为了减少调试难度?还是为了以后扩展到其他平台如iOS?
我想知道他们为什么选择基于HTTP的客户端/服务器通信。
HTTP更安全。如果您直接使用MySQL,攻击者可以轻松确定如何访问您的数据库,然后按照他们的意愿进行操作。通过在中间包含一个Web应用程序,您可以过滤允许的操作以保持数据库的安全和有效。 – mah
如果您选择SQLite,您可以在本地拥有数据库,并且不执行任何http调用。我相信Android没有对MySQL的本地支持,因此http是一种常见的传输方式。 –