HTTP:Hypertext Transfer Protocol;
HTML:Hypertext Markup Language;
URL:Uniform Resource Locator,在Internet的WWW服务程序上用于指定信息位置的表示方法;
Scheme://Server:Port/path/to/resource;
http://www.mageedu.com/images/logo.jpg;
一次完整的http请求过程:
建立或处理连接 --> 接受请求 --> 处理请求 --> 访问资源 --> 构建响应报文 --> 发送响应报文 --> 记录日志;
http服务器程序:
httpd(apache);nginx;lighttpd;
http监听端口:80/tcp,https监听端口:443/tcp;
centos6支持安装httpd-2.2,centos7支持安装httpd-2.4;
特别配置:
1、持久连接
连接建立,每个资源获取完成后不会断开连接,而是等待其他请求,访问量较大的服务器,持久连接功能会使有些请求得不到响应;
折中方法,使用较短的毫秒级持久时间:
KeepAlive On|Off
MaxKeepAliveRequests #
KeepAliveTimeout #
2、站点访问控制
可基于两种类型的路径指明对哪些资源进行访问控制:
文件系统路径:
<Directory " ">
</Directory>
URL路径:
<Location " ">
</Location>
3、日志设定
错误日志:
ErrorLog logs/error_log
LogLevel warn(记录warn以上级别的日志)
访问日志:
CustomLog logs/access_log combined
LogFormat ...
4、基于用户访问控制
基于用户认证:
<Directory "/var/www/html/SOME"> //要登录进入的目录
Options None
AllowOverride None
Auth Type Basic
AuthName "STRING" //认证提示符
AuthUserFile "/PATH/TO/HTTPD_USER" //账号密码存放的目录
Require user username1 username2...
Require voild-user //允许文件中所有用户
</Directory>
设置账号密码存储:htpasswd命令
htpasswd -bm /etc/httpd/conf.d/.htuser username userpasswd
基于组认证:
<Directory "/var/www/html/admin">
Options None
AllowOverride None
AuthType Basic
AuthName "administrator private"
AuthUserFile "/etc/httpd/conf.d/.htpasswd"
AuthGroupFile "/etc/httpd/conf.d/.htgroup"
Require group webadmin
</Directory>
组文件中:每行定义一个组
webadmin:user1 user2 ...
5、虚拟主机
基于IP:
为每个虚拟主机准备至少一个ip地址;
基于port:
为每个虚拟主机准备至少一个专用port,实践中很少使用;
基于hostname:
注意:一般虚拟主机莫与中心主机混用,所以要是用虚拟主机,先禁用中心主机,注释DocumentRoot;
每个虚拟主机都专用配置:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
status:状态码,标记请求过程中发生的情况;
100-101:信息提示;
200-206:成功;
300-305:重定向;
400-415:客户端错误;
500-505:服务器端错误;
200:成功;OK
301:请求的URL指向的资源已经被删除,但响应报文中通过首部Location指明了资源现在所处的新位置,Moved Permanently;
302:与301相似,但在响应报文中指明临时新位置;Found
304:客户端发出条件式请求,但服务器上的资源未曾发生改变;Not Modified
401:需要输入账号密码认证;Unauthorized
403:请求被禁止;Forbidden
404:服务器无法找到客户端请求的资源;Not Found
500:服务器内部错误;Internal Server Error
502:代理服务器从后端服务器收到一条伪响应;Bad Getway