分析FTP協議與http協議的區別

最近打算依賴netty寫一個FTP服務器所以有去了解了一下FTP發現這個協議並不像是http協議一樣一次傳輸的那種協議。下面是一些我簡單學習後的理解,記錄下來,方便回顧
FTP協議不同於http協議的地方首先就是他固定了端口號,20和21並且將用戶消息和文件數據的傳輸分開發送,由兩個不同的socket進行傳輸。
大概的流程是

  • 用戶對FTP服務器發起連接建立的請求建立了一個tcp連接
  • 用戶通過21端口發送給FTP服務器一些用戶消息一般都是以一種usercaohao123456789這樣:消息類型+消息數據的格式,user代表用戶名後面就是真正的用戶賬號,再比如pass123456那麼pass就是代表密碼後面就是真正的密碼數據
  • 當用戶發出了一些需要傳輸數據的請求後比如要求文件目錄,或者是要求上傳或是下載文件的話,就會通過20口將數據傳輸回去

而之前常常在用的http協議很明顯是一個一次傳輸就通過各種的消息頭和消息行就講一切都說明的一清二楚了。甚至http1.0是沒有keepalive的是一次通信就是一次完整的數據傳輸,而FTP協議則是以一個長久的連接爲基礎進行消息傳遞來明確用戶想要的結果

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