Apache面试题

1.HTTP的四个版本

  • 0.9版本:仅支持HTML文本页面;
  • 1.0版本:引入了MIME机制、keep-alive机制、支持页面缓存功能;
  • 1.1版本:1.0的版本升级,支持更多的请求连接方式、优化了持久连接、优化了页面缓存;
  • 2.0版本:提供了http语义优化,增加了spdy技术;
    目前比较常用的1.0版本和1.1版本。

2.常见的网页类型

  • 静态页面:由开发人员事先编写完成,存放在本地文件系统中、响应速度快、页面维护比较麻烦、数据交互性差、容易被搜索引擎收录;
  • 动态页面:WEB服务器本身并不处理请求,而是把请求转交给后端的解释器。页面数据多变、维护简单、响应速度慢,不能被搜索引擎收录;
  • 伪静态页面:将动态页面转换为静态页面,可以被搜索引擎收录;

3.有关HTTP协议的报文

  • 请求报文:请求行+请求首部+空白行+请求实体
    客户端→服务端
  • 响应报文:起始行+响应首部+空白行+响应实体
    服务端→客户端

常见的状态码:
正常的情况:200访问成功、201上传成功、301永久重定向、302临时重定向、304资源在转发过程中没有被修改;
不正常的情况:401网页认证失败、403权限被拒绝、404资源未找到、503服务不可用

4.Apache是什么

apache http服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上,其属于应用服务器,apache支持模块多,性能稳定,apache本身是静态解析,适合静态HTML、图片等,可以通过扩展脚本、模块等支持动态页面等

5.Apache的特性

1.支持最新的HTTP/1.1通信协议;
2.拥有简单而强有力的基于文件的配置过程;
3.支持通用网关接口;
4.支持基于基于IP和域名的虚拟主机;
5.支持多种方式的HTTP认证;
6.集成Perl处理模块;
7.集成代理服务器模块;
8.支持实时监视服务器状态和定制服务器日志;
9.支持服务器端指令(SSI);
10.支持安全Socket层(SSL);
11.提供用户会话过程的跟踪;
12.支持FastCGI;
13.通过第三方模块可以支持JavaServlets;

6.Apache、Nginx、Tomcat的区别:

Apache:支持模块较多、采用servlet处理模型、同步阻塞模型、工作模式多变、运行稳定;
Nginx:轻量级服务器、支持的模块少,需要第三方模块支持、采用epoll处理模型、异步非阻塞型、适合高并发的场景;
Tomcat:主要用于解析JAVA原因所编写的网页、程序;

查看Apache的工作模式:httpd -V 或 apachectl -V
查看Apache所加载的模块:httpd -M 或 apachectl -M

7.Apache的工作模式:

  • prefork(预派生子进程):一个子进程对应一个线程,默认开启5个子进程,消耗系统资源比较多,并发量低,工作效率高;
  • worker(多进程+多线程):支持并发连接大,能够充分利用系统资源,对持久连接释放速度比较慢,默认开启3个子进程;
  • event(多进程+多线程+epoll处理模型):结合prefork和work工作模型,优化了持久连接释放速度慢的配置,对https支持不太友好;

8.进程和线程的区别:

进程是指进程内的一个执行单元,也是进程内的可调度实体;
每个线程都有对应的进程,每个进程下可以有多个线程,但是最少有一个线程,每个线程共享其父进程地址空间,不能共享其他进程的地址空间

线程是处理调度器的基本单元,但是进程不是,二者均可并发执行

一个程序至少有一个进程,一个进程至少有一个线程

9.可以从那些方面对Apache进行优化

  • 根据实际情况选择Apache的工作模式;
  • 开启Apache的Gzip(deflate)功能;
  • 对Apache进行缓存设置;
  • 禁止对Apache目录遍历;
  • 隐藏Apache版本信息;
  • 对Apache日志进行分割;
  • 配置Apache防盗链;

10.Apache常用的模块

1.SSO Module - LemonLDAP
LemonLdap 是 Apache 的一个实现了 Web SSO(单点登录) 的模块,可处理超过 20 万的用户;
2.并发限制模块 - limitipconn
limitipconn 是一个 Apache 的模块,用来限制每个 IP 的并发连接数;
3.日志监控模块
Apache Live Log 是一个 Perl 编写的模块,可以在浏览器上直接实时的通过 Ajax 技术浏览和监控 Apache 的 日志文件;
4.负载均衡模块
定义了每个请求的HTTP重定向在一个异构的Apache服务器群集;
5.图像处理模块
mod_gfx 是一个对图像进行即时处理的 Apache 模块,提供很多灵活的接口;
6.压缩模块
mod-gzip-disk 是一个使用磁盘进行存储预压缩页面的 Apache 模块,与 mod-gzip 不同的是不需要每次请求的时候重新压缩;
7.音乐模块
mod_musicindex 是一个 Apache 用来处理音频文件的模块;
8.LDAP 认证模块
mod_psldap 是 Apache 用来执行 LDAP 认证和授权的模块;
9.带宽限制模块
mod_cband是一个用来限制请求占用带宽的Apache模块;
10.CGI V8 引擎包
v8cgi 是一个很小的 C ++ 和 JS 文件集合,允许开发者在服务器端使用 JS 的模块;

猜你喜欢

转载自blog.51cto.com/14157628/2453047