任务23 熟悉后端语言-简答

2016-11-21  本文已影响0人  GarenWang

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

FF)P2Z3Q7516CJZ@ZHRAKU9.png
  1. 用户本机中的host文件中查找,若找不到就会继续向上一级的DNS(域名服务器)寻找相应的DNS服务器,将网站的主机域名解析为操作系统中对应的IP地址,如http://www.baidu.com/对应的IP地址为14.215.177.37
  2. 通过http协议链接到IP地址对应的web服务器系统,通过默认的80端口请求web服务器上的对应目录下的html文件,一般80端口为计算机默认的本地端口,输入URL(资源定位符)不用输入端口
  3. web服务器收到用户的访问请求后,在它管理的目录中找到对应的html文件,并将内容响应给浏览器
  4. 浏览器收到web服务器的响应后,接收和下载传输过来的html代码,并进行解析,生成DOM树和渲染树,最终将页面呈现出来
  1. web服务器自己不能处理php的动态脚本语言,于是寻找相应的PHP应用服务器处理,并将请求访问的php文件交给php应用服务器
  2. PHP应用服务器接收php文件(如index.php),打开并解释php文件,最终翻译成html静态代码,再将html静态代码交还给web服务器,web服务器将接收到的html静态代码输出到浏览器
  3. 与上面访问html静态页面相同,浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来
  1. 该步与上面访问php文件一样,通过DNS服务器解析出相应的Web服务器的IP地址
  2. 与上面访问php文件一样,请求访问web服务器上相应目录下的php文件
  3. 与上面访问php文件一样,PHP应用服务器接收Apache服务器的委托,收到相应的php文件
  4. PHP应用服务器打开php文件,在php文件中通过对数据库连接的代码来连接本机或者网络上其他机器上的MySQL数据库,并在php程序中通过执行标准的SQL查询语句来获取数据库中的数据,再通过PHP应用服务器将数据生成html静态代码
  5. 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来

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

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

1.png

-浏览器将请求发给Nginx,Nginx响应之后根据用户需求,通过PHP应用处理程序进行处理,若设计到用户登录及数据的增删改查,PHP会与数据库MySQL进行交互,最后服务器会返回一个静态的html文档

2.png 3.png
  1. 解析下载的HTML代码,生成DOM树
  2. 解析html代码中的CSS文件,结合dom树进行css渲染
  3. 解析dom树的每个节点的几何结构,把节点绘制到屏幕上
    4.解析js文件,解析完成后执行,一般放在页面的最后
  4. 最后把遇到的关联资源内图片、音频、视频进行并行下载,一般而言同一域名并行下载的数量有限,通常把图片、音频、视频等较大的资源放在不同的域名下,但缺陷是用户体验不好
  1. 301 (SC_MOVED_PERMANENTLY)状态是指所请求的文档在别的地方;文档新的URL会在定位响应头信息中给出。浏览器会自动连接到新的URL。
  2. 400 (SC_BAD_REQUEST)指出客户端请求中的语法错误
  3. 401 (SC_UNAUTHORIZED)表示客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面。这个响应必须包含一个WWW-Authenticate的授权信息头,限制访问Web页
  4. 403 (SC_FORBIDDEN)的意思是除非拥有授权否则服务器拒绝提供所请求的资源。这个状态经常会由于服务器上的损坏文件或目录许可而引起。
  5. 404 (SC_NOT_FOUND)状态每个网络程序员可能都遇到过,他告诉客户端所给的地址无法找到任何资源。它是表示“没有所访问页面”的标准方式。这个状态码是常用的响应并且在HttpServletResponse类中有专门的方法实现它:sendError("message")。相对于setStatus使用sendError得好处是:服务器会自动生成一个错误页来显示错误信息。
  6. 405 (SC_METHOD_NOT_ALLOWED)指出请求方法(GET, POST, HEAD, PUT, DELETE, 等)对某些特定的资源不允许使用。
  7. 406 (SC_NOT_ACCEPTABLE)表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致。
  8. 500 (SC_INTERNAL_SERVER_ERROR) 是常用的“服务器错误”状态。该状态经常由CGI程序引起也可能(但愿不会如此!)由无法正常运行的或返回头信息格式不正确的servlet引起
  9. 502 (SC_BAD_GATEWAY)被用于充当代理或网关的服务器;该状态指出接收服务器接收到远端服务器的错误响应
  10. 状态码503 (SC_SERVICE_UNAVAILABLE)表示服务器由于在维护或已经超载而无法响应
上一篇 下一篇

猜你喜欢

热点阅读