1.定義: http: hypertext transport protocol
http(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連接方 式,HTTP1.1版本中給出一種持續連接的機制,絕大多數的Web開發,都是構建在HTTP協議之上的Web應 用。
2.http協議的版本:
http/0.9: 1991,僅用於傳輸html文檔
http/1.0: 支持多媒體數據的處理,keep-alive(保持連接),有緩存功能
http/1.1: 更多的請求方法,更精細的緩存控制,持久連接
MIME: Multipurpose Internet Mail Extension 多功能郵件擴展
base64: 將二進制數據編碼成文本發送,並能夠讓接收方還原回原來的格式;
major/minor 主類型/子類型 用來說明資源類型
3. HTTP請求:request
HTTP請求報文
報文格式:
第一行:<method> <request-URL> <version> (方法,資源,版本)
第二行:<headers> (請求頭)
兩行後:<entity-body> (請求主體)
4. HTTP響應:response
HTTP響應報文
報文格式:
<version> <status> <reason-phrase> (版本,狀態嗎,原因短語)
<headers> (請求頭)
<entity-body> (響應主體)
<method>: 請求方法, 希望服務器端執行的動作,如GET、HEAD、POST等
<request-url>: 請求的資源,可以是相對路徑,也是完整的URL
<version>:協議版本,格式HTTP/<major>.<minor>,如http/1.0
<headers>:HTTP首部
<status>: 狀態碼
<reason-phrase>:原因短語,數字狀態碼易讀信息
<entity-body>: 主體部分
5. HTTP狀態碼:
1xx: 信息性狀態碼
2xx:成功狀態碼
200: OK
201: Created,接受並保存
3xx:重定向狀態碼
301:Moved Permanently, 永久重定向。在響應報文中使用首部“Location: URL”指定資源現在所處的位置;
302:Found,臨時重定向,本資源有,但暫時不在本地。在響應報文中使用首部“Location: URL”指定臨時資源位置;
304:Not Modified,沒修改這個資源,就可以使用緩存了。條件式請求中使用;
4xx:客戶端類的錯誤 ,例如服務器端資源不存在
403:Forbidden,請求被服務器拒絕,原因可能是沒有權限
404:Not Found,服務器無法找到請求的URL
405:Method Not Allowed,不允許使用此方法請求相應的URL
5xx:服務器類的錯誤
500:Internal Server Error,服務器內部錯誤;如服務器端腳本無權限執行
502:Bad Gateway,代理服務器從上游收到了一條僞響應;
503:Service Unavailable,服務器此時無法提供服務,但將來可能可用;
6.MPM: Multipath Processing Module,多道處理模塊,非一個模塊,而是對一種特性的稱謂
prefork:
一個進程一個請求,預先forck好多個,prefork是基於事件分離器來工作的,而select的文件數最大不能超過1024個,也就是說prefork最多能處理1024個進程
worker:
一個進程多個線程,一個線程一個請求
event:
一個線程響應多個請求。event是基於事件驅動(event-driven)的,主要目的在於實現單線程響應多個請求;
7. 虛擬主機
一個物理服務器提供多個站點; 使用虛擬主機得先取消中心主機
Web: Socket(IP, port)
基於不同的IP實現不同的虛擬主機
變化IP
基於不同的port實現不同的虛擬主機
變化port
基於不同的FQDN實現不同的虛擬主機
變化ServerName的值
NameVirtualHost *:80
<virtualhost IP:port>
ServerName
DocumentRoot ""
<Directory "">
Options
</Directory>
ServerAlias
ServerAdmin
</virtualhost>
虛擬主機的單獨配置:
用戶認證
訪問日誌
錯誤日誌
別名
腳本別名
9 服務器status頁面
內生的status信息,且此信息可以通過web預以顯示
配置文件系統路徑訪問屬性
<Directory [~] "">
</Directory>
<File [~] "">
</File>
配置URL訪問屬性
<Location [~] "">
</Location>
<LocationMatch "">
</LocationMatch>
如果某要配置其屬性的URL能映射到某具體文件系統路徑,建議使用<Directory>;
處理器:是當文件被調用時,Apache內部表示形式;一般每種文件類型都有其隱式處理器;
顯式的定義使用的處理器 SetHandler
<Location /URL>
SetHandler server-status
</Location>
定義訪問控制機制
基於IP控制
基於用戶控制
示例:
<Location /server-status>
SetHandler server-status
AuthType Basic
AuthName "Server Status"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user
Order deny,allow
Allow from all
</Location>