一次完整的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的實現