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通用网关接口 --支持动态网站技术的接口

posted @ 2019-04-25 15:59  tianchengde  阅读(141)  评论(0编辑  收藏  举报