服务器端编程:服务器/客户端入门的简单教程

时间:2012-01-23 09:20:02

标签: google-app-engine

我提前为开放式问题道歉。我试着搜索,但不确定具体要搜索什么,说实话......

简而言之,我是一名新手iPhone程序员,我已经制作了与Java服务器通信的应用程序。例如,我的iphone应用程序将使用HTTP Get或POST请求,并将接收返回数据。但是,我不是那个编写服务器端代码的人,而且坦率地说,不知道它是如何完成的!

我想至少学习双方如何做事的机制,所以现在我正在努力学习。我在Google App Engine上选了一本书,因为这似乎是一种经济的方式,以防我决定发布服务器/客户端应用程序。

但是,我认为我也可以选择RoR或PHP。我假设原则必须相同。

如果有人能指出我的教程显示服务器/客户端应用程序中发生的“另一面”,那将是非常感激的!另一方面,我的意思是,在客户端,我已经知道如何请求和接收数据。我只是不知道服务器端会发生什么......

谢谢你,并对一般性问题感到抱歉..

4 个答案:

答案 0 :(得分:3)

这些是Web应用程序最重要的组成部分:

  • http服务器:提供静态文件,作为动态内容的应用程序的管道。例如:apache,nginx。
  • 实际的Web应用程序:处理动态内容请求。通常你使用一个web框架。例如:django for python,symfony for php,RoR for Ruby,node.js for javascript。
  • 数据库服务器。例如:MySQL,PostgreSQL

可能会考虑的其他一些事情:

  • 发送电子邮件的邮件服务器
  • 图像处理库
  • 全文搜索引擎

这些组件不太常见:

  • 内存缓存服务器,例如:memcache
  • 非关系数据库,例如:redis,couchdb,riak,mongodb
  • 任务队列服务器:例如RabbitMQ

新手看起来似乎更容易,因为您不需要配置Web服务器或数据库。您只需编写应用程序代码。具有任务队列,内存缓存,数据存储,内容交付网络的完全托管主机已在appengine中可用。

appengine的问题在于它会对你造成很多限制。

如果您不需要内存缓存,任务队列和分布式系统,那么使用流行的框架开发应用程序非常容易,它们提供了如何设置自己的http服务器和数据库的教程。

如果您需要这些高级部件,那么配置所有部件将更加困难。

Web应用程序开发中的常见做法包括:

  • 使用ORM处理关系数据库
  • 使用MVC或类似模式构建代码
  • Html代码远离模板中的代码。因此使用了模板语言。

除了编写应用程序代码之外,作为Web后端开发人员,您还需要很好地理解您使用的数据库。

如果您只为移动应用程序构建后端,则不需要HTML,CSS,Javascript和模板。虽然MVC模式和ORM仍然适用。您还需要了解有关HTTP协议和实现HTTP API的各种方法的更多信息。如果你喜欢XML,那么WSDL做得很好。 WSDL有很棒的库,可以轻松编写HTTP API。

答案 1 :(得分:1)

Java中的基础API是Servlet API。阅读this tutorial

在这个API的基础上,存在无数的框架(Stripes,Spring MVC,Struts2,JSF,Wicket等),它们都有自己的理念。但是有两组框架:基于动作的框架(Stripes,Spring MVC,Struts2,...)和基于组件的框架(JSP,Wicket,......)。

基于动作的动作通常使用JSP作为视图技术(生成标记),但也支持其他技术。如果你学习JSP,你将学到的东西在各种框架中都会有用,所以我也会学习它。阅读this tutorial

答案 2 :(得分:0)

我认为,从app引擎开始可能不是服务器端开发的首选。

Asp.net(或php)将更有效率":不仅是学习和教程的来源,而且更好地犯错误和更好地学习

完成asp.net后,对你的服务器端项目有很好的实践, 它很容易并且非常快速地移动到app引擎

祝你好运

答案 3 :(得分:0)

我赞赏您选择从App Engine开始:

  1. GAE的一些概念很难,但SQL也是如此。如果你不知道,你可能只是从GAE开始,这是一个现代的noSql系统。
  2. GAE不适合所有问题。但我相信它非常适合您的设置:许多独立客户对重度查询的需求有限。
  3. 关于费用:如果您知道如何编程,GAE便宜。我有不同设置的EC2和GAE,虽然很难比较,但我相信GAE更便宜。
  4. 恕我直言,托管的大部分费用来自支持/管理费用。我们有一个团队10多名开发人员,但没有系统/数据库管理员。