httpd学习:http基础(续)

简介:
  • 一次完整的http请求处理过程:

(1) 建立或处理连接:接收请求或拒绝请求

(2) 接收请求:

接收来自于网络的请求报文中对某资源的一次请求的过程;

并发访问响应模型(Web I/O):

单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应;

多进程I/O结构:并行启动多个进程,每个进程响应一个请求;

复用I/O结构:一个进程响应n个请求;

多线程模型:一个进程生成N个线程,每个线程响应一个用户请求;

事件驱动:event-driven

复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;

(3) 处理请求:对请求报文进行解析,并获取请求的资源及请求方法等相关信息

元数据:请求报文首部

(4) 访问资源:获取请求报文中请求的资源

web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源;这些资源放置于本地文件系统某路径下,此路径通常称为DocRoot

/var/www/html/

web服务器资源路径映射方式:

(a) docroot

(b) alias

(c) 虚拟主机docroot

(d) 用户家目录docroot

(5) 构建响应报文

资源的MIME类型:

显式分类

魔法分类

协商分类

URL重定向:

web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;

(6) 发送响应报文

(7) 记录日志

  • http服务器程序:

httpd (apache)

nginx

lighttpd

应用程序服务器:

IIS

tomcat, jetty, jboss, resin

webshpere, weblogic, oc4j

  • httpd的安装配置和使用:

httpd: apache

a  patchy server = apache

ASF: apache software foundation

  • httpd的特性:

高度模块化:core + modules

DSO: Dynamic Shared Object

MPM:Multipath Processing Modules

prefork:多进程模型,每个进程响应一个请求;

一个主进程:负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求;即便没有用户请求,也会预先生成多个空闲进程,随时等待请求到达;最大不会超过1024个;

worker:多线程模型,每个线程响应一个请求;

一个主进程:生成多个子进程,每个子进程负责生个多个线程,每个线程响应一个请求;

m进程,n线程:m*n                                        

event:事件驱动模型,每个线程响应n个请求;

一个主进程:生成m个子进程,每个进程直接n个请求;

m*n

httpd-2.2: event为测试使用

httpd-.24:event可生产使用

  • httpd的功能特性:

虚拟主机

IP、Port、FQDN

CGI:Common Gateway Interface,通用网关接口;

反向代理

负载均衡

路径别名

丰富的用户认证机制

basic

digest

支持第三方模块

安装httpd:

rpm包

源码编译安装



      本文转自echoroot 51CTO博客,原文链接:http://blog.51cto.com/echoroot/1948003,如需转载请自行联系原作者




相关文章
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
27 0
|
3月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
29 0
|
6月前
|
应用服务中间件 网络安全 nginx
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
Nginx学习研究-Nginx 安装 SSL 配置 HTTPS
254 0
|
3月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
25 0
|
27天前
|
Shell Linux 网络安全
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 httpd命令 使用指南
29 0
|
3月前
|
缓存 前端开发
HTTP协议学习
HTTP协议学习
15 0
node中的fs模块和http模块的学习
node中的fs模块和http模块的学习
|
4月前
|
缓存 Android开发 数据安全/隐私保护
android开发,使用kotlin学习HTTP访问网络
android开发,使用kotlin学习HTTP访问网络
68 0
|
4月前
|
缓存 安全 前端开发
【HTTP学习】
【HTTP学习】
|
6月前
Gin 学习之 HTTP 请求方法
Gin 学习之 HTTP 请求方法
46 0