一次完整的http请求

时间:2021-01-25 04:30:06

一次完整的http请求处理过程:

   * (1) 建立或处理连接:接收请求或拒绝请求
* (2) 接收请求:
接收来自于网络的请求报文中对某资源的一次请求的过程;
**并发访问响应模型(Web I/O)**:
1. 单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;
2. 多进程I/O结构:并行启动多个进程,每个进程响应一个请求;
3. 复用I/O结构:一个进程响应n个请求;
* 多线程模型:一个进程生成N个线程,每个线程响应一个用户请求;
* 事件驱动:event-driven
4. 复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;


* (3) 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

元数据:请求报文首部
<method> <URL> <VERSION>
Host: www.magedu.com 请求的主机名称
Connection:

* (4) 访问资源:获取请求报文中请求的资源

web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源;这些资源放置于本地文件系统某路径下,此路径通常称为DocRoot

/var/www/html/
images/1.jpg

http://www.magedu.com/images/1.jpg

web服务器资源路径映射方式:
(a) docroot
(b) alias
(c) 虚拟主机docroot
(d) 用户家目录docroot

* (5) 构建响应报文

资源的MIME类型:
显式分类
魔法分类
协商分类

URL重定向:
web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;

* (6) 发送响应报文


* (7) 记录日志