<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Apache模塊 mod_mime_magic | [說明](#calibre_link-11) | 通過讀取部分文件內容自動猜測文件的MIME類型 | | --- | --- | | [狀態](#calibre_link-12) | 擴展(E) | | [模塊名](#calibre_link-13) | mime_magic_module | | [源文件](#calibre_link-14) | mod_mime_magic.c | ### 概述 本模塊采取Unix系統下`file(1)`命令相同的方法:檢查文件開始的幾個字節,來判定文件的[MIME類型](#calibre_link-223 "see glossary")。它被作為當`mod_mime`無法解析時,用來處理的"第二道防線"。 本模塊源自于Unix系統命令`file(1)`的一個自由版本,它通過對來自文件的內容使用"Magic數字"和其它一些線索來判定這個文件的具體內容是什么。本模塊只有當"Magic文件"在`MimeMagicFile`指令中指定時才有效。 ## "Magic文件"的格式 Magic文件的內容是由4-5列的純文本組成的。文件中允許包含空行,但會被忽略。注釋行使用井號(`#`)來引導。剩余的行按下面列被分解: | 列 | 描述 | | --- | --- | | 1 | 開始檢查的起始字節,"&gt;"表示基于前面的非"&gt;"行。 | | 2 | 匹配的數據類型 `byte` 單個字符 `short` 機器字節順序的16位整數 `long` 機器字節順序的32位整數 `string` 任意長度的字符串 `date` 長整型的日期(從UNIX紀元/1970以來的秒數) `beshort` big-endian 16位整數 `belong` big-endian 32位整數 `bedate` big-endian 32位整型日期 `leshort` little-endian 16位整數 `lelong` little-endian 32位整數 `ledate` little-endian 32位整型日期 | | 3 | 匹配的數據內容 | | 4 | 如果匹配文件的MIME類型 | | 5 | 如果匹配文件的MIME編碼方式(可選) | 例如,下面的Magic文件行可以認出一些音頻格式: ``` # Sun/NeXT audio data 0 string .snd >12 belong 1 audio/basic >12 belong 2 audio/basic >12 belong 3 audio/basic >12 belong 4 audio/basic >12 belong 5 audio/basic >12 belong 6 audio/basic >12 belong 7 audio/basic >12 belong 23 audio/x-adpcm ``` 還有下面的示例可以區分帶`*.doc`擴展名的文件到底是Microsoft Word文檔還是Frame Maker文檔(兩種有相同后綴名但不兼容文件格式)。 ``` # Frame 0 string \<MakerFile application/x-frame 0 string \<MIFFile application/x-frame 0 string \<MakerDictionary application/x-frame 0 string \<MakerScreenFon application/x-frame 0 string \<MML application/x-frame 0 string \<Book application/x-frame 0 string \<Maker application/x-frame # MS-Word 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword ``` 一個可選的MIME編碼方式可以包含在第五列上。例如下面的行可以認出gzip壓縮文件并設定他們的編碼方式。 ``` # gzip (GNU zip, not to be confused with # [Info-ZIP/PKWARE] zip archiver) 0 string \037\213 application/octet-stream x-gzip ``` ## 性能問題 并不是每個系統都適用本模塊的。如果你的系統吞吐量已經接近極限,或者你在進行web服務器的基準測試,你可能不希望啟動這個模塊,因為它的處理會顯著影響服務器的性能。 然而,已經有人在努力改進最初的`file(1)`代碼,使它能更適合在一個非常繁忙的web服務器上工作。這主要是用在那種有數千用戶自己發布文檔的web服務器上。這在互聯網上可能是非常常見的情況。很多情況下,如果服務器能就文件的內容作出比用文件名來區別的方式更加智能化的判斷是非常有用的。甚至在當用戶沒有合理地命名他們的文件的情況下,它也可以用來減少那些諸如:"為什么我的頁面不工作啊"之類的報怨。你必須自己決定這額外的開銷是否適用于你的環境。 ## 注意 下面關于`mod_mime_magic`的記錄包含在這里,是按照最初捐助者的版權限制和為了得到他們的承認。 mod_mime_magic: 通過文件的Magic Number查找文件的MIME類型 Copyright (c) 1996-1997 Cisco Systems, Inc. 本軟件由Cisco系統有限公司于1997年7月提交給Apache組織。本軟件源代碼的進一步修訂及新版本的派生必須承認Cisco系統有限公司是本模塊的原始捐助者。所有其它許可與使用條件都屬于Apache組織。 本模塊的部分源代碼派生于最初發布在comp.sources.unix上的file命令的自由版本。根據要求,下面包含了那個程序的版權信息。 - Copyright (c) Ian F. Darwin, 1987\. Written by Ian F. Darwin. 本軟件不隸屬于美國電話電報公司(AT&T)或者加利福尼亞大學董事會的任何許可。 在遵循以下限制的基礎上,任何人被授權免費地在任何計算機系統上為任何目的使用、修改與重新分發這個軟件: 1. 不管后果有多嚴重,甚至是直接由于程序的缺陷造成的,程序的作者對于由于使用這個軟件而造成的任何直接或間接的后果不承擔任何責任。 2. 在清晰或冗長的聲明中,軟件的來源必須無誤地敘述。由于少量用戶可能會閱讀源代碼,源代碼中也必須包含這一聲明。 3. 改動版本必須明白標明,必須與原軟件嚴格區分開來。由于少量用戶可能會閱讀源代碼,源代碼中也必須包含這一聲明。 4. 本聲明不能被刪除或更改。 為了符合MrDarwin的條款:這是從自由的"file"命令而來并經過了明顯的修改的版本。 * 當從Apache的一個版本轉移到下一個時,為了編輯方便,所有代碼在一個文件中。 * 內存分配通過Apache應用程序接口的緩沖池結構完成。 * 在需要調用其它Apache應用程序接口例程的地方,所有的函數被提供必需的Apache應用程序接口及服務結構。(例如:通常在它自身或被調用的程序里包含了日志記錄,文件操作或內存分配) * Magic結構從數組被轉換成了單終點鏈表,因為它每次只增長一條記錄,它只按順序方式處理,同時Apache API沒有realloc()的替代處理方法。 * 函數被改變成從參數獲取服務器配置,而不是全局變量。(現在它應該是可重入的,但沒有在線程化的環境中測試過) * 原來用來打印結果到stdout的地方,被改成將結果保存到一個列表,這個列表被用來在Apache請求記錄中設置MIME類型。 * 因為在這里再也不會用到命令行標志,它們被刪除了。 ## MimeMagicFile 指令 | [說明](#calibre_link-18) | 使用特定的Magic文件激活根據文件內容確定文件MIME類型的功能 | | --- | --- | | [語法](#calibre_link-19) | `MimeMagicFile file-path` | | [作用域](#calibre_link-20) | server config, virtual host | | [狀態](#calibre_link-21) | 擴展(E) | | [模塊](#calibre_link-22) | mod_mime_magic | `MimeMagicFile`指令用來激活本模塊,默認的Magic文件保存在`conf/magic`中。相對路徑是相對于`ServerRoot`的。虛擬主機會使用與主服務器相同的配置文件,除非使用了更特別的設定。在后者情況下,這些特別的設定會覆蓋主服務的設定。 ### 示例 ``` MimeMagicFile conf/magic ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看