HTTP协议的介绍,Web服务器配置,虚拟主机的配置,如何用SSL实现HTTPS。
Web服务通常可以分为静态Web服务和动态Web服务两种,在静态Web服务中,服务器只是负责把存储的文档发送给客户端浏览器,在此过程中传输的网页
只有在专业的编辑人员对它们修改之后,页面才会发生变化。而动态Web服务能够实现浏览器和服务器之间的数据交互,Web服务通过CGI、ASP、PHP
等动态网站技术,客户端可以向服务器请求可执行的程序,服务器会执行该程序,或者把请求传送给应用程序服务器执行,之后返回结果给客户端。
HTTP超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
HTTP 请求方法:
GET:请求一个资源。
PUT:向指定资源位置上传内容。
HEAD:仅请求响应首部。
DELETE:请求***资源。
POST: 向指定资源提交数据进行处理请求(提交表单)。
OPTIONS:返回请求的资源所支持的方法的方法。
HTTP响应码:
1xx:信息状态码。
2xx:成功状态码。
3xx:重定向状态码:
301:永久重定向,请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。
302:临时重定向,资源只是临时被移动。客户端应继续使用原有URI。
304:Not Modified,所请求的资源未修改。
4xx:客户端错误:
404:Not Found
5xx:服务器端错误
500:Internal Server Error 服务器内部错误,无法完成请求
502:Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
HTTP报文请求的首部:
request:
<method> <request-URL> <version>
<headers>
<entity-body>
response:
<version> <status> <reason-phrase>
<headers>
<entity-body>
我们用Telnet对纯文本的HTTP发出一个请求:
Apache 工作模型:
MPM(Multi -Processing Modules,多道处理模块。
prefork:一个进程响应一个请求。
worker:一个进程生成多个线程,一个线程响应一个请求。
event:事件驱动模式
下面来看看如何用Apache程序配置一个Web服务器:
httpd 命令的基本使用:
-t 测试语法错误
-l 列出已编译的模块
-t -D DUMP_MODULES 显示全部已装载的模块
配置所选用的MPM的属性
编辑/etc/sysconfig/httpd配置文件,定义如下行:
HTTPD=/usr/sbin/httpd.worker
配置服务器支持KeepAlive:
配置加载模块:
实例1、创建虚拟主机192.168.1.200:80为tuchaohost1,192.168.1.210:8866为tuchaohost2,定义日志文件,允许执行CGI脚本。
虚拟主机和主服务器不能同时使用:关闭主服务器,注释主服务器的DocumentRoot。
添加监听的端口
配置虚拟主机
访问下192.168.1.200
访问下192.168.1.210:8866
好,这两个都配置成功了,接下来我们配置一个基于主机名的虚拟主机,并且设置权限访问
使用htpasswd命令创建用户文件。
# htpasswd -c -s /etc/httpd/conf/.htpass tuchao
然后配置httpd.conf主配置文件:
重启服务
# /etc/init.d/httpd restart
用另一台主机访问试试:
我们配置了身份验证的,要输入用户名密码。
输入好后,点确定。 就能看到网页了,这就是基于主机名的虚拟主机。
下面来看看如何使用SSL来实现HTTPS:
先安装mod_ssl
# yum install mod_ssl -y
自建CA:
# cd /etc/pki/CA/
# openssl genrsa -out private/cakey.pem 2048
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
为httpd生成私钥,创建证书签署请求,然后由CA签署。
# cd /etc/httpd/conf/ssl
# openssl genrsa -out ./http.key 1024
# openssl req -new -key http.key -out httpd.csr
# openssl ca -in httpd.csr -out httpd.crt -days 365
配置/etc/httpd/conf.d/ssl.conf
配置证书的文件和私钥路径:
配置完成后重启服务,来用openssl测试下。
# openssl s_client -connect www.study.com:443 -CAfile /etc/pki/CA/cacert.pem
GET / HTTP/1.1
Host:www.study.com
我们可以把CA的证书复制到windows客户端,把尾椎改为.crt双击安装,实现访问加密。
好,基本配置就到这里,休息会。
有问题欢迎与我交流:1183710107
- HTTP协议的介绍,Web服务器配置,虚拟主机的配置,如何用SSL实现HTTPS。
- apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
- apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
- 配置了SSL 的web服务器,如何实现启动服务的时候自动输入密码
- java实现的利用HTTP协议原理实现的GET/POST请求的web服务器
- 利用socket自己实现基于HTTP协议的Web服务器
- Web服务器(Apache)虚拟主机的配置
- HttpClient之配置ssl,采用绕过证书验证实现https
- QTE下通过Http协议以同步方式与Web服务器通信的实现
- 在windows下apache配置SSL以实现http转换为https
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- 如何把一个web集群由HTTP转换为HTTPS(LVS+HAProxy+SSL) 推荐
- [轻微]WEB服务器启用了OPTIONS方法/如何禁止DELETE,PUT,OPTIONS等协议访问应用程序/tomcat下禁用不安全的http方法
- nginx https配置详解,linxu环境nginx下http升级到https——linux安装web服务器17
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- 配置基于主机名的虚拟主机实现服务器单IP跑多个web应用
- CentOS6.5 Nginx搭建web服务器,实现平滑升级,虚拟主机及访问控制
- 如何配置uClinux实现简易HTTP应用(显示web网页)
- http实现虚拟主机的配置
- HttpClient之配置ssl,采用绕过证书验证实现https