wreqwrqw 发表于 2015-7-6 09:28:58

Apache httpd服务总结

1:Web服务器的操作

[*]建立请求:接收或拒绝客户端的请求

[*]接收请求:获取http请求报文

[*]处理请求:解析请求报文并做出响应

[*]访问资源:访问请求报文中的相应资源

[*]构建响应:建立http响应报文

[*]发送响应:向客户端发送相应报文

[*]日志记录:将事务记录进日志文件

2:HTTP(Hyper Text Transfer Protocol,超文本传输协议)
常用方法

[*]GET:用URL发送参数(名称 -值),从远程服务器获取超文本数据到本地(类似只读)

[*]HEAD:和GET一样,但只显示头部信息

[*]POST:通过表单提交数据到服务器,例如提交用户、密码、检索登陆页面等,已有资源的修改或新资源建立,请求参数封装在数据当中(安全性高于GET)

[*]PUT:上传内容到服务器,进行创建 /更新

[*]DELETE:从远程服务器上删除文件

[*]OPTIONS、TRACE、CONNECT

常见状态码

[*]1xx:纯信息

[*]2xx:正确信息

[*]3xx:重定向信息:资源位置移动

[*]4xx:客户端错误

403:服务端拒绝访问404:资源不存在

[*]5xx:服务端错误

报文格式

[*]请求报文

请求头:例(GET /index.html HTTP/2.4)
请求头部:格式(关键字:头部),例(HOST:www.boxin.com)
空行:回车或换行,通知服务器以下内容没有请求头了
请求数据:在POST方法中使用,常用的有Content-Type和Content-Length
<method> <URL> <http version>
<headers>


<body>



[*]响应报文

<version> <status> <reason-phrase>
<headers>


<body>
3:Httpd 服务器架构模型 MPM(Multi-Processing Modules)

多协议处理模块:定义了web服务器响应多个请求的模型,一个master进程生成多个子进程
进程和线程区别:进程作为系统分配资源的基本单位可产生多个线程,线程作为独立运行和调度的基本单位

[*]prefork模型:预先生成多个进程,一个进程响应一个请求,最多响应1024个请求

稳定,不同进程相互独立,但处理并发能力差,资源消耗大(大量的进程切换)

[*]worker模型:启动多个进程,一个进程通过启用多个线程,一个线程程响应一个请求

看似处理性能提高了,但多个线程共享进程资源,当多个线程进行写入时会有冲突,须解决加锁问题,根据实际是否使用worker模型

[*]event模型(apache2.4之后默认):一个进程响应多个请求,不是通过线程实现

4:Httpd 的特点

5:Httpd 相关文件



页: [1]
查看完整版本: Apache httpd服务总结