apache服务器本质

简介: apache服务器本质上说是一个TCP socket服务,socket模型如下: 下面以worker MPM来说明apache代码中相应处理的位置在哪里:(以apache httpd 2.2.23版本的代码为基础)1) 在第一次启动时验证配置没有异常时,创建了socket。

apache服务器本质上说是一个TCP socket服务,socket模型如下:

 

下面以worker MPM来说明apache代码中相应处理的位置在哪里:

(以apache httpd 2.2.23版本的代码为基础)

1) 在第一次启动时验证配置没有异常时,创建了socket。

 

 

2) open_logs 挂钩调用了 ap_setup_listeners() ,最终在listen.c的make_socket方法执行了apr_socket_bind/apr_socket_listen,进入通信的环节。

 

 

3) worker.c的监听线程中负责接受请求,然后利用ap_queue_push把相应的请求放入队列中。下面是接受请求accept_func的调用栈。

 

4)请求/响应的处理。

请求的处理是通过handler来实现,如果是读取服务器上的静态页面,则由default_handler来处理。同时响应的内容需要通过filter修改之后,最终发送header和body。下面是发送header的调用栈。

 

暂时写到这里,以后再继续分析。

目录
相关文章
|
2月前
|
监控 Apache
Apache 工作模式的区别及优化
【8月更文挑战第22天】Apache 工作模式的区别及优化
52 0
|
5月前
|
SQL Java 数据库连接
apache DbUtils 组件核心原理与应用
DbUtils 的设计思想是简化 JDBC 编程,通过封装 JDBC 操作,减少样板代码,提高开发效率。它通过 QueryRunner、ResultSetHandler 和 RowProcessor 的协同工作,实现了对 JDBC 资源的精细化管理,同时避免了资源泄漏的风险。DbUtils 的使用不涉及复杂的配置和ORM映射,适合需要快速、轻量级数据库操作的场景。
|
XML Apache 数据格式
apache的生命周期是什么?底层原理是什么?
apache的生命周期是什么?底层原理是什么?
119 0
|
缓存 分布式计算 Hadoop
Spark 原理_运行过程_概念介绍 | 学习笔记
快速学习 Spark 原理_运行过程_概念介绍
121 0
Spark 原理_运行过程_概念介绍 | 学习笔记
|
前端开发 JavaScript Apache
模拟 Apache 服务器|学习笔记
快速学习模拟 Apache 服务器
116 0
模拟 Apache 服务器|学习笔记
|
Apache PHP
1.3 Apache工作原理:
1.3 Apache工作原理:
95 0
|
监控 NoSQL 安全
基于Apache组件,分析对象池原理
本文从对象池的一个简单案例切入,主要分析common-pool2组件关于:池、工厂、配置、对象管理几个角色的源码逻辑,并且参考其在Redis中的实践。
216 0
基于Apache组件,分析对象池原理
|
机器学习/深度学习 SQL 分布式计算
Apache Spark有哪些局限性
Apache Spark是行业中流行和广泛使用的大数据工具之一。Apache Spark已成为业界的热门话题,并且如今非常流行。但工业正在转移朝向apache flink。
Apache Spark有哪些局限性
|
Apache 网络协议

推荐镜像

更多