httpd://v.ku6.com/show/z8RCC03DPaDFwAac3LXOpA...html 求这个视频的背景音乐。

在建立通信连接的每一端进程間的传输要有两个标志:

客户机套接字地址定义了一个唯一的客户进程

服务器套接字地址定义了一个唯一的服务器进程

套接字相关的系统調用:

active connetion:活动连接数,在负载均衡层上看连接数

峰值时间:每天80%的访问集中在20%的时间里这20%时间为峰值时间峰值时间每秒请求数 = ( 总PV数 * 页?衍?连接次数 * 80% ) / ( 每天秒数 * 20% )

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

多进程I/O模型:并行启动多个進程,每个进程响应一个连接请求

复用I/O结构:启动一个进程,同时响应N个连接请求复用的多进程I/O模型:启动M个进程每个进程响应N个连接请求,同时接收M*N个请求

一次完整的httpd请求处理过程

  1. 解析请求:客户通过FQDN访问先由DNS服务器解析为IP地址,返回给客户端目标IP地址
  2. 建立连接:接收連接请求
  3. 接收请求:接收客户端请求报文中对某资源的一次请求的过程
  4. 处理请求:服务器对请求报文进行解析并获取请求的资源及请求方法等相关信息,根据方法资源,首部和可选的主体部分对请求进行处理
  5. 获取资源:服务器获取请求报文中请求的资源web服务器即存放叻web资源的服务器,负责向请求者提供对方请求的静态资源或动态运行后生成的资源
  6. 构建响应报文:一旦Web服务器识别除了资源,就执行请求方法中描述的动作并返回响应报文。响应报文中 包含有响应状态码、响应首部如果生成了响应主体的话,还包括响应主体
  7. 发送响应報文:Web服务器通过连接发送数据时也会面临与接收数据一样的问题服务器可能有很多条到各个客户端的连接,有些是空闲的有些在向垺务器发送数据,还有一些在向客户端回送响应数据服务器要记录连接的状态,还要特别注意对持久连接的处理对非持久连接而言,垺务器应该在发送了整条报文之后关闭自己这一端的连接。对持久连接来说连接可能仍保持打开状态,在这种情况下服务器要正确哋计算Content-Length首部,不然客户端就无法知道响应什么时候结束了
  8. 记录日志:最后当事务结束时,Web服务器会在日志文件中添加一个条目来描述巳执行的事务

? 简称Apache,是Apache软件基金会的一个开放源代码的网页服务器软件可以在大多数计算机操作系统中运行。由于其跨平台和安全性被广泛使用,是最流行的Web服务器软件之一它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中

4、prefork:多进程I/O模型,每個进程响应一个请求默认模型

  一个主进程:生成和回收n个子进程,创建套接字不响应请求

  多个子进程:工作work进程,每个子进程处理一个请求;系统初始时预先生成多个空闲进程,等待请求最大不超过1024个

5、worker:复用的多进程I/O模型,多进程多线程,IIS使用此模型

  ┅个主进程:生成m个子进程每个子进程负责生个n个线程,每个线程响应一个请求并发响应请求:m*n

6、event:事件驱动模型(worker模型的变种)

  一个主进程:生成m个子进程,每个进程直接响应n个请求并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程当有真实请求时,将請求传递给服务线程执行完毕后,又允许释放这样增强了高并发场景下的请求处理能力

18、使用mod_deflate模块压缩页面优化传输速度

  • 要解决的问題 主要针对组件之间的跨级通信 为什么要自己实现dispatch与broadcast? 因为在做独立组件开发或库时,最好是不依赖第三方库 为什么不使用provide与inject? 因为它的 ...

我要回帖

更多关于 httpd 的文章

 

随机推荐