apache服务器本质
2024-08-31 11:10:20
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的调用栈。
暂时写到这里,以后再继续分析。
最新文章
- SpringMVC介绍之Validation
- Unity5.x在WP8.1中无法使用Reflection API的解决方法
- 跟着鸟哥学Linux系列笔记0-如何解决问题
- MySQL存储引擎选型
- SQL Serve允许远程连接的解决方法
- Java异常分类
- 中文分词系列(一) 双数组Tire树(DART)详解
- 解决xcode7添加启动图片不显示
- 【转】eclipse内存设置,tomcat内存设置,查看内存大小
- 通过strace 监控 fdatasync
- 开发并调试 Mail Add-in
- 两个数组各个数相加或相乘变成一个矩阵求第K大
- python pip 安装模块步骤
- Python_对Excel表进行操作
- TCP聊天工具的实现
- CloudSim源代码学习——云数据中心(Datacenter)
- mongodb 配置文件
- 关于elk中filebeat定义好日志输出,但是redis里面却没有输出内容的问题
- 【Mac使用系列】Mac锁屏及快捷键
- 进阶之路(基础篇) - 021 arduino基础知识