天天看點

httpd學習:http基礎(續)

  • 一次完整的http請求處理過程:

(1) 建立或處理連接配接:接收請求或拒絕請求

(2) 接收請求:

接收來自于網絡的請求封包中對某資源的一次請求的過程;

并發通路響應模型(Web I/O):

單程序I/O結構:啟動一個程序處理使用者請求,而且一次隻處理一個;多個請求被串行響應;

多程序I/O結構:并行啟動多個程序,每個程序響應一個請求;

複用I/O結構:一個程序響應n個請求;

多線程模型:一個程序生成N個線程,每個線程響應一個使用者請求;

事件驅動:event-driven

複用的多程序I/O結構:啟動多個(m)程序,每個程序響應n個請求;

(3) 處理請求:對請求封包進行解析,并擷取請求的資源及請求方法等相關資訊

中繼資料:請求封包首部

(4) 通路資源:擷取請求封包中請求的資源

web伺服器,即存放了web資源的伺服器,負責向請求者提供對方請求的靜态資源,或動态運作後生成的資源;這些資源放置于本地檔案系統某路徑下,此路徑通常稱為DocRoot

/var/www/html/

web伺服器資源路徑映射方式:

(a) docroot

(b) alias

(c) 虛拟主機docroot

(d) 使用者家目錄docroot

(5) 建構響應封包

資源的MIME類型:

顯式分類

魔法分類

協商分類

URL重定向:

web服務建構的響應并非用戶端請求的資源,而是資源另外一個通路路徑;

(6) 發送響應封包

(7) 記錄日志

  • http伺服器程式:

httpd (apache)

nginx

lighttpd

應用程式伺服器:

IIS

tomcat, jetty, jboss, resin

webshpere, weblogic, oc4j

  • httpd的安裝配置和使用:

httpd: apache

a  patchy server =

apache

ASF: apache software foundation

  • httpd的特性:

高度子產品化:core + modules

DSO: Dynamic Shared Object

MPM:Multipath Processing Modules

prefork:多程序模型,每個程序響應一個請求;

一個主程序:負責生成n個子程序,子程序也稱為工作程序,每個子程序處理一個使用者請求;即便沒有使用者請求,也會預先生成多個空閑程序,随時等待請求到達;最大不會超過1024個;

worker:多線程模型,每個線程響應一個請求;

一個主程序:生成多個子程序,每個子程序負責生個多個線程,每個線程響應一個請求;

m程序,n線程:m*n                                        

event:事件驅動模型,每個線程響應n個請求;

一個主程序:生成m個子程序,每個程序直接n個請求;

m*n

httpd-2.2: event為測試使用

httpd-.24:event可生産使用

  • httpd的功能特性:

虛拟主機

IP、Port、FQDN

CGI:Common Gateway Interface,通用網關接口;

反向代理

負載均衡

路徑别名

豐富的使用者認證機制

basic

digest

支援第三方子產品