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的版本

                httpd-1.3:官方已经停止维护;
                httpd-2.0
                httpd-2.2
                httpd-2.4
                如果想知道详细的版本信息的话官方网站为:httpd.apache.org
            httpd的功能特性

                CGI:公共网关接口

                虚拟主机:ip,PORT,HOSTNAME

                反向代理

                负载均衡:bytraffic,bybussiness,byrequest

                路径别名

                丰富的用户认证机制

                    basic

                    digest

                支持第三方模块等等