http协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 –百度百科
http工作于应用层,监听在TCP的80端口上,用来传输超文本(由HTML语言开发出来的文本)的一种协议。
http事务
当用户在浏览器中输入一个URL(统一资源定位符),http协议会将请求报文通过特定的语法格式封装成请求首部,该请求首部中包含了请求方法、请求地址、http协议版本以及请求头部。由于是请求报文,所以是不包含请求内容的
一次完整的http事务涉及到域名解析,TCP协议的三次握手,http协议的请求首部以及服务器响应首部格式、状态码等相关知识,这里不在这里过多阐述。以后会另起篇幅详细的描述一下完整的http事务
httpd
http是协议,httpd就是基于这种协议工作的程序,一种服务。httpd是当今世界上最流行的web服务,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用。而且,httpd服务支持众多模块,拥有众多功能。
httpd的特性
- 高度模块化:httpd是由一个核心加上众多模块组成,不同的模块拥有不同的功能,用户可以根据自己的需要装载所需要的模块
- 支持DSO:Dynamic Shared Object,动态装/卸载模块。不用停止正在运行的httpd服务即可直接装/卸载模块
- MPM机制:Multipath Processing Modules,多路处理模块,实现了多种不同的I/O模型机制
MPM有三种机制:多进程模型(prefork),多线程模型(worker),事件驱动模型(event)
prefork模型:与进程池相似。主进程会生成一定数量的进程,每个子进程也被称之为工作进程,每个进程响应一个请求
worker模型:主进程生成子进程,每个进程生成多个线程,一个线程响应一个请求
event模型:一个线程响应多个请求
httpd的安装(以CentOS 6为例)
[root@ling ~]#yum install httpd -y
配置文件
[root@ling ~]#rpm -qc httpd
主配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf 该目录下所有以.conf结尾的文件。
此文件是为主配置文件提供额外的配置片段。当一个程序的配置文件过大的时候往往就会将其切割成多个片段进行维护
httpd的配置文件没有安装在/etc/httpd目录下,而是将主配置文件放在/etc/httpd/conf目录下,是因为它将/etc/httpd目录作为程序的安装目录,也就是程序运行的根目录服务脚本:/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd //默认使用的是prefork
/usr/sbin/httpd.event
/usr/sbin/httpd.worker日志文件目录:
/var/log/httpd
access_log: 访问日志
error_log: 错误日志站点文档目录:/var/www/html
httpd的常用配置
打开主配置文件,在对httpd程序进行设置。以下所有的配置都是在主配置文件中进行的。
[root@ling ~]#vim /etc/httpd/conf/httpd.conf
(1) 持久连接
KeepAlive Off
MaxKeepAliveRequests 100 最大连接数
KeepAliveTimeout 15 超时时长