HTTP协议(HyperText Transfer Protocol,超文本传输协议)
是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。
HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议,在internet上的web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输索要访问的超文本信息.
客户机在浏览器输入所要访问的网址,网址统称为URL,用于描述某服务器某特定资源的位置.格式为:
协议://主机名称或地址,在主机名称[:port]
port端口:
http默认端口为80端口,默认端口是可以省略的,如果服务器端更改了监听端口时才需在客户端上手动指定端口.
http请求处理的过程:
1.建立或处理链接:接收请求或拒绝请求.
2.接受请求
接收请求的方式通常是并发响应模型:
单进程I/O模型:串行响应;
多进程I/O模型:同时启动多个进程,每个进程响应一个请求;
复用的I/O模型:一个进程响应多个请求;
多线程模型:一个进程生成多个线程,每个线程响应一个请求;
事件驱动:一个进程直接响应多个请求;
复用的多进程I/O结构:启动m个进程,每个进程生个n个线程,每个线程响应一个请求;
3.处理请求
长链接
短连接
4.构建响应报文
5.发送响应报文
6.记录日志信息
httpd的特性
模块化
支持动态的装载和卸载(DSO)
多路处理模块(MPM)有三种经典模块
prefork:一个主进程,多个子进程;工作模式:一个进程响应一个请求;
主进程:管理子进程;创建套接字;接收用户请求,并派发给某子进程处理;...
子进程:处理请求,响应请求;
worker:多进程多线程模型;一个线程响应一个请求;
主进程:管理子进程;创建套接字;接收用户请求,并派发给某子进程处理;...
子进程:负责管理线程;
线程:处理并响应请求;
event:事件驱动模型,多进程模型,每个进程响应多个请求;
主进程:管理子进程;创建套接字;接收用户请求,并派发给某子进程处理;...
子进程:处理并响应请求;
httpd-2.2:event为测试模型;
在CentOS 6中使用:MPM不支持DSO机制;
httpd-2.4:production ready;
在CentOS 7中使用:支持DSO机制;
httpd的版本
CGI:公共网关接口
虚拟主机:ip,PORT,HOSTNAME
反向代理
负载均衡:bytraffic,bybussiness,byrequest
路径别名
丰富的用户认证机制
basic
digest
支持第三方模块等等