Apache网络配置与虚拟主机搭建全解析
1. HTTP/1.1基础特性
HTTP/1.1相较于HTTP/1.0有一些重要的特性变化。
1.1 主机头请求
HTTP/1.1要求客户端请求中包含主机头,即使为空也需要有。例如:
GET /~e8926506/siberia.htm HTTP/1.1 Host: stud1.tuwien.ac.at1.2 分块传输
HTTP/1.1在将数据返回给请求的客户端时会进行分块处理。根据HTTP/1.1的RFC,分块传输意味着将消息体修改为一系列的块进行传输,每个块都有自己的大小指示,后面还可以跟一个包含实体头字段的可选尾部。
分块传输出现的原因是为了解决服务器需要知道响应大小的问题。当使用HTTP/1.1的持久连接时,Web服务器必须知道返回给客户端响应的Content - Length。但由于CGI等生成的动态内容,页面的Content - Length变得可变且事先无法确定。分块传输的工作方式是服务器获取动态输出的一小部分,确定其长度后发送给客户端,然后再获取更多内容。
此外,服务器发送完分块编码的文档后,还可以选择发送额外的响应头,这些头可以和内容一样是动态的。
2. Apache多主机托管方式
Apache有三种在单台机器上托管多个网站的方式:
- 运行多个httpd守护进程实例。
- 使用Apache的基于IP的虚拟主机。
- 使用Apache的基于名称的虚拟主机。
这三种方法可以任意组合使用,但会受到操作系统的限制。