好吧,首先我是一个竞争的服务器noob。 所以我很抱歉,如果我用我的无知使你不高兴。
我目前已经build立了一个linode,并安装了MySQL和apache。 现在,我试图学习如何使用REST从我的iPhone应用程序通信到服务器。
我希望应用程序向服务器发送一组坐标,并让服务器对其数据进行search,并返回其他附近坐标的列表。 我也想尽可能less地使用带宽。
我听说GET是做这件事的好方法,但是我也听说外部信息很容易读取信息(比如坐标)。 安全性是一个问题,我希望所有发送到服务器或从服务器接收的信息都是私有的。 我应该使用POST来达到这个目的吗? 有没有更好的办法? 我可以使用JSON发送请求吗(带宽使用较less)?
REST是一个很好的途径吗? 我所看到的很多教程似乎只是获取或操纵数据表,而幕后并没有太多的服务器逻辑。 是SOAP还是别的更好?
目前我还不清楚这一点,而我的google-fu让我慢了一点,所以任何信息都是非常有帮助的。
GET和POST都不能通过HTTP安全,如果安全性很重要,你应该考虑获得一个SSL证书,即使是一个自签名的证书也可以 – 告诉你的客户端(我猜这是某种手机/平板电脑?)信任证书。
REST可能是一个很好的方法,因为它给你一个很好的简单的标准。 目前您可能只有一个端点,但如果您使用REST构build,则随着应用程序的增长,您可以轻松添加更多。 REST是一个标准,而不是一个协议。 这意味着,REST API应该符合这些标准;
请注意,GET和POST都可以为服务器上的应用程序提供额外的参数,但在GET的情况下,通常只用于过滤查询,而使用POST则可以提供有关要logging的更改的详细信息。
关于JSON问题,通常JSON将使用更多的带宽(只有一点点),但是更容易处理。
例如,以下是可能的API响应的纯文本版本;
-25.90962,161.08639 -4.11525,-91.31969 -13.76025,147.22927
但是这里有一个JSON响应
{ coordinates:[ { lat: -25.90962, long: 161.08639 } { lat: -4.11525, long: -91.31.969 } { lat: -13.76025, long: 147.22927 } ] }
JSON的例子是易于机器可读,而纯文本将不得不被parsing。 请记住像JSON这样的文件types,您可以使用GZIP压缩来显着减less需要传输的数据。
注意:当你进入它的细节时,POST应该只创build新的资源,而PUT只应该改变现有的资源。