HTTP ( 一)

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>









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章