熟悉后端语言

动手

mac下配置Apache+PHP+MySQL环境

开启 Apache.png
index-php.png
进入MySQL.png

问答

1. 简单描述下 web 服务器、PHP、数据库、浏览器是如何实现动态网站的?

  1. 用户通过浏览器输入地址,浏览器首先向 DNS 服务器发出请求,DNS 服务器返回网站的实际 IP 地址。
  2. web 服务器时刻监控来自互联网的请求,根据请求返回相应的资源。
  3. 如果需要与服务器动态交互,就得用到脚本语言(例如:PHP)。通过服务器端获得的脚本语言具有访问服务器本地资源,数据库的权限,根据你请求的内容,脚本解析后返回给服务器,服务器再返回给你。
  4. 数据库主要用来动态存储数据,方便查找,插入,查询,删除等操作。
  5. 最后,浏览器将返回的资源解析,呈现出用户所看到的网页内容。

2. 常见的 WEB 服务器有哪些?

  1. Nginx,是一个网页服务器,它能反向代理 HTTP, HTTPS, SMTP, POP3, IMAP 的协议链接,以及一个负载均衡器和一个HTTP缓存。是一款面向性能设计的 HTTP 服务器,相较于Apache、lighttpd 具有占有内存少,稳定性高等优势。维基-Nginx
  2. Apache,是 Apache 软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性。被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的 API 扩充,将 Perl/Python 等解释器编译到服务器中。维基-Apache
  3. IIS(Internet Information Services),是由微软公司提供的基于运行 Microsoft Windows 的互联网基本服务。

3. 打开浏览器,在地址栏输入 http://jirengu.com 页面展现了饥人谷官网的信息,整个过程发生了什么?(饥人谷官网后台语言 php,web服务器 nginx,数据库 mysql)

  1. 通过域名,查找服务器的 IP 地址(DNS 解析)
  • 查找浏览器缓存(是否有缓存 DNS 记录),有的话,直接使用;
  • 查找系统本地的 host 文件是否有这个域名的映射关系
  • 查找路由器缓存;
  • 查找 ISP 缓存;
  • 从顶级域名服务器的根域名服务器查找。
  1. 浏览器得到 IP 地址后,打包 HTTP 请求
  2. 通过 TCP 协议与 ngnix 服务器创建连接(三次握手),然后浏览器向服务器发送请求
  3. ngnix 服务器接受 HTTP 请求,Web Server 进行相应的初步处理,使用服务器脚本( PHP )生成页面
  4. 服务器脚本(利用 Web Framework)调用本地和客户端传来的数据,生成页面
  5. Web Server 将生成的页面作为 HTTP 响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端
  6. 客户端(浏览器)接收到 HTTP 响应后(通常第一个请求得到的 HTTP 响应的 body 里是 HTML 代码),开始对 HTML 代码进行解析
  7. 解析过程中,如果需要引用服务器上的资源(额外的 CSS 、JS 代码、图片、音视频等),再向 Web Server 发送请求,Web Server 找到对应的资源再发送回来
  8. 具体解析渲染过程如下:
  • 解析 HTML 生成 DOM 树
  • 解析 CSS 生成 CSDOM 树
  • 组合 DOM 和 CSDOM 生成渲染树
  • 遇到 JavaScript 解析 JavaScript,阻塞后面的解析和渲染
  • 最后进行页面绘制

参考:

  1. 从输入URL到页面加载完成的过程-DNS解析域名过程
  2. Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容