WebService 服務中MTOM 和Base64傳輸附件的區別

       在於銀聯對接過程中需要獲取附件,銀聯規範中傳輸附件的形式有2中,一種是MTOM,一種是Base64,那麼這2種方式有什麼區別呢?

Base64:如果是做支付系統的話,系統之間的報文交互都需要使用Base64對明文進行轉碼,然後再進行簽名或加密,之後再進行傳輸。所以做支付系統的都會用到base64進行轉碼,那麼base64到底有什麼用呢?

       其實系統之間的報文交互無非就是參數的傳輸,參數都是英文的當然沒有什麼問題,但是如果傳輸一個文件呢?或者是傳輸一個圖片?base64就是通過使用64個可打印的字符來表示二進制的文件或者是圖片或者是特殊字符,把二進制的數據轉換爲字符串,當圖片或者是特殊字符通過base64的轉碼之後,都能通過64個可打印的字符來表示,那麼就可以通過報文來傳輸了。

當作爲傳輸方的時候,要使用base進行編碼,當作爲接收方的時候,要進行解碼。

但是base64編碼後的文本要比原來大了三分之一左右,如果傳輸的數據量太大的話,額外消耗的性能也是非常明顯的。

 

MTOM:MTOM(Message Transmission Optimization Mechanism)消息優化傳輸機制,用來以原始字節的方式傳輸包含SOAP消息的較大二進制附件,從而使所傳輸的消息較小。MTOM傳輸方式就是針對base64弊端而改進的方式,對於大量數據的傳遞,不會進行Base64編碼,而是直接以附件的二進制原始數據的形式封裝在SOAP消息的 MIME 部分,進行傳輸。簡而言之,就是MTOM會把附件通過二進制的方式進行傳輸,我們拿到的就是byte數組,而使用base64的話,我們拿到的就是String字符串。
 

 

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