总结web后端或web全栈开发的多种模式和技术

本文总结了web后端和全栈开发的多种模式,包括静态页面、动态页面的生成,以及主流的web容器如Apache Tomcat、Apache、IIS、Nginx。并介绍了基于Java Servlet、PHP等不同编程语言的开发部署模式,强调了CGI在动态服务器中的广泛应用。

对web的开发,一般最多会用到三样东西,前端(HTML+CSS+JS+JSON+XML),后端(动态生成代码如servlet或其他CGI程序),数据库(Mysql等)。


web程序的应用从原始到进化

静态页面

最基础、最初的网页就是静态页面,只需要前端即可。但它没有动态交互和动态的数据存储交互功能,当需求数据需要更改时,需要更改html文档中的数据或数据分离式文档的JSON或XML文件中的数据。
这种服务器只需要使用能够正常分发文档的HTTP服务器即可,能够在用户访问文档时提供文档,不存在时返回404,设置指定目录文档的访问权限等即可。

页面的动态生成能力(动态页面)

其次可以在静态文档的基础上进行动态生成文档内容,相当于用户在访问文档时,后台服务器即时动态生成这个文档,其中有些部分的HTML代码是固定的,但在需要动态输出内容处,就可以使用程序编程语言代码生成输出数据,这个数据是由后台服务器中的动态程序决定的,常见的这样的动态程序有java的servlet、各种CGI支持语言例如PHP-CGI、C-CGI、PERL-CGI、Python-CGI等这两种动态生成HTML代码方法。

然后在页面是动态技术的情况下,还可以继续增强,接入使用数据库,进行数据的永久层存储和读取。例如接到某个请求写入数据库数据,或接到访问请求来读取数据库中的数据从而以html文档的形式将数据返回给用户。

 


 

目前主流的web容器

总结一下,可支持动态页面的web容器有:

  • apache http server,
  • apache tomcat,
  • nginx(很小,只有几M),
  • IIS,
  • 以及其他业务与web容器集成为一体的web程序,如spring-boot框架写出来的程序。

除了都支持静态文档传输之外,它们的最大的共同点就是都支持CGI,因此说CGI是web动态服务器中应用很广泛的一个协议。

 



基于不同编程语言的设计开发部署模式

apache tomcat  +  Java servlet

开发tomcat的动态页面,使用Java对web程序的支持:servlet。我们在写一个web项目时,代码开发工作环境就是在eclipse下,众所周知,eclipse的代码功能很强大,开发JAVA以及其他语言用着很舒服。
我们在eclipse中创建一个web项目,然后编写每个前端资源文件(html之类的),这些前端文件可能不是eclipse的强项,可以不用eclipse写,但可以被eclipse管理到。然后编写基于servlet的动态部分,有servlet和jsp,一个servlet相当于是将用户的请求对接给servlet让servlet去处理然后返回给用户数据,类似于CGI的工作。jsp也是类似,但是jsp的方式更像是php、asp的动态代码嵌入,可以直接写html代码以示print输出,并且可以在该有动态代码的地方嵌入java动态代码,jsp也是继承servlet实现的,所以拥有servlet的所有属性。动态代码中可能会涉及到查询数据库等,目前大多数企业都只是对接了数据库,有些企业还对接了

HTTPclient,中间的过程可以随意由java代码对接。
在这项目的一切代码都写好了之后,就可以用eclipse的导出war功能,非常简单地将项目导出为.war项目包。一般将.war项目包直接丢进tomcat的webapps下,只要tomcat的配置中的自动部署功能开启着(默认开启的),过几秒钟这个war项目包就自动被tomcat给识别解析出来成一个目录了,这时候就可以访问了。
部署的方式也可以不导出war项目包,不使用tomcat的自动部署功能,而是手动地将项目文件部署到tomcat webapps下,这种方法以前试过可行,但总感觉不如自动部署的省心。
还可以直接使用eclipse的服务器管理器的操作界面,将一个项目部署到管理器下有的服务器上,不过这种方法一般只适用于开发者本机测试。

总结:总体这套web后端开发模式非常稳健。

  • Java配合tomcat开发servlet式的web动态页面程序,从开发环境到部署服务器都是一连套,官方稳定提供好的,很舒服,不用怕出异常、很省心。
  • Java的eclipse开发环境对开发者来说简直就像美梦一样好用。
  • Java语言的面向对象建模编程思想也很好用。

个人来说,对于开发web的编程语言,php和perl、python都差不了太多。它们编写出来的都是脚本,可以通过CGI嵌入到各式各样的web容器当中去。C\C++也支持可以编写CGI程序。

下面说到PHP的时候,就代表着还有和它同类的这些脚本语言,等同于PHP+perl+python+......等支持CGI的语言。

 

apache + PHP

这是世界上最为广泛的web动态程序的运行模式。这个想必大家都知道,就不做过多无用的解释。

但其中一点需要提到,就是apache嵌入php可以通过CGI(FastCgi),还可以通过模块的方式,一般人们都选用模块的方式嵌入PHP。至于两者之间的效率,这个没有做过实际比较,模块是通过链接dll的形式调用PHP的,而CGI是通过调用php-cgi.exe的形式调用PHP的。

还有你下载到的PHP本身自带提供对apache的支持:一些专门为apache设计的apacheXXX24.dl。从这就可以看出,apache与php两者厂商关系甚好,处于基友关系。

在开发上,只需要用舒适的代码编辑器去写php代码即可,写好了直接扔进去web容器里即可。

 

IIS、nginx + PHP

统统使用CGI的协议嵌入PHP。

IIS是微软windows系统下的web服务器,商用一般运行在WinServer上。是业界唯一具有图形化界面供管理的,并对微软windows其他功能支持较好。

nginx就类似于apache,通过CGI的形式来支持php。它的整个程序中所有文件数目不多,可执行主程序和配置文件都很少,官方的管理与操作方式、命令更是舒服的很,反正至少个人看了十分的舒服,舒服的一批。

在开发上,只需要用舒适的代码编辑器去写php代码即可,写好了直接扔进去web容器里即可。

 

 

这些都是我个人用过的web开发中使用的开发技术、编程语言和web容器。供大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值