###什麼是Hessian安全
Hessian是由caucho提供的一種開源的遠程通信協議。 採用二進制 RPC 協議,基於 HTTP 傳輸,服務器端不用另開放防火牆端口。 協議的規範是公開的,能夠用於任意語言。 採用客戶機/服務器模式(C/S)。 請求程序就是一個客戶機,而服務提供程序就是一個服務器。 客戶機調用進程發送一個有進程參數的調用信息到服務進程,而後等待應答信息。 在服務器端,進程保持睡眠狀態直到調用信息的到達爲止。 當一個調用信息到達,服務器得到進程參數,計算結果,發送答覆信息,而後等待下一個調用信息,最後,客戶端調用進程接收答覆信息, 得到進程結果,而後調用執行繼續進行。服務器
###Hessian協議工做流程圖 ***客戶端程序請求服務端函數 ***網絡
1.調用客戶端句柄,執行傳送參數。函數
2.調用本地系統內核發送網絡消息。編碼
3.消息傳送到遠程主機。對象
4.服務器句柄獲得消息並取得參數。blog
5.執行遠程過程。進程
***服務端函數返回結果給客戶端 ***圖片
1.執行的過程將結果返回服務器句柄。事務
2.服務器句柄返回結果,調用遠程系統內核。
3.消息傳回本地主機。
4.客戶句柄由內核接收消息。
5.客戶接收句柄返回的數據。
###Hessian的優、缺點 優勢 1.目前的WEB端基本上都支持hessian,hessian自己就是使用http的傳輸協議,來保證安全性和穩定性。
2.通訊速度不錯。(數據少的時候)。
3.能夠以對象方式接受數據。
缺點
1.報錯機制不夠完善。
2.沒有事務處理。
3.PHP和Java之間常常會出現一些問題,如編碼,需強制轉換字符等。
4.返回數據量大,總會感受有延遲的狀況。
###Hessian的部分問題 一、是基於什麼協議實現的? 基於Binary-RPC協議實現。 二、怎麼發起請求? 需經過Hessian自己提供的API來發起請求。 三、怎麼 將請求轉化爲符合協議的格式的? Hessian經過其自定義的串行化機制將請求信息進行序列化,產生二進制流。 四、使用什麼 傳輸協議傳輸? Hessian基於Http協議進行傳輸。 五、響應端基於什麼機制來接收請求? 響應端根據Hessian提供的API來接收請求。 六、怎麼將流還原爲傳輸格式的? Hessian根據其私有的串行化機制來將請求信息進行反序列化,傳遞給使用者時已經是相應的請求信息對象了。 七、處理完畢後怎麼迴應? 處理完畢後直接返回,hessian將結果對象進行序列化,傳輸至調用端。