mvc框架和apache到底谁在查找查找test.php页面 [ 2.0 版本 ]
php的mvc框架中,比如在浏览器输入http://www.xxx.com/homePage/test ,homePage控制器里有个actionTest方法,方法里就一句渲染代码,渲染界面就是test.php
现在我就是想问下,输入url说白了就是去寻找test.php这个文件,框架里看到有这块根据路由寻找界面的代码,是不是说是框架在找test.php界面,但是apache呢,这个时候他充当什么角色,我在网上看到这些流程:
1.客户端浏览器向Apache服务器发送请求指定页面例如test.php
2.Apache服务器得到客户端请求后,查找test.php页面
上面又是说是Apache服务器在查找test.php页面
到底这框架和Apache服务器在这里如何分配工作的???
共 7 个回答
-
我觉得没必要在这里纠结,忘掉 Apache 即可。下面两个“周期”多看看或许就理解了。
- 应用生命周期图:http://www.yiiframework.com/doc-2.0/images/application-lifecycle.png
- 控制器生命周期:http://www.yiiframework.com/doc-2.0/guide-structure-controllers.html#controller-lifecycle
下面这段话也有助于理解:
When an application finishes handling a request, it generates a response object and sends it to the end user. The response object contains information such as the HTTP status code, HTTP headers and body. The ultimate goal of Web application development is essentially to build such response objects upon various requests.
http://www.yiiframework.com/doc-2.0/guide-runtime-responses.html
-
dingjj2010 回答于 2017-06-14 09:10 举报
说说我的理解,
1.首先apache类似一个中间件,一个服务,我们用浏览器直接访问php文件是没用的.想象一个从浏览器访问到服务器,通过域名(ip)访问到,那怎么才能执行php呢,就是Apache进程在监听80端口,所以你的访问才能进服务器,然后通过Apache的配置,调起php,执行对应php文件.
2.然后说下域名,http://www.xxx.com/homePage/test中http://www.xxx.com/是主域名,dns服务器把它解析成ip,就可以访问到对应的服务器了,默认80端口.然后根据配置,进入相同或者不同的目录(主目录),剩下的homePage/test就是参数了.参数怎么解析就看apache配置了.正常2种,1)按照目录形式 主目录下子目录层级找到对应php文件,然后解析.2)统一入口,从index.php开始执行,homePage/test当成参数传入,所以你看apache上有配置RewriteRule . index.php.一般框架都是使用统一入口.
所以,apache是根据域名+配置调起php执行php文件.至于找test.php,只是你怎么写而已,同一个域名,可以渲染test.php,也可以渲染aaa.php,看你怎么写咯.共 1 条回复@dingjj2010 就是说两者是相互合作执行代码
drodata 觉得很赞 -
是 框架。
理论上 请求
http://www.xxx.com/homePage/test
会被映射到你的配置/homePage/test
文件,但很显然你并不存在这个文件,于是此请求又被WEB服务器内部重定向到index.php
(请注意观察你的 apache 重写配置,例如 .htaccess)。此时这个请求因为在 框架 的地盘上(index.php),所以正式被 框架 接管,于是根据 框架 的规则,他会交给homePage
控制器 的test
方法,此方法又会调动test.php
视图以响应请求。这有关于网页的发展史,而这也是技术的一种,所以了解某种技术的历史有助于理解它及其相关的部分。
共 1 条回复 -
z1211884772 回答于 2017-06-20 15:31 举报
没理解,说的什么意思
xyf90314
最后登录:2023-03-13
在线时长:95小时23分
- 粉丝21
- 金钱5257
- 威望40
- 积分6607