我们在浏览器地址栏输入地址回车以后:
-
浏览器发送 Http请求 到服务器.
-
服务器上有一个叫做 Web容器 (提供Http服务)的应用程序, 用来接这个请求, 这个 Web容器通常是 Nginx (或者Apache IIS).
-
如果请求的是一个静态的资源(就是服务器上直接存在的文件), 一般Web容器就可以直接读取文件内容, 然后响应给浏览器了.
-
如果请求的数据是要动态计算的, 这时候就需要在服务器进行编程来实现. 具体如何实现呢?
-
我们让Nginx把请求转发给用某种语言写的应用程序, 让这个程序去做具体业务的处理. 这个程序用的语言就是 PHP (当然也可以是JAVA .NET)
-
PHP接到请求后, 就开始运行我们编写的PHP程序啦. 处理过程中时候, 可能需要还读取一些数据. 这些数据存放的地方就是 MySQL (也可以是其他数据库啦). 存储方面还有 Redis / MongoDB 等等, 这个之后用到再说吧.
-
处理完以后, PHP把结果(可能是某个动态生成的网页)给到Nginx, Nginx再响应回去, 给到浏览器. 这个 Http响应 的响应体(body)里, 放的就是个 HTML 页面. (HTML暂且先理解成一个记事本写的内容, 不同的是里面支持各种语法, 通过语法显示出比记事本更丰富的效果)
-
浏览器会解析这个HTML做渲染, 解析的同时, 发现 HTML 里可能有含很多的外链资源链接, 于是他一边解析一边发送对于这些资源的请求. 这些资源可能是 图片 / JS (Javascript) / CSS (层叠样式表) 等.
-
CSS我们理解他是网页的皮肤.
-
JS是运行在浏览器里的编程语言, JS一旦被请求回来了, 浏览器就会执行他. 他可以控制网页里的各个元素, 还可以自己去发Http请求, 让网页具有各种功能.
网友评论