HTTP:超文本传输协议
超文本(能够在文本之间实现跳转)
web:
http/0.9:纯文本(超链接)
HTML
浏览器
URI:统一资源标识符,全局范围
URL: 统一资源定位符,互联网上,
portocol://HOST:port/path/to/file
http/1.0:方法 GET PUT POST DELETE
引入MIME:多功能多用途互联网邮件扩展
将非文本数据在传输前重新编码文本格式,接收方能用相反的方式
将其重新还原为原来的格式,还能用相应的程序来打开此文件
动态网页:服务器端存储的文档非HTML,而是编程语言开发的脚本,
脚本接受参数之后在服务器运行一次,运行完成之后会生成HTML的
文档,把生成的文档发给客户端;
web--->portocol--->php(运行index.php)
执行脚本根web服务器无关
HTTP报文:请求报文,响应报文
请求报文语法:
<method><requess-URL><version>
<headera>
<entity-body>
响应报文语法:
<version><status>状态代码( <reason-phrase>进一步解释状态代码
1xx:纯信息
2xx:"成功"的信息<200>
3xx:重定向信息<301,302,304>
4xx:客户端错误信息<404>
5xx:服务器错误信息)
<headera>
<entity-body>
上面两个报文的第一行称作报文“起始行”,后面的标签格式的内容称作
首部域,每个首部域都由名称和值组成,中间逗号分隔,另外,响应报文
通常还有一个称作Body的信息主体,即响应给客户端的内容
web服务器的主要操作
1.建立连接--接受或拒绝客户端的连接请求
2.接受请求--通过网络读取HTTP请求报文
3.处理请求--解析请求报文并作出相应的动作
4.访问资源--访问请求报文中相关的资源
5.构建响应--使用正确的首部生成HTTP响应报文
6.发送响应--向客户端发送生成的响应报文
7.记录日志--当已经完成的HTTP事物记录进日志文件
tcp:三次握手,四次断开
HTTP/1.1:
增强了缓存功能
应用程序服务器
IIS
tomcat
Websphere(IBM,JSP)
Webblogic(Oracle,JSP)
JBoss(Redhat)
httpd:
实现创建进程
按需维持适当的进程
模块化设计,核心比较小,各种功能模块的添加(包括php)
支持运行配置,支持单独编译模块
支持多种方式的虚拟主机配置
虚拟主机
只有一台物理服务器,一个web服务器(却可以服务多个站点)
基于ip的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
先取消中心主机,注释中心主机document
定义:
<VirtualHost HOST>
</VirtualHost>
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.1:80>
ServerName hello.westos.com
DocumentRoot "/www/westos.com"
CustomLog /var/log/httpd/westos.com/access_log combined
</VirtualHost>
<VirtualHost 172.16.100.2:80>
ServerName www.a.org
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined
</VirtualHost>
<VirtualHost 172.16.100.1:8080>
ServerName www.b.net
DocumentRoot "/www/b.net"
CustomLog /var/log/httpd/b.net/access_log combined
</VirtualHost>
NameVirtualHost 172.16.100.2:80
<VirtualHost 172.16.100.2:80>
ServerName www.d.gov
DocumentRoot "/www/d.gov"
CustomLog /var/log/httpd/d.gov/access_log combined
</VirtualHost>
mkdir -pv /www/{westos.com,a.org,b.net,d.gov}
cd /www/westos.com
vim index.html
<h1>westos.com</h1>
cd ../a.org
vim index.html
<h1>a.org</h1>
cd ../b.net
vim index.html
<h1>b.net</h1>
vim /etc/httpd/conf/httpd.conf
Listen 8080
cd .. /d.gov
vim index.html
<h1>d.gov</h1>
vim /etc/hosts
172.16.100.2 www.a.org
172.16.100.2 www.d.gov
cd /var/log/httpd/
mkdir westos.com a.org b.net d.gov
httpd -t
service httpd restart
ip addr 172.16.100.2/16 dev eth0
拒绝172.16.100.177访问172.16.100.2
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.2:80>
ServerName www.d.gov
DocumentRoot "/www/d.gov"
CustomLog /var/log/httpd/d.gov/access_log combined
<Directory "/www/d.gov">
Options none
AllowOverride none
Order deny.allow
Deny from 172.16.100.177
</Directory>
</VirtualHost>
cd /etc/httpd/conf.d/
rm -fr welcome.conf
httpd -t
service httpd restart
访问a.org有证书
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.2:80>
ServerName www.a.org
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined
<Directory "/www/d.gov">
Options none
AllowOverride authconfig
AuthType basic
AuthName "Restrict area."
AuthUserFile "/etc/httpd/.htpasswd"
Require valid-user
</Directory>
</VirtualHost>
htpasswd -c -m /etc/httpd/.htpasswd tom
htpasswd -c -m /etc/httpd/.htpasswd jerry
httpd -t
service restart httpd
设定默认虚拟主机
<VirtualHost 172.16.100.2:80>
ServerName _default_
DocumentRoot "/www/default"
</VirtualHost>
###写在最上面###
httpd -t
mkdir /www/default
vim /www/default/index.html
<h1>default</h1>
<Location /server-status>
SetHander server-status ##显示当前服务器状态
Order allow,deny
Allow from all
</Location>
httpd -t
service restart httpd
访问172.16.100.1/server-status
支持https协议
支持用户认证
支持基于IP或主机的ACL
支持每目录的访问控制
支持URL重写
Apache安装:
rpm
源码编译
httpd:
/var/sbin/httpd
httpd: root root (master process)
httpd:apache apache(worker process)
/etc/rc.d/init.d/httpd
port:(80/tcp),(ssl:443/tcp)
/etc/httpd/ 工作跟目录
/etc/httpd/conf 配置文件目录
主配置文件httpd.conf
/etc/httpd/conf/*.conf
/etc/httpd/modules 模块目录
/etc/httpd/logs -->/var/log/httpd 日志目录
/var/www/
html
cgi-bin
client-->httpd(index.cgi)-->spawn(index.cgi)-->httpd-->client
超文本(能够在文本之间实现跳转)
web:
http/0.9:纯文本(超链接)
HTML
浏览器
URI:统一资源标识符,全局范围
URL: 统一资源定位符,互联网上,
portocol://HOST:port/path/to/file
http/1.0:方法 GET PUT POST DELETE
引入MIME:多功能多用途互联网邮件扩展
将非文本数据在传输前重新编码文本格式,接收方能用相反的方式
将其重新还原为原来的格式,还能用相应的程序来打开此文件
动态网页:服务器端存储的文档非HTML,而是编程语言开发的脚本,
脚本接受参数之后在服务器运行一次,运行完成之后会生成HTML的
文档,把生成的文档发给客户端;
web--->portocol--->php(运行index.php)
执行脚本根web服务器无关
HTTP报文:请求报文,响应报文
请求报文语法:
<method><requess-URL><version>
<headera>
<entity-body>
响应报文语法:
<version><status>状态代码( <reason-phrase>进一步解释状态代码
1xx:纯信息
2xx:"成功"的信息<200>
3xx:重定向信息<301,302,304>
4xx:客户端错误信息<404>
5xx:服务器错误信息)
<headera>
<entity-body>
上面两个报文的第一行称作报文“起始行”,后面的标签格式的内容称作
首部域,每个首部域都由名称和值组成,中间逗号分隔,另外,响应报文
通常还有一个称作Body的信息主体,即响应给客户端的内容
web服务器的主要操作
1.建立连接--接受或拒绝客户端的连接请求
2.接受请求--通过网络读取HTTP请求报文
3.处理请求--解析请求报文并作出相应的动作
4.访问资源--访问请求报文中相关的资源
5.构建响应--使用正确的首部生成HTTP响应报文
6.发送响应--向客户端发送生成的响应报文
7.记录日志--当已经完成的HTTP事物记录进日志文件
tcp:三次握手,四次断开
HTTP/1.1:
增强了缓存功能
应用程序服务器
IIS
tomcat
Websphere(IBM,JSP)
Webblogic(Oracle,JSP)
JBoss(Redhat)
httpd:
实现创建进程
按需维持适当的进程
模块化设计,核心比较小,各种功能模块的添加(包括php)
支持运行配置,支持单独编译模块
支持多种方式的虚拟主机配置
虚拟主机
只有一台物理服务器,一个web服务器(却可以服务多个站点)
基于ip的虚拟主机
基于端口的虚拟主机
基于域名的虚拟主机
先取消中心主机,注释中心主机document
定义:
<VirtualHost HOST>
</VirtualHost>
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.1:80>
ServerName hello.westos.com
DocumentRoot "/www/westos.com"
CustomLog /var/log/httpd/westos.com/access_log combined
</VirtualHost>
<VirtualHost 172.16.100.2:80>
ServerName www.a.org
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined
</VirtualHost>
<VirtualHost 172.16.100.1:8080>
ServerName www.b.net
DocumentRoot "/www/b.net"
CustomLog /var/log/httpd/b.net/access_log combined
</VirtualHost>
NameVirtualHost 172.16.100.2:80
<VirtualHost 172.16.100.2:80>
ServerName www.d.gov
DocumentRoot "/www/d.gov"
CustomLog /var/log/httpd/d.gov/access_log combined
</VirtualHost>
mkdir -pv /www/{westos.com,a.org,b.net,d.gov}
cd /www/westos.com
vim index.html
<h1>westos.com</h1>
cd ../a.org
vim index.html
<h1>a.org</h1>
cd ../b.net
vim index.html
<h1>b.net</h1>
vim /etc/httpd/conf/httpd.conf
Listen 8080
cd .. /d.gov
vim index.html
<h1>d.gov</h1>
vim /etc/hosts
172.16.100.2 www.a.org
172.16.100.2 www.d.gov
cd /var/log/httpd/
mkdir westos.com a.org b.net d.gov
httpd -t
service httpd restart
ip addr 172.16.100.2/16 dev eth0
拒绝172.16.100.177访问172.16.100.2
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.2:80>
ServerName www.d.gov
DocumentRoot "/www/d.gov"
CustomLog /var/log/httpd/d.gov/access_log combined
<Directory "/www/d.gov">
Options none
AllowOverride none
Order deny.allow
Deny from 172.16.100.177
</Directory>
</VirtualHost>
cd /etc/httpd/conf.d/
rm -fr welcome.conf
httpd -t
service httpd restart
访问a.org有证书
vim /etc/httpd/conf.d/virtual.conf
<VirtualHost 172.16.100.2:80>
ServerName www.a.org
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined
<Directory "/www/d.gov">
Options none
AllowOverride authconfig
AuthType basic
AuthName "Restrict area."
AuthUserFile "/etc/httpd/.htpasswd"
Require valid-user
</Directory>
</VirtualHost>
htpasswd -c -m /etc/httpd/.htpasswd tom
htpasswd -c -m /etc/httpd/.htpasswd jerry
httpd -t
service restart httpd
设定默认虚拟主机
<VirtualHost 172.16.100.2:80>
ServerName _default_
DocumentRoot "/www/default"
</VirtualHost>
###写在最上面###
httpd -t
mkdir /www/default
vim /www/default/index.html
<h1>default</h1>
<Location /server-status>
SetHander server-status ##显示当前服务器状态
Order allow,deny
Allow from all
</Location>
httpd -t
service restart httpd
访问172.16.100.1/server-status
支持https协议
支持用户认证
支持基于IP或主机的ACL
支持每目录的访问控制
支持URL重写
Apache安装:
rpm
源码编译
httpd:
/var/sbin/httpd
httpd: root root (master process)
httpd:apache apache(worker process)
/etc/rc.d/init.d/httpd
port:(80/tcp),(ssl:443/tcp)
/etc/httpd/ 工作跟目录
/etc/httpd/conf 配置文件目录
主配置文件httpd.conf
/etc/httpd/conf/*.conf
/etc/httpd/modules 模块目录
/etc/httpd/logs -->/var/log/httpd 日志目录
/var/www/
html
cgi-bin
client-->httpd(index.cgi)-->spawn(index.cgi)-->httpd-->client