我的下一个web程序的架构

作为业余的,非生计驱动的程序员,总是难以抵制流行技术的诱惑。我在服务器一侧主要使用java,因为java在这一个领域有很多成熟的解决方案。对于nodejs,当我想写一个完整的应用时,总觉得缺少某些关键的解决方案,比如说用户认证授权方面(我没有深入研究),如果从头开始,又提不起兴趣。所以想用新的架构,引入自己感兴趣的技术。

架构图如下:

1、ua和nodejs之间是有session的,nodejs和backend之间是sessionless。

2、登陆通过nodejs转接,返回的principle包括用户的账号信息和加密的密码,保存在nodejs的session中。

3、用session中的信息完成后继的restful请求。

探讨部分:

1、为什么不同oauth?

由于使用场景仅仅是针对自己的服务架构,没有必要引入额外的第三方库,而且oath的使用场景也不是十分吻合。

2、后端需要做哪些基础服务?

每个从nodejs发出的请求都有Basic Authentication头,服务器一侧必须在filter的外围完成用户的登陆(每次请求都需要登陆),控制资源的访问。

3、为什么非要用nodejs?

我只对一个功能感兴趣,那就是无缝地在浏览器和服务器中运行同样的代码。产生的结果可以这样描述:

想象你有一个网站,比如oschina,当你打开首页(或者其它页面)的时候,页面是服务器生成的,但是当你开始交互的时候,它是一个单页app。

更精确的描述:对于任何一个url,当你直接访问的时候,它在服务器一侧生成;接下来由于交互产生的url变化是有js驱动的。

时间: 2024-11-01 11:58:28

我的下一个web程序的架构的相关文章

使用MyEclipse开发第一个Web程序

MyEclipse环境配置 首先,安装一个MyEclipse,然后进行一些相关的环境配置(Window->Preferences): 比如字体.Formatter等. 也可以从Eclipse中导出配置,然后在MyEclipse中导入. 这里需要特别注意的是两个配置: 1.JSP的打开方式: 选为用编辑器打开: Window->Preferences->General->File Associations 然后在右边窗口选jsp,下面选择MyEclipse JSP Editor,在右

[Ruby on Rails系列]3、初试Rails:使用Rails开发第一个Web程序

本系列前两部分已经介绍了如何配置Ruby on Rails开发环境,现在终于进入正题啦! Part1.开发前的准备 本次的主要任务是开发第一个Rails程序.需要特别指出的是,本次我选用了一个(PaaS开发平台),也就是Rails教程中介绍的Cloud 9平台,该平台已经自动为我们作好了环境配置的工作:只要你有一个浏览器就可以使用该云端开发环境.非常的方便快捷!简直赞!平台网址如下:https://c9.io/ Cloud 9开发平台的实质是为每一个注册的开发者在服务器端分配一个Linux虚拟机

服务器端编程心得(三)—— 一个服务器程序的架构介绍

本文将介绍我曾经做过的一个项目的服务器架构和服务器编程的一些重要细节. 一.程序运行环境 操作系统:centos 7.0 编译器:gcc/g++ 4.8.3     cmake 2.8.11 mysql数据库:5.5.47 项目代码管理工具:VS2013 二.程序结构 该程序总共有17个线程,其中分为9个数据库工作线程D和一个日志线程L,6个普通工作线程W,一个主线程M.(以下会用这些字母来代指这些线程) (一).数据库工作线程的用途 9个数据库工作线程在线程启动之初,与mysql建立连接,也就

第一个web程序(ServletRequest , ServletResponse)

一.ServletRequest 1.获取参数的方法(四种) > String getParameter(String name): 根据请求参数的名字, 返回参数值. 若请求参数有多个值(例如 checkbox), 该方法只能获取到第一个提交的值. > String[] getParameterValues(String name): 根据请求参数的名字, 返回请求参数对应的字符串数组. > Enumeration getParameterNames(): 返回参数名对应的 Enume

python第一个web程序

例一: import web urls= ('/(.*)','index') app= web.application(urls,globals()) class index: def GET(self, name): if not name: name = 'world' web.header('Content-Type','text/html; charset=UTF-8') return 'python web dgx' if __name__ == "__main__": ap

yii开发一个web程序的基本流程

1. 创建目录结构.在前面的章节Creating First Yii Application写的yiic工具可以帮助我们快速完成这步. 2. 配置 application.就是修改application配置文件.这步有可能会写一些application部件(例如:用户部件) 3. 每种类型的数据都创建一个 model 类来管理. 同样,yiic可以为我们需要的数据库表自动生成active record active record 类. 4. 每种类型的用户请求都创建一个 controller 类

Web程序的运行原理及流程(一)

自己做Web程序的开发也有两年多了 从最开始跟风学框架  到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来  我当时第一次做WEB项目看的书是struts2 + spring + hibernate 从入门到精通 迷迷糊糊的看完了  顺着步骤一步步搭建环境  也不知道花了多久才跑通  其实框架帮我做了很多事情 我自己那个时候都不知道 现在 我建议使用框架的同时 多注意框架到底帮你做了什么 这对一个web程序员的进阶非常重要 以后也会

Web程序的运行原理及流程(二)

其实WEB服务器和WEB应用服务器这两个概念特别容易混淆  可以理解为装了不同软件(服务)的两台计算机(服务器)吧 先对两个概念做一个简单介绍 了解了基本的概念 我们再用两个典型的例子做一下比较(建立在有WEB编程基础的前提下)Apache和Tomcat的区别 既然两种服务器都可以独当一面 为什么会有Apache+Tomcat这种模式 基本的理论都说的差不多 下面用一个具体的案例来介绍下  这里用php100上的一个简单留言板开发来介绍  非常简单 有兴趣的同学可以去看一看 http://vid

用Inno Setup制作WEB程序安装包

原文 用Inno Setup制作WEB程序安装包 最近做了一个WEB程序的安装包,我把制作的过程做个介绍,贴出源码给大家做个参考 看看inno 的脚本 [Setup] AppCopyright=test AppName=test AppVerName=test v2.0 SolidCompression=true OutputDir=OutputOutputBaseFilename=test_setup DefaultDirName={pf}\Lms DefaultGroupName=Lms ;