http协议全面讲解
接受请求的模型:
并发访问响应模型:
单进程I/O模型:启动一个进程处理用户请求;这意味着,一次只能处理一个请求,多个请求被串行响应
多进程I/O结构:由父进程并行启动多个子进程,每个子进程响应一个请求
复用的I/O结构:一个进程响应n个请求
多线程模式:一个进程产生n个线程,一个线程处理一个请求 --单进程所创建的高效并行工作线程数量有限
事件驱动(event-driven):一个进程直接处理n个请求 --是当前较新的并发模型
复用的多进程I/O结构:启动多个(m)个进程,每个进程生成(n)个线程
响应的请求数量:m*n
http服务程序:
httpd(apache)
nginx
lighttpd
应用程序服务器
IIS①:.Net
tomacat: .jsp
www.netcraft.com 数据挖掘站点 统计各web站点使用web程序
httpd的安装和使用:
ASF:apache software foundation②
httpd: apache
a patchy server = apache
httpd
httpd的特性:
高度模块化:core+modules
DSO③:dynamic shared object
MPM:Multipath processing Modules(多路处理模块) 同时响应多个用户请求
prefork:多进程模型,每个进程响应一个请求;--二级结构
一个主进程:负责生成子进程及回收子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
n个子进程:每个子进程处理一个请求
工作模型:会预先生成几个空闲进程,随时等待用于响应用户请求;最大空闲和最小空闲进程数量,超出最大空闲的进程会被销毁
worker:多进程多线程模型,每线程处理一个用户请求;--三级结构
一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
多个子进程:每个子进程负责生成多个线程
每个线程:负责响应用户请求
并发响应数量:m*n
m:子进程数量
n:每个子进程所能创建的最大线程数量
event:事件驱动模型,多进程模型,每个进程响应多个请求;--二级结构
一个主进程:负责生成子进程;负责创建套接字;负责接收请求,并将其派发给某子进程进行处理;
子进程:基于事件驱动机制直接响应多个请求;
httpd-2.2:仍为测试使用模型
httpd-2.4:event可生产环境中使用;
httpd的功能特性:
CGI④:Common Gateway Interface
虚拟主机:IP,PORT,FQDN
反向代理
负载均衡
路径别名
丰富的用户认证机制
basic
digest
支持第三方模块
......
安装httpd:
rpm包:CentOS发行版中直接提供
编译安装:定制新功能,或其他原因
CentOS6:httpd-2.2
程序环境:
配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysocnfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
CentOS7:httpd-2.4
程序环境:
配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模块相关配置文件:/etc/httpd/conf.modules.d/*.conf
systemd unit file:
/usr/lib/systemd/system/httpd.service
主程序文件:
/usr/sbin/httpd
httpd-2.4支持MPM的动态切换
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
服务器控制:
systemctl enable | disable httpd.service
systemctl {start|status|stop|restart} httpd.service
注:
①是windows server自带的web服务器
②两大开源组织FSF(自由软件基金会)和ASF(apache软件基金会) httpd属于ASF
③DSO动态共享对象
④CGI通用网关接口 --支持动态网站技术的接口