apache日誌分析

                                               web服務器日誌配置和分析詳解

從某種程度上將”日誌就是金錢”,因爲通過日誌能夠分析出一個網站具有高流量,則廣告商願意爲其支付費用。對於所有的公司或ICP來說,除了要保證網站穩定正常的運行以外,一個重要的問題就是網站訪問量的統計和分析報表,這對於瞭解和監控網站的運行狀態,提高各個網站的服務能力和服務水平是必不可少的。而這些要求都可以通過對Web服務器日誌文件的統計和分析來實現。

一、            web日誌分析原理

web服務器日誌記錄了Web服務器接收處理請求及運行時錯誤等各種原始信息。通過對日誌進行統計、分析和綜合,就能有效地掌握服務器的運行狀況、發現和排除錯誤原因、瞭解客戶訪問分佈等,更好地加強系統的維護和管理。Web服務模式主要有三個步驟:

 服務請求,包含用戶端的衆多基本信息,如IP地址、瀏覽器類型、目標URL等。

  

 服務響應,Web服務器接收到請求後,按照用戶要求運行相應的功能,並將信息返回給用戶。如果出現錯誤,將返回錯誤代碼。

  

 追加日誌,服務器將對用戶訪問過程中的相關信息以追加的方式保存到日誌文件中。如圖1 。

 

 圖1 Web服務模式主要有三個步驟

二、          Apache日誌的配置

 

1、日誌類型

  

     1.3 版本Apache的標準中規定了4類日誌:

  

Ø  錯誤日誌

  

Ø  訪問日誌

  

Ø  傳輸日誌

  

Ø  Cookie日誌

  

     其中:傳輸日誌和Cookie日誌被Apache2.0認爲已經過時。所以本文僅討論錯誤日誌和訪問日誌。同時錯誤日誌和訪問日誌被Apache 2.0默認設置。

  

     錯誤日誌包含

  

     獲知失效鏈接

  

     獲知 CGI 錯誤

  

     獲知用戶認證錯誤

  

     訪問日誌包含

  

     訪問服務器的遠程機器的地址:可以得知瀏覽者來自何方

  

     瀏覽者訪問的資源:可以得知網站中的哪些部分最受歡迎

  

     瀏覽者的瀏覽時間:可以從瀏覽時間(如工作時間或休閒時間)對網站內容進行調整

  

     瀏覽者使用的瀏覽器:可以根據大多數瀏覽者使用的瀏覽器對站點進行優化

  

     訪問日誌分類:

  

     爲了便於分析Apache 的訪問日誌,Apache的默認配置文件中,按記錄的信息不同(用不同格式暱稱說明不同的信息)將訪問日誌分爲4類:

  

  普通日誌格式(commonlog format,CLF)common  大多數日誌分析軟件都支持這種格式

參考日誌格式(refererlog format)referrer  記錄客戶訪問站點的用戶身份

代理日誌格式(agentlog format)agent  記錄請求的用戶代理

綜合日誌格式(combinedlog format)combined  結合以上三種日誌信息 

     2、配置訪問日誌命令

  

     CustomLog 命令用來對服務器的請求進行日誌記錄。格式爲:

  

     格式1:CustomLog訪問日誌文件名 記錄格式說明串|格式暱稱

  

     格式2:CustomLog"|管道程序名 訪問日誌文件名"記錄格式說明串|格式暱稱

  

     說明:

  

     訪問日誌文件名:除非文件位置用”/“開頭,否則所制定的文件位置是相對於ServerRoot 目錄的相對路徑

  

     格式暱稱:使用LogFormat 命令將一個記錄格式說明串賦以一個名稱

  

     記錄格式說明串:用字符串和格式說明符(以%開頭)指定日誌記錄的內容

  

     管道程序名:管道符”|”後面緊跟着一個程序的路徑,這個程序把日誌從標準輸入設備中讀入並處理。

  

     LogFormat 命令用於定義訪問日誌的記錄格式。格式爲:

  

     LogFormat "記錄格式說明串"格式暱稱

  

     從apache2.conf中可知,在Apache中定義了下面的 4 種類型的訪問日誌:

       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
  LogFormat "%h %l %u %t \"%r\" %>s %b" common 
  LogFormat "%{Referer}i -> %U" referer 
  LogFormat "%{User-agent}i" agent

 

      由於綜合日誌格式簡單地結合了3種日誌信息,所以在配置訪問日誌時,要麼使用一個綜合文件進行記錄,要麼使用分離的多個(1-3)文件記錄。通常使用一個綜合日誌格式文件進行記錄,配置爲:

