基于java和php的http协议处理方式对比
2019-08-16 10:29:13来源:博客园 阅读 ()
基于java和php的http协议处理方式对比
基于java和PHP对一个http请求进行处理的方式可以用下面这个简单的图示体现出来:
1.处理PHP程序的php-fpm服务接收到的是基于CGI(通用网关接口)的数据协议封装过的http数据,所以只要你精通CGI协议,理论上可以自己实现一个类似php-fpm的服务接收CGI数据,然后用自创的一门脚本语言去处理http数据。
2.tomcat是一个web服务容器,它可以像nginx一样监听一个IP和端口,接收http协议的数据。只不过它自身就拥有处理http协议数据的能力,而nginx只能转发给其他模块处理,nginx要不就通过ngx_http_proxy_module将http协议的数据进行转换,交给php-fpm这类的CGI代理服务器用PHP之类的脚本语言处理,要不就利用反向代理的方式直接将数据原样转发给tomcat去处理。由于tomcat可以直接处理http协议数据,所以它可以直接面向客户端,不过一般不会这样做。
3.php-fpm是基于c实现的服务,采用多进程的方式运行,每个http请求由单个进程处理。tomcat是基于java实现的,服务运行在jvm虚拟机内,服务运行采用多线程的方式,每个http请求由单个线程处理,tomcat对http请求的处理是将http的请求和返回数据进行封装后交给一个实现了servlet接口的类去处理,这里体现了java的面向接口编程的特点。
4.php-fpm在处理http请求时,最终会将PHP脚本交给zend引擎处理,这里在每个http请求处理的过程中都要执行一些PHP代码中的初始化逻辑,这是php性能优化的关键和难点所在。而tomcat服务在启动过程中会执行大量java代码的初始化逻辑(参考spring框架的依赖注入——DI),虽然服务启动时间较长,但是在处理请求的过程中省去了大量初始化的时间,处理时间就短了。
原文链接:https://www.cnblogs.com/imyhb/p/11197269.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash