LAMP架构中数据包的传递
当客户在浏览器输入网址后,首先进行DNS解析,当客户端取得网址所对应的IP地址后,浏览器将客户请求发送给服务器(apache),当apache接收到客户请求,会寻找客户请求的页面。如果页面是html文件,则将页面的代码传递给客户端,由客户端的浏览器进行翻译并显示出来。而如果客户端请求的页面是apache无法解释的文件,则apache在配置文件中搜寻解释该文件所需要的模块,请求该模块解释页面。
当用户请求是php文件时,apache通过配置文件获得解释php文件所需要的模块名称,此时apache发送请求要去php模块解释其页面,单php接受到该请求时,则执行其php页面中的php代码,将执行结果(html代码)反馈给apache,而apache则将反馈的结果返回给用户,由用户的浏览器翻译并显示给用户。
当php代码在执行的过程中,如果该php代码需要调用到数据库(mysql)中的数据,此时,php模块将会执行链接数据库命令(mysql_connect("SQLhostIP","username","passwd");),当数据库链接完成时,php的将自己的请求发送给mysql服务器,而mysql服务器执行该请求查询或修改数据库中的内容,当该查询或修改执行完毕之后,mysql将得到的查询结果或者修改完成情况反馈给php,php则相应的解释不同的php代码成为html代码,反馈给apache服务器。
这些都是我自己认为的,肯定会有一定的错误,而且语句组织的也很渣,大家将就这看看吧,不要当真啊,嘿嘿,错了我不管。
度娘了一张图片,大家可以参考一下,这个是一张LAMP的架构图,不过也能很好的解释LAMP中数据请求的关系了。
@度娘
PHP 应用程序通过请求的 URL、所有表单数据和已捕获的任意会话信息从客户机获得信息,从而确定应该执行什么操作。如有必要,服务器会从 MySQL 数据库(也在 Linux 上运行)获得信息,将这些信息与一些 Hypertext Markup Language(HTML)模板组合在一起,并将结果返回给客户机。当用户在应用程序中导航时,这个过程重复进行;当多个用户访问系统时,这个过程会并发进行。但是,数据流不是单向的,因为可以用来自用户的信息更新数据库,包括会话数据、统计数据(包括投票)和用户提交的内容(比如评论或站点更新)。除了动态元素之外,还有静态元素,比如图像、JavaScript 代码和层叠样式表(CSS)。
LAMP架构
LAMP架构既使用Linux+Apache+MySql+PHP/Python/Perl这些开源软件包组合搭建动态网站或者服务器。
Linux
Linux 是免费开源软件,这意味着源代码可用的操作系统。
Apache
Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。
MySQL
MySQL 是多线程、多用户的SQL数据库管理系统。
MySQL 已拥有由Oracle 公司自 2010 年 1 月 27 日通过SUN 购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。
PHP,Perl 或 Python
PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。
经典LAMP架构网站
System Server Storage Script
Yahoo FreeBSD + Linux Apache MySQL PHP
Facebook FreeBSD Apache MySQL + Memcached PHP
Wikimedia Linux Apache + Lighttpd MySQL + Memcached PHP
Flickr Redhat Linux Apache MySQL + Memcached PHP+ Perl
Sina FreeBSD + Solaris Apache + Nginx MySQL + Memcached PHP
YouTube Suse Linux Apache + Lighttpd MySQL Python
转载于:https://blog.51cto.com/smileliuyb/1102654