CustomLog /var/log/apache2/access.log combined

  若使用3個文件分別進行記錄,配置爲:

      CustomLog /var/log/apache2/access.log common
  CustomLog /var/log/apache2/referer.log referer
  CustomLog /var/log/apache2/agent.log agent

  下面的命令組:

      LogFormat "%h %l %u %t \"%r\" %>s %b" common
  CustomLog logs/access_log common

  與下面的命令等效:

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b"

  通常我們配置訪問日誌時,使用先使用LogFormat 命令定義格式暱稱,然後再在 CustomLog 命令中引用暱稱的方法。

  在使用 LogFormat 和CustomLog 命令中爲了說明要記錄的日誌內容,可以使用的常用格式說明符如表-3。

格式說明符

說明

%v

進行服務的服務器的標準名字 ServerName,通常用於虛擬主機的日誌記錄中。

%h

客戶機的 IP 地址。

%l

從identd服務器中獲取遠程登錄名稱,基本已廢棄。

%u

來自於認證的遠程用戶。

%t

連接的日期和時間。

%r

HTTP請求的首行信息,典型格式是“METHOD RESOURCEPROTOCOL”,即“方法 資源 協議”。經常可能出現的 METHOD 是 GET、POST 和 HEAD;RESOURCE 是指瀏覽者向服務器請求的文檔或 URL;PROTOCOL 通常是HTTP,後面再加上版本號,通常是 HTTP/1.1。

%>s

響應請求的狀態代碼,一般這項的值是 200,表示服務器已經成功地響應瀏覽器的請求,一切正常;以 3 開頭的狀態代碼表示由於各種不同的原因用戶請求被重定向到了其他位置;以 4 開頭的狀態代碼表示客戶端存在某種錯誤;以 5 開頭的狀態代碼表示服務器遇到了某個錯誤。

%b

傳送的字節數(不包含HTTP頭信息),將日誌記錄中的這些值加起來就可以得知服務器在一天、一週或者一月內發送了多少數據。

%{Referer}i

指明瞭該請求是從被哪個網頁提交過來的。

%U

請求的URL路徑,不包含查詢串。

\"%{User-Agent}i\"

此項是客戶瀏覽器提供的瀏覽器識別信息。

  圖2是從一個訪問日誌文件中截取的幾條記錄。這裏使用winscp遠程登錄到Solaris10 服務器的日誌文件目錄。

 

 

 圖2 apache 訪問日誌

  

      將其中一列各項信息分離於表-4所示。

 

格式說明符

 

舉例1

%h

遠程主機IP

192.168.220.1

%l

 

-(表示沒有取得信息)

%u

 

-

%t

訪問日期,時間和時差

 

14/Oct/2008:19:54:51 +0800

%r

請求 / 版本

"GET / HTTP/1.1"

%>s

服務狀態碼

404

%b

發送的字節數

1185

%{Referer}i

 

”-”

%{User-Agent}i

 

 

 

  3、配置錯誤日誌

 

  錯誤日誌記錄了服務器運行期間遇到的各種錯誤,以及一些普通的診斷信息,比如服務器何時啓動、何時關閉等。

 

  ErrorLog 命令指定了當服務器遇到錯誤時記錄錯誤日誌的文件名。其格式爲:

 

  格式1:ErrorLog錯誤日誌文件名

 

  格式2:ErrorLog"|管道程序名"

 

  格式1直接指定錯誤日誌文件名,除非文件位置用”/“開頭,否則ErrorLog 所制定的文件位置是相對於 ServerRoot 目錄的相對路徑。

 

  格式2實現管道日誌,它指定一個命令來處理錯誤日誌。

 

  Apache 編譯時默認的錯誤日誌可以使用如下命令獲得:

      $ apache2 -V| grep DEFAULT_ERRORLOG
  -D DEFAULT_ERRORLOG="logs/error_log"

  LogLevel

 

  LogLevel 用於調整記於錯誤日誌中的信息的詳細程度。

