HTTP協議與FTP協議的區別【轉】


項目中應用到ftp,將ftp的筆記上傳一下。

簡單的說:

HTTP是Hyper Text Transfer Protocol,超文本傳輸協議;面向網頁的。

FTP是File Transfer Protocol,文件傳輸協議;面向文件的。(soap的默認端口號8880,ftp的代理服務器的默認端口號是21)

1.FTP
(1)FTP比HTTP復雜
FTP和HTTP一樣都是Internet上廣泛使用的協議,用來在兩台計算機之間互相傳送文件。相比於HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。

(2)FTP協議有兩種工作方式:PORT方式和PASV方式,中文意思為主動式和被動式。
PORT(主動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。於是服務器從20端口向客戶端的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。

PASV(被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。於是客戶端向服務器的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。

從上面可以看出,兩種方式的命令鏈路連接方法是一樣的,而數據鏈路的建立方法就完全不同。而FTP的復雜性就在於此。

2.HTTP
在我們認識HTTP之前,有必要先弄清楚URL的組成,例如:http://www.microsoft.com/china/index.htm。它的含義如下:
1. http://:代表超文本傳輸協議,通知microsoft.com服務器顯示Web頁,通常不用輸入;
2. www:代表一個Web(萬維網)服務器;
3. Microsoft.com/:這是裝有網頁的服務器的域名,或站點服務器的名稱;
4. China/:為該服務器上的子目錄,就好像我們的文件夾;

5. Index.htm:index.htm是文件夾中的一個HTML文件(網頁)。

HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,哪部分內容首先顯示(如文本先於圖形)等。這就是你為什么在瀏覽器中看到的網頁地址都是以http://開頭的原因。

基於HTTP協議的客戶/服務器模式的信息交換過程,它分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。即為客戶端(瀏覽器)發送一個url請求給服務器(2個過程,客戶端先與服務器建立連接,之后客戶端發送url請求)。之后服務器返回相應信息給客戶端,最后關閉連接。

3.TCP/IP與UDP/IP
下面的圖表試圖顯示不同的TCP/IP和其他的協議在最初OSI模型中的位置:(主要為物數網傳應)
7 應用層 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示層 例如XDR、ASN.1、SMB、AFP、NCP
5 會話層 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
4 傳輸層 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
3 網絡層 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
2 數據鏈路層 例如以太網、令牌環、HDLC、幀中繼、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 物理層 例如線路、無線電、光纖、信鴿
通過上圖可以清晰的看出:TCP與UDP協議實際上是屬於傳輸層的,而HTTP與FTP,Telnet是屬於應用層的。說的直白的:http和ftp可以基於tcp/udp來實現.

TCP/IP代表傳輸控制協議/網際協議,指的是一系列協議。“IP”代表網際協議,TCP和UDP使用該協議從一個網絡傳送數據包到另一個網絡。把IP想像成一種高速公路,它允許其它協議在上面行駛並找到到其它電腦的出口。TCP和UDP是高速公路上的“卡車”,它們攜帶的貨物就是像HTTP,文件傳輸協議FTP這樣的協議等。

網絡有一段比較容易理解的介紹:“我們在傳輸數據時,可以只使用(傳輸層)TCP/IP協議,但是那樣的話,如果沒有應用層,便無法識別數據內容,如果想要使傳輸的數據有意義,則必須使用到應用層協議,WEB使用HTTP協議作應用層協議,以封裝HTTP 文本信息,然后使用TCP/IP做傳輸層協議將它發到網絡上。

4.http與ftp的區別:
1).FTP要比HTTP早出現10年左右。

2).HTTP協議是用來瀏覽網站的,而FTP是用來訪問和傳輸文件的,FTP文件傳輸有點批量上傳和維護網站的意思,而HTTP文件傳輸更多的是為終端用戶提供文件傳輸,比如電影、圖片、音樂之類。

3).HTTP 頭:HTTP 頭包含了 metadata ,比如說最后更改的日期、編碼方式、服務器名稱版本還有其他的一些信息,而這些在FTP中是不存在的。

4).HTTP中的動態端口:FTP一個最大的問題就是它使用兩個連接,第一個連接用來發送控制指令,當接受或者發送數據的時候,又打開第二個TCP連接。而HTTP在雙向傳輸中使用動態端口。

5).HTTP中的持久連接:對一個HTTP會話來講,客戶端可以維護一個單個的連接並使用它進行任意數量的數據傳輸。FTP每次有數據的需要時都創建一個新的連接。重復的創建新的連接帶來的體驗並不好,因為每次創建連接都必須讓雙方握手驗證,這消耗了很多時間。

6).HTTP中的壓縮算法:HTTP提供了一個在一些壓縮算法中客戶端和服務器共同協商選擇的辦法。其中gzip可以說是最有影響力的一種,而FTP中並不存在這種復雜的算法。

7).HTTP支持代理:HTTP一個很大的特點就是支持代理,這種功能是構建在協議里的,而FTP並不支持。


————————————————
版權聲明:本文為CSDN博主「LittleCadet」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/sx1119183530/article/details/79940734


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM