设为首页 收藏本站
查看: 974|回复: 0

[经验分享] Apache HTTP连接处理流程

[复制链接]

尚未签到

发表于 2017-1-3 06:44:11 | 显示全部楼层 |阅读模式
Apache HTTP连接处理流程
  总结帖:
  首先更新虚拟主机信息,利用process_connection挂钩函数处理。
1. 请求读取 ap_read_request
  报文解析,HTTP_PROTOCOL
  HTTP请求头:"GET index.html HTTP/1.1"
  HTTP请求域:"Accept:*/*"
  HTTP请求体:数据
  请求信息保存在request_rec中,在请求处理过程中一直存在。
  读取报文的处理也在这个地方做,输入处理过滤器。比如说文件分隔符(Windows "/", Unix "\")。
2. 请求处理 ap_process_request
(1):请求解析
  ①URL字符转义
  浏览器会对地址栏输入的特殊字符进行转化,例如空格转换成%20,因此服务器需要将字符转换回去。处理函数是:ap_unescape_url()。
  ②从URL中剔除/../和/./字符
  确保路径成为绝对路径。处理函数是ap_getparents()。
  ③首次读取URL相关配置信息
  从配置系统中查找与该URL相关联的配置信息,为后续的用户权限验证,权限控制做准备。处理函数是ap_location_walk()。
  ④URL名称转换 translate_name
  指令Alias:将URL映射到另外一个特定的URL。mod_writer -- URL重写。
  ⑤map to storage
  确定指定的资源在磁盘上是否存在。
  ⑥二次读取URL相关配置信息
  URL名称转换和映射后,读取改新URL的相关联的配置信息。
  ⑦head parser
  检查HTTP请求头。
(2):安全处理
  ①access_checker
  对客户的访问做基础性的检查限制工作。比如根据IP地址,访问时间。模块是mod_access。
  ②check_user_id
  检查用户的身份权限(用户名和密码)。
  ③auth_checker
  检查用户是否具有访问该资源的权限。
(3):请求准备
  ①type_checker
  确认客户请求的资源类型。mod_mime。
  ②fixups
  补丁修复。可选处理过程。在内容生成以前的最后一步处理操作。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-322897-1-1.html 上篇帖子: Apache Pivot 线程模型 下篇帖子: Apache main函数执行流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表