等級

應用說明

級別

emerg

出現緊急情況使得該系統不可用,如系統宕機等

1

alert

需要立即引起注意的情況

2

crit

危險情況的警告

3

error

除了emerg、alert、crit的其他錯誤

4

warn

警告信息

5

notice

需要引起注意的情況,但不如error、warn重要

6

info

值得報告的一般消息

7

debug

由運行於debug模式的程序所產生的消息

8

  圖3是從一個訪問錯誤文件中截取的幾條記錄。這裏使用winscp遠程登錄到Solaris10 服務器的日誌文件目錄。

 

 

  圖3 apache 錯誤日誌

 

  從文件內容可以看出,每一行記錄了一個錯誤。格式爲:

 

日期和時間 錯誤等級 錯誤消息

 

三、          定義日誌格式參數詳解

定製日誌文件的格式涉及到兩個指令,即LogFormat指令和CustomLog指令。在httpd.conf文件中。

LogFormat指令定義格式併爲格式指定一個名字,以後我們就可以直接引用這個名字。CustomLog指令設置日誌文件,並指明日誌文件所用的格式。

LogFormat指令的功能是定義日誌格式併爲它指定一個名字。例如,在默認的httpd.conf文件中,我們可以找到下面這行代碼:

LogFormat "%h %l %u %t\"%r\" %>s %b" common

該指令創建了一種名爲“common”的日誌格式,日誌的格式在雙引號包圍的內容中指定。格式字符串中的每一個變量代表着一項特定的信息,這些信息按照格式串規定的次序寫入到日誌文件。

Apache文檔已經給出了所有可用於格式串的變量及其含義:

----------------------------------------------------------------------

%...a: 遠程IP地址

%...A: 本地IP地址

%...B: 已發送的字節數,不包含HTTP頭

%...b: CLF格式的已發送字節數量,不包含HTTP頭。

例如當沒有發送數據時,寫入‘-’而不是0。

%...{FOOBAR}e: 環境變量FOOBAR的內容

%...f: 文件名字

%...h: 遠程主機

%...H 請求的協議

%...{Foobar}i: Foobar的內容,發送給服務器的請求的標頭行。

%...l: 遠程登錄名字(來自identd,如提供的話)

%...m 請求的方法

%...{Foobar}n: 來自另外一個模塊的註解“Foobar”的內容

%...{Foobar}o: Foobar的內容,應答的標頭行

%...p: 服務器響應請求時使用的端口

%...P: 響應請求的子進程ID。

%...q 查詢字符串(如果存在查詢字符串,則包含“?”後面的

部分;否則,它是一個空字符串。)

%...r: 請求的第一行

%...s: 狀態。對於進行內部重定向的請求,這是指*原來*請求

的狀態。如果用%...>s,則是指後來的請求。

%...t: 以公共日誌時間格式表示的時間(或稱爲標準英文格式)

%...{format}t: 以指定格式format表示的時間

%...T: 爲響應請求而耗費的時間,以秒計

%...u: 遠程用戶(來自auth;如果返回狀態(%s)是401則可能是僞造的)

%...U: 用戶所請求的URL路徑

%...v: 響應請求的服務器的ServerName

%...V: 依照UseCanonicalName設置得到的服務器名字

------------------------------------------------------------------

在所有上面列出的變量中,“...”表示一個可選的條件。如果沒有指定條件,則變量的值將以“-”取代。

有時候我們只想在日誌中記錄某些特定的、已定義的信息,這時就要用到“...”。如果在“%”和變量之間放入了一個或者多個HTTP狀態代碼,則只有當請 求返回的狀態代碼屬於指定的狀態代碼之一時,變量所代表的內容纔會被記錄。例如,如果我們想要記錄的是網站的所有無效鏈接,那麼可以使用:

