dime[直接網際訊息封裝格式]

dime[直接網際訊息封裝格式]
更多義項 ▼ 收起列表 ▲

直接網際訊息封裝格式,即DIME(Direct Internet Message Encapsulation)是一種現代計算機網頁程式編寫格式。

概述

直接網際訊息封裝( Direct Internet Message Encapsulation,即 DIME)格式提供了一種簡單而又標準的機制,這個機制可以把多文本( multiple text)和二進制數據記錄組合到一個單一的二進制流中,記錄可以以一種高效解析且易於實現的獨立編碼方式保存。你可以在這兒找到DIME規範。

優點

DIME優於MIME和raw XML,當然,其它系統也規定了多文本和二進制數據合併的方案,但是它們都僅對某方面的問題進行了最佳化,這就使得它們在非電子郵件通信、套用內部通信的場合下不盡完善。

MIME由2045到2049號Internet標準(草案)所定義的多用途網際郵件擴充協定(Multipurpose Internet Mail Extensions 即MIME)是目前最顯眼的可選項。MIME是電子郵件檔案附屬檔案的標準,它僅僅是文本和二進制部分的訊息。因此,MIME在內部把文本和二進制部分轉化為全文本格式。這種轉化不僅使得二進制部分轉化後的長度大大增加,還導致了交叉平台上的字元集和編碼問題。

Raw XML Raw XML提供了另外一種表示文本中二進制信息的機制――CDATA類型。但是CDATA塊不能被XML解析器解析,因此它不符合XML文檔“好的組織( well-formedness)”的要求。把二進制數據轉換到模64( base64)或者類似的進行類似的編碼後保存到CDATA塊,這樣的CDATA塊會使得你的XML組織的很差。

DIME與MIME和XML文檔中的CDATA部分不同,DIME把文本和二進制部分都轉換成單一的二進制訊息。把二進制部分按它原來的二進制方式保存可以免除DIME解析器從文本中恢復二進制編碼的開銷和複雜度,而這些開銷和複雜度是MIME和CDATA/XML所必不可少的。確實,DIME部分中的簡單長度定義分界( simple length- delimited)性質使得DIME解析器可以不用考慮二進制數據的內部就可以分開記錄,而過去這么做需要初始二進制頭。

程式清單A給出了用一個免費可用的Java DIME實現來創建DIME訊息的簡單代碼。頭幾行代碼用一個FileOutputStream對象做為輸出源創建了一個DimeGenerator對象。代碼的第二和第三部分分別加入了一個從磁碟文本檔案創建的DIME記錄。請注意MEDIA_TYPE TypeNameFormat的用法,還要注意“text/plain”和“image/gif”MIME類型用來指示DIME記錄的內容。MIME類型僅是DIME規範指出的可以提供DIME記錄所保存數據信息的方法中的一種,但是可能是最有用的一種了。

清單A中代碼的最後一部分結束DIME訊息並關閉輸出數據檔案。DimeGenerator類可以使用所有I/O操作的流,這樣就消除了訊息建立期間用來保存DIME記錄所需要使用的大量記憶體。還要注意 addRecord方法(本例調用兩次)所用到的最後一個參數(布爾型)。如果參數取值為“真”,代表添加到DimeGenerator的記錄是最後一個記錄,如果再添加記錄就會導致IllegalStateException(非法狀態例外)。

相關詞條

熱門詞條

聯絡我們