一次完整的http的请求过程与https的实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次完整的http的请求过程与https的实现相关的知识,希望对你有一定的参考价值。
一次完整的http请求过程:
(1)发起请求建立连接; 三次握手 接收请求或拒绝请求
(2)接受请求
来自网络的请求报文中对某资源的一次请求过程;
并发访问响应模型(Web I/O);
单进程I/O结构:启动一个进程处理用户请求,而且一次只处理一个;多个请求被串行响应
多进程I/:并行启动多个进程,每个进程响应一个请求
复用I/O结构:一个进程响应n个请求:
多线程模型:一个进程生成n个线程,每个线程响应一个请求;
事件驱动机制:event-driven
复用的多进程I/O结构:启动多个(m)进程,每个进程响应n个请求;
(3) 处理请求 ;对请求报文进行解析,并获取请求资源及请求方法等相关信息
元数据: 请求报文首部
<method> <URL> <VERSION>
Host:www.magedu.com 请求主机名称
Connection:
(4)访问资源 : 获取请求报文中请求的资源
web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后的资源;这些资源放置于本地文件系统某路径下,此路径通常称为文档根(DocRoot)
web服务器资源路径映射方式:
(a)docroot
(b)alias
(c)虚拟机docroot
(d)家目录docroot
(5)构建响应报文
资源MIME资源:
显示分类
魔法分类
协商分类
URL重定向:
web服务构建的响应并非客户端请求的资源,而是资源另外一个访问路径;
(6)发送响应报文
(7)记录日志
最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务
https实现
安装ssl这个模块
yum install mod_ssl
cat /etc/pki/tls/openssl.cnf
生成自签发证书CA
cd /etc/pki/CA/ (umask 066;openssl genrsa -out private/cakey.pem 2048) openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 openssl x509 -in cacert.pem -noout -text查看自签名证书 touch index.txt echo 00 > serial
目录树如下格式
[[email protected] CA]#tree . ├── cacert.pem ├── certs ├── crl ├── index.txt ├── newcerts ├── private │ └── cakey.pem └── serial
生成私钥,既然是提供给web服务器使用,最好将私钥放在服务器自己的配置文件里,也可以单独建一个文件夹专门管理
cd /etc/httpd/conf.d/ mkdir ssl
cd ssl/ 私钥请求和证书都放在这里
生成私钥,申请证书
(umask 066;openssl genrsa -out httpd.key 1024) openssl req -new -key httpd.key -out httpd.csr
将证书申请传给CA
scp httpd.csr 192.168.77.7:/etc/pki/CA/
签发证书
openssl ca -in httpd.csr -out certs/httpd.crt -days 363
颁发证书
scp certs/httpd.crt 192.168.77.6:/etc/httpd/conf.d/ssl/
配web服务器,让web服务器用到这些证书
scp cacert.pem 192.168.77.6:/etc/httpd/conf.d/ssl/
[[email protected] ssl]#tree . ├── cacert.pem ├── httpd.crt ├── httpd.csr └── httpd.key
在 /etc/httpd/conf.d/ssl.conf这个配置文件中将证书的路径,和key的路径指定好
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem
将根证书导入到受信任的颁发机构
修改host文件C:\Windows\System32\drivers\etc\host
192.168.77.6 www.a.com
本文出自 “13147090” 博客,谢绝转载!
以上是关于一次完整的http的请求过程与https的实现的主要内容,如果未能解决你的问题,请参考以下文章