----------------------------------------------------

LogFormat %404{Referer}i BrokenLinks

---------------------------------------------------

反之,如果我們想要記錄那些狀態代碼不等於指定值的請求,只需加入一個“!”符號即可:

LogFormat %!200U SomethingWrong

 

四、          Apache日誌的滾動

 

 

1、爲什麼使用日誌滾動

 

由於Apache進程本身不負責對日誌文件進行滾動,因此必須使用其他程序配置日誌滾動。所有的日誌文件都會隨着時間的推移和訪問次數的增加而迅速增長,因此必須對日誌文件進行定期清理以免造成磁盤空間的不必要的浪費。同時也加快了管理員查看日誌所用的時間,因爲打開小文件的速度比打開大文件的速度要快。

 

2、使用命令使用空的日誌文件 

 

要使系統重新使用空的日誌文件,可以執行如下的命令:

      cd /opt/coolstack/apache2/log
  mv access_log access_log.old
  mv error_log error_log.old
  /opt/coolstack/apache2/bin/apachectl graceful
  sleep 800
  gzip access_log.old error_log.old

  上面的指令片斷是進行日誌滾動的基礎,用戶可以自行編制腳本讓cron 執行。下面介紹兩種常用的日誌滾動配置方法。

 

3、使用 rotatelogs 實現日誌滾動

 

  Apache 自帶的rotatelogs 程序可以實現日誌滾動。rotatelogs是一個配合 Apache 管道日誌功能使用的簡單程序。爲了使用rotatelogs 程序,需要在Apache 配置文件中使用管道日誌的配置。

 

  rotatelogs 命令的格式如圖4:

 

 

  rotatelogs 命令的格式

 

  其中:

 

  -l:使用本地時間代替GMT時間作爲時間基準。

 

  logfile:日誌文件名。有兩種格式表示新的日誌開始使用的時間。

 

  如果 logfile中包含”%”,則它會被視爲用於strftime()的格式字符串;常用的有:

 

  %Y:4位數的年份

 

  %m:2位數的月份

 

  %d:2位數的一個月中的日期數

 

  %H:2位數的小時數(24小時制)

 

  %M:2位數的分鐘數

 

  %S:2位數的秒數

 

  %U:2位數的一年中的星期數(星期天爲一週的第一天)

 

  %W:2位數的一年中的星期數(星期一爲一週的第一天)

 

  %w:1位數的星期幾(星期天爲一週的第一天)

 

  否則它會被自動加上以秒爲單位的”.nnnnnnnnnn”後綴,這裏nnnnnnnnnn 是開始記錄日誌的格林威治時間距離 1970年1月1日 的秒數。

 

  rotationtime:日誌文件滾動的以秒爲單位的間隔時間。

 

  offset:相對於UTC的時差的分鐘數。如果省略,則假定爲”0″並使用UTC時間。比如,要指定UTC時差爲”-5小時”的地區的當地時間,則此參數應爲”-300″。

 

  filesizeM:指定以filesizeM 文件大小滾動,而不是按照時間來滾動日誌。

 

  使用舉例:

 

  例1:每過一天滾動日誌 ,修改apache配置文件如下:

TransferLog "| /opt/coolstack/apache2/bin/rotatelogs / opt/coolstack/apache2/log /access.log 86400" combined

  其中 86400(秒)是日誌滾動的時間。86400 秒就是 1 天。滾動以後的文件名爲/opt/coolstack/apache2/log /access.log /access_log.nnnnnnnnnn,這裏nnnnnnnnnn 是開始記錄日誌的格林威治時間距離 1970年1月1日 的秒數。當日志滾動一次後將生成一個新的日誌文件,後綴爲前一個日誌文件的後綴值加 86400。

 

  例2:在日誌文件大小增長到指定字節時滾動日誌 ,修改apache配置文件如下:

