静态请求和动态请求

静态请求
简单的来说就是html页面的请求。
在这里插入图片描述
具体的请求历程:

  • 用户访问一个.html的文件
  • 服务器端接收到请求,该请求到达服务器的内核空间,因为tcp/ip协议工作在内核空间;到达内核空间后,发现访问的是80端口的套接字,通过路由和相关解码,请求被转到服务器的用户空间,也就是转到了web服务上;
  • 请求到达用户空间后,发现请求的是一个文件,然后继续把请求转到内核空间,内核空间通过内核在磁盘上获取对应文件;
  • 请求在内核空间获取到对应文件后,把文件返回至用户空间即web服务;
  • 请求结果到达用户空间的web服务上后,把结果再通过套接字回到内核空间;
  • 内核空间把结果通过网络tcp/ip协议栈返回至客户端。

动态请求
简单来说是.php、.net、.jsp等请求
在这里插入图片描述

  • 用户发起访问http://www.abc.com/index.php
  • 服务器端接收到请求,该请求到达服务器的内核空间,因为tcp/ip协议工作在内核空间;到达内核空间后,发现访问的是80端口的套接字,通过路由和相关解码,请求被转到服务器的用户空间,也就是转到了web服务上;
  • 请求到达用户空间后,发现请求的是一个动态页面,然后根据相关协议调用php解释器程序;
  • 请求到达php解释器中,把请求转至内核空间从磁盘上获取对应文件;
  • 获取到文件后,请求到达用户空间的解释器中执行一遍;
  • 解释器把执行结果返回至web服务上,然后解释器进程自行销毁;
  • 请求结果到达用户空间的web服务上后,把结果再通过套接字回到内核空间;
  • 内核空间把结果通过网络tcp/ip协议栈返回至客户端。