1.定义: http: hypertext transport protocol
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方 式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应 用。
2.http协议的版本:
http/0.9: 1991,仅用于传输html文档
http/1.0: 支持多媒体数据的处理,keep-alive(保持连接),有缓存功能
http/1.1: 更多的请求方法,更精细的缓存控制,持久连接
MIME: Multipurpose Internet Mail Extension 多功能邮件扩展
base64: 将二进制数据编码成文本发送,并能够让接收方还原回原来的格式;
major/minor 主类型/子类型 用来说明资源类型
3. HTTP请求:request
HTTP请求报文
报文格式:
第一行:<method> <request-URL> <version> (方法,资源,版本)
第二行:<headers> (请求头)
两行后:<entity-body> (请求主体)
4. HTTP响应:response
HTTP响应报文
报文格式:
<version> <status> <reason-phrase> (版本,状态吗,原因短语)
<headers> (请求头)
<entity-body> (响应主体)
<method>: 请求方法, 希望服务器端执行的动作,如GET、HEAD、POST等
<request-url>: 请求的资源,可以是相对路径,也是完整的URL
<version>:协议版本,格式HTTP/<major>.<minor>,如http/1.0
<headers>:HTTP首部
<status>: 状态码
<reason-phrase>:原因短语,数字状态码易读信息
<entity-body>: 主体部分
5. HTTP状态码:
1xx: 信息性状态码
2xx:成功状态码
200: OK
201: Created,接受并保存
3xx:重定向状态码
301:Moved Permanently, 永久重定向。在响应报文中使用首部“Location: URL”指定资源现在所处的位置;
302:Found,临时重定向,本资源有,但暂时不在本地。在响应报文中使用首部“Location: URL”指定临时资源位置;
304:Not Modified,没修改这个资源,就可以使用缓存了。条件式请求中使用;
4xx:客户端类的错误 ,例如服务器端资源不存在
403:Forbidden,请求被服务器拒绝,原因可能是没有权限
404:Not Found,服务器无法找到请求的URL
405:Method Not Allowed,不允许使用此方法请求相应的URL
5xx:服务器类的错误
500:Internal Server Error,服务器内部错误;如服务器端脚本无权限执行
502:Bad Gateway,代理服务器从上游收到了一条伪响应;
503:Service Unavailable,服务器此时无法提供服务,但将来可能可用;
6.MPM: Multipath Processing Module,多道处理模块,非一个模块,而是对一种特性的称谓
prefork:
一个进程一个请求,预先forck好多个,prefork是基于事件分离器来工作的,而select的文件数最大不能超过1024个,也就是说prefork最多能处理1024个进程
worker:
一个进程多个线程,一个线程一个请求
event:
一个线程响应多个请求。event是基于事件驱动(event-driven)的,主要目的在于实现单线程响应多个请求;
7. 虚拟主机
一个物理服务器提供多个站点; 使用虚拟主机得先取消中心主机
Web: Socket(IP, port)
基于不同的IP实现不同的虚拟主机
变化IP
基于不同的port实现不同的虚拟主机
变化port
基于不同的FQDN实现不同的虚拟主机
变化ServerName的值
NameVirtualHost *:80
<virtualhost IP:port>
ServerName
DocumentRoot ""
<Directory "">
Options
</Directory>
ServerAlias
ServerAdmin
</virtualhost>
虚拟主机的单独配置:
用户认证
访问日志
错误日志
别名
脚本别名
9 服务器status页面
内生的status信息,且此信息可以通过web预以显示
配置文件系统路径访问属性
<Directory [~] "">
</Directory>
<File [~] "">
</File>
配置URL访问属性
<Location [~] "">
</Location>
<LocationMatch "">
</LocationMatch>
如果某要配置其属性的URL能映射到某具体文件系统路径,建议使用<Directory>;
处理器:是当文件被调用时,Apache内部表示形式;一般每种文件类型都有其隐式处理器;
显式的定义使用的处理器 SetHandler
<Location /URL>
SetHandler server-status
</Location>
定义访问控制机制
基于IP控制
基于用户控制
示例:
<Location /server-status>
SetHandler server-status
AuthType Basic
AuthName "Server Status"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user
Order deny,allow
Allow from all
</Location>