TransferLog "|/opt/coolstack/apache2/bin/rotatelogs / opt/coolstack/apache2/log/apache2/access.log 20M" combined

  此配置會在日誌文件大小增長到 20M 字節時滾動該日誌。

 

  例3:使用logrotate實現日誌滾動

 

  logrotate 是Unix、Linux系統實現日誌滾動的通用程序。Linux下可以直接使用,Solaris10 下要進行安裝配置。

      #wegt ftp://ftp.sunfreeware.com/pub/freeware/intel/10/logrotate-3.7.1-sol10-x86-local.gz
  #gunzip ftp://ftp.sunfreeware.com/pub/freeware/intel/10/logrotate-3.7.1-sol10-x86-local.gz
  #pkgadd –d logrotate-3.7.1-sol10-x86-local

  圖5是logrotate安裝配置完成界面

 

 

  logrotate安裝配置完成界面

 

  可以把配置文件/usr/local/doc/logrotate/examples/logrotate-default複製爲配置文件/etc/logrotate.conf

 

  可以把配置文件/usr/local/doc/logrotate/examples/logrotate.cron複製到文件目錄/etc/cron.d/

 

  下面看看配置文件如圖6。

 

 

  配置文件

 

  logrotate的配置文件中可以看到,除了wtmp以外,需要滾動的日誌的配置都保存在/etc/logroate.d目錄下。因此只需要在該目錄下創建一個名爲apache的配置文件,來指示logrotate如何輪循Web服務器的日誌文件即可。下面是一個示例:

      / opt/coolstack/apache2/log {
  rotate 2
  daily
  missingok
  sharedscripts
  postrotate
  /usr/bin/killall -HUP httpd 2> /dev/null || true
  endscript
  }

  這裏“rotate 2”表示輪循時只包括兩個備份文件,也就是隻有access_log、access_log.1和access_log.2三個日誌備份文件。這種方法的優點是不需要其它第三方工具就可以實現日誌輪循。但是對於重負載的服務器和使用負載均衡技術的Web服務器來說,這種方法不是很實用。因爲它是對相應服務進程發出一個-HUP重啓命令來實現日誌的截斷歸檔的,這樣會影響服務的連續性。

 

  例4:使用使用cronolog 實現日誌滾動

 

  cronolog (http://cronolog.org/ )是基於rotatelogs 的一個第三方工具軟件。cronolog 可以非常整齊的將日誌按天輪循存儲,即每個日誌文件存儲的是 00:00:00 到 23:59:59時間之內的所有日誌。

 

  1.準備gccfor solaris10 編譯器,這裏用的版本:gcc-3.3.2-sol10-intel-local.gz

 

  2.下載解壓縮文件

      #wegt ftp://ftp.sunfreeware.com/pub/freeware/intel/10/gcc-3.3.2-sol10-intel-local.gz
  #gizip –d gcc-3.3.2-sol10-intel-local.gz

  3.安裝 

#pkgadd -d gcc-3.3.2-sol10-intel-local

  接下來的安裝,是一個交互安裝過程

 

  默認安裝路徑/usr/local/bin

 

  4.設置PATH變量

      # PATH=$PATH:/usr/local/bin
  #PATH=$PATH:/usr/ccs/bin
  # export PATH

  5. 準備coronolog,版本:cronolog-1.6.2.tar.gz

 

  6.下載安裝:

      #wegt http://cronolog.org/download/cronolog-1.6.2.tar.gz
  # tar zxvf cronolog-1.6.2.tar.gz
  # cd cronolog-1.6.2
  # ./configure
  # make
  # make install

 

  cronolog安裝配置完成界面

 

  可以看到默認是安裝在/usr/local/sbin/下 。下面是一個使用cronolog 的例子:

CustomLog "|/usr/local/sbin/cronolog / opt/coolstack/apache2/log /access.log.%Y-%m-%d" combined

  他將按日誌依次生成日誌文件,如:

      access.log.2008-09-18
  access.log.2008-09-19
  access.log.2008-09-20
  access.log.2008-09-21
  access.log.2008-09-22

若要壓縮舊的日誌文件或清除無用的日誌文件,可以使用 find 等命令 配合系統 crond來實現。

 

 

五、          Apache 狀態碼詳解:

基本上可以分爲五類:

1xx 爲消息類,該類狀態代碼用於表示服務器臨時迴應。

100 Continue 表示初始的請求已經被服務器接受,瀏覽器應當繼續發送請求的其餘部分

101 Switching Protocols 服務器將遵從客戶的請求轉換到另外一種協議。

2xx 表示瀏覽器端請求被處理成功。

200 OK 一切正常。

201 Created 服務器已經創建了文檔,Location 頭給出了它的 URL。

202 Accepted 已經接受請求,但處理尚未完成。

203 Non-Authoritative Information 文檔已經正常地返回,但一些應答頭可能不正確,因爲使用的是文檔的拷貝。

204 No Content 沒有新文檔,瀏覽器應該繼續顯示原來的文檔。這個跟下面的 304 非常相似。

205 Reset Content 沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。

206 Partial Content 客戶發送了一個帶有 Range 頭的GET請求,服務器完成了它。注意,通過 Range 可以實現斷點續傳。

3xx 重定向。

300 Multiple Choices 客戶請求的文檔可以在多個位置找到,這些位置已經在返回的文檔內列出。如果服務器要提出優先選擇,則應該在Location應答頭指明。

301 Moved Permanently 客戶請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL。

302 Found 類似於301,但新的URL應該被視爲臨時性的替代,而不是永久性的。注意,在HTTP1.0中對應的狀態信息是“Moved Temporatily”。 
出現該狀態代碼時,瀏覽器能夠自動訪問新的URL,因此它是一個很有用的狀態代碼。 
注意這個狀態代碼有時候可以和301替換使用。例如,如果瀏覽器錯誤地請求http://host/~user,有的服務器返回301,有的則返回302。 
嚴格地說,我們只能假定只有當原來的請求是GET時瀏覽器纔會自動重定向。請參見307。

303 See Other 類似於301/302,不同之處在於,如果原來的請求是POST,Location頭指定的重定向目標文檔應該通過GET提取。

304 Not Modified 客戶端有緩衝的文檔併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩衝的文檔還可以繼續使用。

305 Use Proxy 客戶請求的文檔應該通過Location頭所指明的代理服務器提取。

307 Temporary Redirect 和302(Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是POST,即使它實際上只能在POST請求的應答是303時 才能重定向。由於這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態代碼:當出現303應答時,瀏覽器可以跟隨重定向的GET和POST請求;如果是307應答,則瀏覽器只 能跟隨對GET請求的重定向。4xx 錯誤

4xx 客戶端錯誤

400 Bad Request 請求出現語法錯誤。

401 Unauthorized 客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏覽器據此顯示用戶名字/密碼對話框,然後在填寫合適的Authorization頭後再次發出請求。

403 Forbidden 資源不可用。服務器理解客戶的請求,但拒絕處理它。通常由於服務器上文件或目錄的權限設置導致。

404 Not Found 無法找到指定位置的資源。這也是一個常用的應答。

405 Method Not Allowed 請求方法(GET、POST、HEAD、Delete、PUT、TRACE等)對指定的資源不適用。

406 Not Acceptable 指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容。

407 Proxy Authentication Required 類似於401,表示客戶必須先經過代理服務器的授權。

408 Request Timeout 在服務器許可的等待時間內,客戶一直沒有發出任何請求。客戶可以在以後重複同一請求。

409 Conflict 通常和PUT請求有關。由於請求和資源的當前狀態相沖突,因此請求不能成功。

410 Gone 所請求的文檔已經不再可用,而且服務器不知道應該重定向到哪一個地址。它和404的不同在於,返回407表示文檔永久地離開了指定的位置,而404表示由於未知的原因文檔不可用。

411 Length Required 服務器不能處理請求,除非客戶發送一個Content-Length頭。

412 Precondition Failed 請求頭中指定的一些前提條件失敗。

413 Request Entity Too Large 目標文檔的大小超過服務器當前願意處理的大小。如果服務器認爲自己能夠稍後再處理該請求,則應該提供一個Retry-After頭。

414 Request URI Too Long URI太長。

416 Requested Range Not Satisfiable 服務器不能滿足客戶在請求中指定的Range頭。

5xx 服務器錯誤

500 Internal Server Error 服務器遇到了意料不到的情況,不能完成客戶的請求。 (服務端的程序錯誤)

501 Not Implemented 服務器不支持實現請求所需要的功能。例如,客戶發出了一個服務器不支持的PUT請求。

502 Bad Gateway 服務器作爲網關或者代理時,爲了完成請求訪問下一個服務器,但該服務器返回了非法的應答。

503 Service Unavailable 服務器由於維護或者負載過重未能應答。例如,Servlet可能在數據庫連接池已滿的情況下返回503。服務器返回503時可以提供一個Retry-After頭。

504 Gateway Timeout 由作爲代理或網關的服務器使用,表示不能及時地從遠程服務器獲得應答。

505 HTTP Version Not Supported 服務器不支持請求中所指明的HTTP版本。

HTTP錯誤代碼詳細介紹

"100" : Continue 
"101" : witching Protocols 
"200" : OK 
"201" : Created 
"202" : Accepted 
"203" : Non-Authoritative Information 
"204" : No Content 
"205" : Reset Content 
"206" : Partial Content 
"300" : Multiple Choices 
"301" : Moved Permanently 
"302" : Found 
"303" : See Other 
"304" : Not Modified 
"305" : Use Proxy 
"307" : Temporary Redirect 
HTTP 400 - 請求無效 
HTTP 401.1 - 未授權:登錄失敗 
HTTP 401.2 - 未授權:服務器配置問題導致登錄失敗 
HTTP 401.3 - ACL 禁止訪問資源 
HTTP 401.4 - 未授權:授權被篩選器拒絕 
HTTP 401.5 - 未授權:ISAPI 或 CGI 授權失敗 
HTTP 403 - 禁止訪問 
HTTP 403 - 對Internet 服務管理器 (HTML)的訪問僅限於 Localhost 
HTTP 403.1 禁止訪問:禁止可執行訪問 
HTTP 403.2 - 禁止訪問:禁止讀訪問 
HTTP 403.3 - 禁止訪問:禁止寫訪問 
HTTP 403.4 - 禁止訪問:要求 SSL 
HTTP 403.5 - 禁止訪問:要求 SSL128 
HTTP 403.6 - 禁止訪問:IP 地址被拒絕 
HTTP 403.7 - 禁止訪問:要求客戶證書 
HTTP 403.8 - 禁止訪問:禁止站點訪問 
HTTP 403.9 - 禁止訪問:連接的用戶過多 
HTTP 403.10 - 禁止訪問:配置無效 
HTTP 403.11 - 禁止訪問:密碼更改 
HTTP 403.12 - 禁止訪問:映射器拒絕訪問 
HTTP 403.13 - 禁止訪問:客戶證書已被吊銷 
HTTP 403.15 - 禁止訪問:客戶訪問許可過多 
HTTP 403.16 - 禁止訪問:客戶證書不可信或者無效 
HTTP 403.17 - 禁止訪問:客戶證書已經到期或者尚未生效 
HTTP 404.1 - 無法找到 Web 站點 
HTTP 404 - 無法找到文件 
HTTP 405 - 資源被禁止 
HTTP 406 - 無法接受 
HTTP 407 - 要求代理身份驗證 
HTTP 410 - 永遠不可用 
HTTP 412 - 先決條件失敗 
HTTP 414 - 請求 - URI 太長 
HTTP 500 - 內部服務器錯誤 
HTTP 500.100 - 內部服務器錯誤 - ASP 錯誤 
HTTP 500-11 服務器關閉 
HTTP 500-12 應用程序重新啓動 
HTTP 500-13 - 服務器太忙 
HTTP 500-14 - 應用程序無效 
HTTP 500-15 - 不允許請求global.asa 
Error 501 - 未實現 
HTTP 502 - 網關錯誤

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