1.CGI
CGI:Common Gateway Interface通用网关接口,这是一种独特的协议.他能帮助http处理应用程序,http本身不能执行应用程序,它仅仅只是把用户请求的资源识别是哪种类型然后返回给用户而已.比如我们登录一个网站,点击登录按钮后,http本身是不能处理这类请求的,他需要通过CGI的接口指向的目录去寻找对应的应用程序(比如:bash,python),而后应用程序执行完用户发送过来的请求,返回给用户.总的来说,CGI就是http跟应用程序的一个接口.CGI过于粗糙和简陋,他的很多执行权限都需要SUID等,所以现在很少用了,但是也需要了解他的工作机制.只有在配置文件ScriptAlias定义下的文件才能被当作CGI来执行,一个是mod_alias,是用来实现别名的,另一个mod_cgi是用来实现CGI协议的
2.虚拟主机
简单来说,虚拟主机就是一台物理服务器提供多个站点.注意:要使用虚拟主机,中心主机必须关闭.实现虚拟主机的方式主要有三种.
1:基于不同的IP实现不同的虚拟主机.(多个主机需要多个IP,代价太高)
2:基于不同的port实现不同的虚拟主机(http默认是80端口,使用不同的端口用户访问不方便).
3:基于不同的主机名实现的虚拟主机(实用).客户端发送的报文到服务器端,由服务器端的内核拆分下4层报文,再由httpd服务拆分请求首部,来识别请求的是哪台主机
3.https
http本身不具备加密的功能,对于需要传输密文的情况下就不适用了,他可以基于ssl/tls来实现加密.经常使用的是sslv3版本和tlsv1版本.https是一种二进制格式的协议,他监听在tcp的443端口,ssl只能基于ip来实现,因为他在http协议建立之前就建立了,所以如果你有多台虚拟主机,只能一台使用ssl
ssl会话的建立过程
首先tpc/ip三次握手建立连接
在tcp/ip连接的基础上开始做SSl的会话和协商
客户端请求
服务器发送证书
客户端验证证书
日期检测,是否在有效期内
证书颁发者的可信度
检测证书的签名是否可信
持有者的身份检测
交换协议版本号
选择双方都支持的加密方式
双方实现身份验证(通常服务器端不会验证客户端的身份)
实现密钥交换
客户端在SSL上发送HTTP请求
服务器端在SSL上发送已加密响应
关闭SSL
关闭三次握手
httpd基于mod_ssl模块实现对ssl的支持
这里我就不做证书签署了,不会的可以去看我的上一篇文章.
3.1首先安装mod_ssl,httpd的
3.2查看/etc/httpd/conf.dssl.conf
3.3配置好一切可以重启网页查看了

3.4把ca的证书导入到本地windows的主机,把ca的证书传到windows中,并改后缀为crt,双击即可
4.mod_deflate
压缩数据,对于一个访问量非常大的网站来说,有时候不得不用到压缩网页的技术来节约带宽,一般来说,只压缩静态文本类的文件,对于视频和图片类的不要进行压缩,因为视频和图片的压缩比太低了.那文本类的文档是否要压缩,也要看你主机的带宽和CPU的使用情况,如果带宽很充足,而CPU快跑不动了,那就不需要压缩,反之,CPU很充足,带宽不够,那还是压缩吧.httpd自带的一个mod_deflate工具,他会调用gzip等之类的工具对指定的内容进行压缩.
4.1首先判断你的httpd是否有安装该模块
httpd -M | grep deflate
4.2在配置文件中加入/etc/httpd/conf.d/deflate.cond,并输入如下内容
4.3重启httpd服务并查看网页是否有压缩
5.mod_status
httpd内置有一个status信息页面,且此信息可以通过web访问,显示httpd的属性信息,对于这种内生性的,没有文件系统路径的使用
<localtion[~]"">
</location>
如果某要配置其属性的URL能映射到某具体文件系统路径,建议使用
<Directory[~]"">
</Directory>
5-1.配置
/etc/httpd/conf
5-2.访问该页面看效果
5-3.用户认证
对于5-1的设定是不安全的,所以要添加用户认证
5-4.重新装载配置文件,然后查看效果
6.用户认证
6-1.创建密码