天天看點

HTTP和FTP的差別

                                       HTTP和FTP的差別

 簡介

HTTP是Hyper Text Transfer Protocol,超文本傳輸協定;

FTP是File Transfer Protocol,檔案傳輸協定;

簡單說HTTP是面向網頁的,而FTP是面向檔案的。

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://www.microsoft.com,但是在浏覽...w.microsoft.com ,你知道為什麼會多出一個“http”嗎?

(1)HTTP協定是什麼

我們在浏覽器的位址欄裡輸入的網站位址叫做URL (Uniform Resource Locator,統一資源定位符)。就像每家每戶都有一個門牌位址一樣,每個網頁也都有一個Internet位址。當你在浏覽器的位址框中輸入一個URL或是單擊一個超級連結時,URL就确定了要浏覽的位址。浏覽器通過超文本傳輸協定(HTTP),将Web伺服器上站點的網頁代碼提取出來,并翻譯成漂亮的網頁。是以,在我們認識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檔案(網頁)。

我們知道,Internet的基本協定是TCP/IP協定,然而在TCP/IP模型最上層的是應用層(Application layer),它包含所有高層的協定。高層協定有:檔案傳輸協定FTP、電子郵件傳輸協定SMTP、域名系統服務DNS、網絡新聞傳輸協定NNTP和HTTP協定等。

HTTP協定(Hypertext Transfer Protocol,超文本傳輸協定)是用于從WWW伺服器傳輸超文本到本地浏覽器的傳送協定。它可以使浏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正确快速地傳輸超文本文檔,還确定傳輸文檔中的哪一部分,以及哪部分内容首先顯示(如文本先于圖形)等。這就是你為什麼在浏覽器中看到的網頁位址都是以http://開頭的原因。

自WWW誕生以來,一個多姿多彩的資訊和虛拟的世界便出現在我們眼前,可是我們怎麼能夠更加容易地找到我們需要的資訊呢?當決定使用超文本作為WWW文檔的标準格式後,于是在1990年,科學家們立即制定了能夠快速查找這些超文本文檔的協定,即HTTP協定。

(2)HTTP是怎樣工作的

由于HTTP協定是基于請求/響應範式的(相當于客戶機/伺服器)。一個客戶機與伺服器建立連接配接後,發送一個請求給伺服器,請求方式的格式為:統一資源辨別符(URL)、協定版本号,後邊是MIME(關于MIME,看百度百科裡是這樣解釋的http://baike.baidu.com/view/160611.htm)資訊包括請求修飾符、客戶機資訊和可能的内容。伺服器接到請求後,給予相應的響應資訊,其格式為一個狀态行,包括資訊的協定版本号、一個成功或錯誤的代碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的内容。

許多HTTP通訊是由一個使用者代理初始化的并且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在使用者代理和伺服器之間通過一個單獨的連接配接來完成。在Internet上,HTTP通訊通常發生在TCP/IP連接配接之上。預設端口是TCP 80,但其它的端口也是可用的。但這并不預示着HTTP協定在Internet或其它網絡的其它協定之上才能完成。HTTP隻預示着一個可靠的傳輸。

這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯系(HTTP是通過TCP/IP),當然我們也可以通過傳真,隻要商家那邊也有傳真。

在WWW中,“客戶”與“伺服器”是一個相對的概念,隻存在于一個特定的連接配接期間,即在某個連接配接中的客戶在另一個連接配接中可能作為伺服器。基于HTTP協定的客戶/伺服器模式的資訊交換過程,它分四個過程:建立連接配接、發送請求資訊、發送響應資訊、關閉連接配接。這就好像上面的例子,我們電話訂貨的全過程。

其實簡單說就是任何伺服器除了包括HTML檔案以外,還有一個HTTP駐留程式,用于響應使用者請求。你的浏覽器是HTTP客戶,向伺服器發送請求,當浏覽器中輸入了一個開始檔案或點選了一個超級連結時,浏覽器就向伺服器發送了HTTP請求,此請求被送往由IP位址指定的URL。駐留程式接收到請求,在進行必要的操作後回送所要求的檔案。在這一過程中,在網絡上發送和接收的資料已經被分成一個或多個資料包(packet),每個資料包包括:要傳送的資料;控制資訊,即告訴網絡怎樣處理資料包。TCP/IP決定了每個資料包的格式。如果事先不告訴你,你可能不會知道資訊被分成用于傳輸和再重新組合起來的許多小塊。

也就是說商家除了擁有商品之外,它也有一個職員在接聽你的電話,當你打電話的時候,你的聲音轉換成各種複雜的資料,通過電話線傳輸到對方的電話機,對方的電話機又把各種複雜的資料轉換成聲音,使得對方商家的職員能夠明白你的請求。這個過程你不需要明白聲音是怎麼轉換成複雜的資料的。

ftp和http差別

一、HTTP協定簡介 

 1. 概念 

        HTTP: HyperText Transfer Protocal,超文本傳輸協定。它是Web的核心。 

        HTTP協定由兩部分程式實作:一個客戶機程式和一個伺服器程式,它們運作在不同的端系統中,通過交換HTTP封包進行會話。 

        HTTP定義了這些封包的格式,以及客戶機和伺服器是如何進行封包交換的,即:Web客戶機是如何向Web伺服器請求Web頁面,以及伺服器如何将Web頁面傳送給客戶機。 

HTTP和FTP的差別

2. HTTP是一個無狀态協定(stateless protocal) 

        伺服器向客戶機發送被請求的檔案時,并不存儲任何關于該客戶機的狀态資訊。 

        假如某個特定的客戶機在短短的幾秒鐘内兩次請求同一個對象,伺服器并不會因為剛剛為該使用者提供了該對象就不再做出反應,而是重新發送該對象,就像該伺服器已經完全忘記不久之前所做過的事一樣。 

        正因為一個HTTP伺服器并不儲存關于客戶機的任何資訊,是以我們說HTTP是一個無狀态協定。

 3. 非持久連接配接(non-persistent connection)和持久連接配接(persistent connection) 

        (1)在許多網際網路應用中,客戶機和伺服器進行長時間的通信,其中客戶機發出一系列請求,伺服器對每個請求進行響應。    根據不同的應用程式以及應用程式使用的方式,這一系列請求,可以周期性地一個接一個地發出,也可以間斷性地發出。 

         當這種客戶機/伺服器的互動運作于TCP協定之上時,應用程式的研制者需要确定每個請求/響應對,是經一個 單獨的TCP連接配接 發送,還是所有的請求及相應的響應經 相同的TCP連接配接 發送。 

        如果每個請求/響應對,都是經一個 單獨的TCP連接配接 發送,該應用程式被稱為 使用 非持久連接配接;如果所有的請求及相應的響應都經 相同的TCP連接配接 發送,則該應用程式被稱為 使用 持久連接配接。 

      (2)HTTP既可以使用非持久連接配接,也可以使用持久連接配接,預設方式下,HTTP使用持久連接配接。

     (3)非持久連接配接的缺點: 

               1)非持久連接配接必須為每一個請求的對象建立和維護一個全新的連接配接。 

                對于這樣的連接配接,在客戶機和伺服器都要配置設定TCP的緩沖區和變量,這給伺服器帶來了嚴重的負擔,因為一台Web伺服器可能同時服務于數以百計的客戶機請求。 

                2)每一個對象的傳輸時延為兩個RTT(Round-Trip Time,往返時間),即一個RTT用于建立TCP,另一個RTT用于請求和接收一個對象。傳輸時延太大。 

        在持久連接配接的情況下,伺服器在發送響應後保持該TCP連接配接打開。 

        在相同的客戶機和伺服器之間的後續請求和響應封包,可通過相同的連接配接進行傳送。特别是一個完整的Web頁面(如基本的HTML檔案,加上10個圖形),可以用單個持久的TCP連接配接進行傳送。 

        更有甚者,位于同一台伺服器的多個Web頁面,在從該伺服器發送給同一個客戶機時,可以在單個持久的TCP連接配接上進行。對這些對象的請求可一個接一個地發出,而不必等待未決請求的回答,像流水線一樣進行。 

        一般來說,如果一個連接配接經過一定時間間隔(一個可配置的逾時間隔)仍未被使用,HTTP伺服器就關閉該連接配接。 

HTTP的預設模式使用了流水線方式的持久連接配接。 

二、FTP協定 

 FTP:File Transfer Protocol,檔案傳輸協定。 

HTTP和FTP的差別

       使用者通過一個FTP使用者接口與FTP互動。使用者首先提供遠端主機的主機名,使本地主機的FTP客戶機程序建立一個到遠端主機FTP伺服器程序的TCP連接配接。 

        然後,為使使用者能通路遠端主機的賬戶,使用者必須提供一個使用者辨別和密碼,作為FTP指令的一部分在該TCP連接配接上傳送。一旦該伺服器向該使用者授權,使用者就能從本地檔案系統向遠端檔案系統傳送檔案,反之亦然。 

三、HTTP與FTP的異同點 

        1. 同: 

        (1)都是應用層協定; 

        (2)都運作在TCP上,即都使用TCP(而不是UDP)作為其支撐的運輸層協定。 

        2. 異: 

        (1)HTTP是超文本傳輸協定,是面向網頁的;FTP是檔案傳輸協定,是面向檔案的。 

        (2)HTTP協定預設端口:80号端口。FTP協定預設端口:21号端口。 

        (3)FTP的控制資訊是帶外(out-of-band)傳送的,而HTTP的控制資訊是帶内(in-band)傳送的。 

        FTP使用兩個并行的TCP連接配接來傳輸檔案,一個是 控制連接配接(control connection),一個是 資料連接配接(data connection)。 

        控制連接配接用于在兩個主機之間傳輸控制資訊,如使用者辨別、密碼、改變遠端目錄的指令以及“put”和“get”檔案的指令。 

        資料連接配接用于實際傳輸一個檔案。 

HTTP和FTP的差別

        因為FTP協定使用一個分離的控制連接配接,是以稱FTP的控制資訊是帶外傳送的。 

        而HTTP協定是在傳輸檔案的TCP連接配接中發送請求和響應首部行的,是以其控制資訊是帶内傳送的。 

     因為FTP協定使用一個分離的控制連接配接,是以稱FTP的控制資訊是帶外傳送的。 

        而HTTP協定是在傳輸檔案的TCP連接配接中發送請求和響應首部行的,是以其控制資訊是帶内傳送的。 

     (4)FTP伺服器必須在整個會話期間保留使用者的狀态(state)資訊,而HTTP是無狀态的。 

        FTP伺服器必須把特定的使用者賬戶與控制連接配接聯系起來,随着使用者在遠端目錄樹上移動,伺服器必須追蹤使用者在遠端目錄樹上的目前位置。對每個活動着的使用者會話的狀态進行追蹤,可以對FTP會話總數進行限制。 

     (5)FTP的控制連接配接是持久連接配接,資料連接配接是非持久連接配接;而HTTP既可以使用非持久連接配接,也可以使用持久連接配接,預設方式下,HTTP使用持久連接配接。 

當使用者主機與遠端主機開始一個FTP會話前,FTP的客戶機(使用者)首先在21号端口上發起一個用于控制的與伺服器(遠端主機)的TCP連接配接。FTP的客戶機通過該控制連接配接,發送使用者的辨別和密碼,也發送改變遠端目錄的指令。 

        1)FTP的PORT(主動式)工作方式:當需要傳送資料時,用戶端在控制連接配接鍊路上用PORT指令告訴伺服器:“我打開了XXXX端口,你過來連接配接我”。于是伺服器從20端口向用戶端的XXXX端口發送連接配接請求,建立一條資料連接配接鍊路來傳送資料。 

        2)FTP的PASV(被動式)工作方式:當需要傳送資料時,伺服器在控制連接配接鍊路上用PASV指令告訴用戶端:“我打開了XXXX端口,你過來連接配接我”。于是用戶端向伺服器的XXXX端口發送連接配接請求,建立一條資料連接配接鍊路來傳送資料。 

       如果在同一個會話期間,使用者還需要傳輸另一個檔案,FTP則打開另一個資料連接配接。 

         是以,FTP的控制連接配接貫穿了整個使用者會話期間,但是針對會話中的每一次檔案傳輸,都需要建立一個新的資料連接配接。故,控制連接配接是持久連接配接,而資料連接配接是非持久連接配接。 

                                       HTTP和FTP的差別

 簡介

HTTP是Hyper Text Transfer Protocol,超文本傳輸協定;

FTP是File Transfer Protocol,檔案傳輸協定;

簡單說HTTP是面向網頁的,而FTP是面向檔案的。

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://www.microsoft.com,但是在浏覽...w.microsoft.com ,你知道為什麼會多出一個“http”嗎?

(1)HTTP協定是什麼

我們在浏覽器的位址欄裡輸入的網站位址叫做URL (Uniform Resource Locator,統一資源定位符)。就像每家每戶都有一個門牌位址一樣,每個網頁也都有一個Internet位址。當你在浏覽器的位址框中輸入一個URL或是單擊一個超級連結時,URL就确定了要浏覽的位址。浏覽器通過超文本傳輸協定(HTTP),将Web伺服器上站點的網頁代碼提取出來,并翻譯成漂亮的網頁。是以,在我們認識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檔案(網頁)。

我們知道,Internet的基本協定是TCP/IP協定,然而在TCP/IP模型最上層的是應用層(Application layer),它包含所有高層的協定。高層協定有:檔案傳輸協定FTP、電子郵件傳輸協定SMTP、域名系統服務DNS、網絡新聞傳輸協定NNTP和HTTP協定等。

HTTP協定(Hypertext Transfer Protocol,超文本傳輸協定)是用于從WWW伺服器傳輸超文本到本地浏覽器的傳送協定。它可以使浏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正确快速地傳輸超文本文檔,還确定傳輸文檔中的哪一部分,以及哪部分内容首先顯示(如文本先于圖形)等。這就是你為什麼在浏覽器中看到的網頁位址都是以http://開頭的原因。

自WWW誕生以來,一個多姿多彩的資訊和虛拟的世界便出現在我們眼前,可是我們怎麼能夠更加容易地找到我們需要的資訊呢?當決定使用超文本作為WWW文檔的标準格式後,于是在1990年,科學家們立即制定了能夠快速查找這些超文本文檔的協定,即HTTP協定。

(2)HTTP是怎樣工作的

由于HTTP協定是基于請求/響應範式的(相當于客戶機/伺服器)。一個客戶機與伺服器建立連接配接後,發送一個請求給伺服器,請求方式的格式為:統一資源辨別符(URL)、協定版本号,後邊是MIME(關于MIME,看百度百科裡是這樣解釋的http://baike.baidu.com/view/160611.htm)資訊包括請求修飾符、客戶機資訊和可能的内容。伺服器接到請求後,給予相應的響應資訊,其格式為一個狀态行,包括資訊的協定版本号、一個成功或錯誤的代碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的内容。

許多HTTP通訊是由一個使用者代理初始化的并且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在使用者代理和伺服器之間通過一個單獨的連接配接來完成。在Internet上,HTTP通訊通常發生在TCP/IP連接配接之上。預設端口是TCP 80,但其它的端口也是可用的。但這并不預示着HTTP協定在Internet或其它網絡的其它協定之上才能完成。HTTP隻預示着一個可靠的傳輸。

這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯系(HTTP是通過TCP/IP),當然我們也可以通過傳真,隻要商家那邊也有傳真。

在WWW中,“客戶”與“伺服器”是一個相對的概念,隻存在于一個特定的連接配接期間,即在某個連接配接中的客戶在另一個連接配接中可能作為伺服器。基于HTTP協定的客戶/伺服器模式的資訊交換過程,它分四個過程:建立連接配接、發送請求資訊、發送響應資訊、關閉連接配接。這就好像上面的例子,我們電話訂貨的全過程。

其實簡單說就是任何伺服器除了包括HTML檔案以外,還有一個HTTP駐留程式,用于響應使用者請求。你的浏覽器是HTTP客戶,向伺服器發送請求,當浏覽器中輸入了一個開始檔案或點選了一個超級連結時,浏覽器就向伺服器發送了HTTP請求,此請求被送往由IP位址指定的URL。駐留程式接收到請求,在進行必要的操作後回送所要求的檔案。在這一過程中,在網絡上發送和接收的資料已經被分成一個或多個資料包(packet),每個資料包包括:要傳送的資料;控制資訊,即告訴網絡怎樣處理資料包。TCP/IP決定了每個資料包的格式。如果事先不告訴你,你可能不會知道資訊被分成用于傳輸和再重新組合起來的許多小塊。

也就是說商家除了擁有商品之外,它也有一個職員在接聽你的電話,當你打電話的時候,你的聲音轉換成各種複雜的資料,通過電話線傳輸到對方的電話機,對方的電話機又把各種複雜的資料轉換成聲音,使得對方商家的職員能夠明白你的請求。這個過程你不需要明白聲音是怎麼轉換成複雜的資料的。

ftp和http差別

一、HTTP協定簡介 

 1. 概念 

        HTTP: HyperText Transfer Protocal,超文本傳輸協定。它是Web的核心。 

        HTTP協定由兩部分程式實作:一個客戶機程式和一個伺服器程式,它們運作在不同的端系統中,通過交換HTTP封包進行會話。 

        HTTP定義了這些封包的格式,以及客戶機和伺服器是如何進行封包交換的,即:Web客戶機是如何向Web伺服器請求Web頁面,以及伺服器如何将Web頁面傳送給客戶機。 

HTTP和FTP的差別

2. HTTP是一個無狀态協定(stateless protocal) 

        伺服器向客戶機發送被請求的檔案時,并不存儲任何關于該客戶機的狀态資訊。 

        假如某個特定的客戶機在短短的幾秒鐘内兩次請求同一個對象,伺服器并不會因為剛剛為該使用者提供了該對象就不再做出反應,而是重新發送該對象,就像該伺服器已經完全忘記不久之前所做過的事一樣。 

        正因為一個HTTP伺服器并不儲存關于客戶機的任何資訊,是以我們說HTTP是一個無狀态協定。

 3. 非持久連接配接(non-persistent connection)和持久連接配接(persistent connection) 

        (1)在許多網際網路應用中,客戶機和伺服器進行長時間的通信,其中客戶機發出一系列請求,伺服器對每個請求進行響應。    根據不同的應用程式以及應用程式使用的方式,這一系列請求,可以周期性地一個接一個地發出,也可以間斷性地發出。 

         當這種客戶機/伺服器的互動運作于TCP協定之上時,應用程式的研制者需要确定每個請求/響應對,是經一個 單獨的TCP連接配接 發送,還是所有的請求及相應的響應經 相同的TCP連接配接 發送。 

        如果每個請求/響應對,都是經一個 單獨的TCP連接配接 發送,該應用程式被稱為 使用 非持久連接配接;如果所有的請求及相應的響應都經 相同的TCP連接配接 發送,則該應用程式被稱為 使用 持久連接配接。 

      (2)HTTP既可以使用非持久連接配接,也可以使用持久連接配接,預設方式下,HTTP使用持久連接配接。

     (3)非持久連接配接的缺點: 

               1)非持久連接配接必須為每一個請求的對象建立和維護一個全新的連接配接。 

                對于這樣的連接配接,在客戶機和伺服器都要配置設定TCP的緩沖區和變量,這給伺服器帶來了嚴重的負擔,因為一台Web伺服器可能同時服務于數以百計的客戶機請求。 

                2)每一個對象的傳輸時延為兩個RTT(Round-Trip Time,往返時間),即一個RTT用于建立TCP,另一個RTT用于請求和接收一個對象。傳輸時延太大。 

        在持久連接配接的情況下,伺服器在發送響應後保持該TCP連接配接打開。 

        在相同的客戶機和伺服器之間的後續請求和響應封包,可通過相同的連接配接進行傳送。特别是一個完整的Web頁面(如基本的HTML檔案,加上10個圖形),可以用單個持久的TCP連接配接進行傳送。 

        更有甚者,位于同一台伺服器的多個Web頁面,在從該伺服器發送給同一個客戶機時,可以在單個持久的TCP連接配接上進行。對這些對象的請求可一個接一個地發出,而不必等待未決請求的回答,像流水線一樣進行。 

        一般來說,如果一個連接配接經過一定時間間隔(一個可配置的逾時間隔)仍未被使用,HTTP伺服器就關閉該連接配接。 

HTTP的預設模式使用了流水線方式的持久連接配接。 

二、FTP協定 

 FTP:File Transfer Protocol,檔案傳輸協定。 

HTTP和FTP的差別

       使用者通過一個FTP使用者接口與FTP互動。使用者首先提供遠端主機的主機名,使本地主機的FTP客戶機程序建立一個到遠端主機FTP伺服器程序的TCP連接配接。 

        然後,為使使用者能通路遠端主機的賬戶,使用者必須提供一個使用者辨別和密碼,作為FTP指令的一部分在該TCP連接配接上傳送。一旦該伺服器向該使用者授權,使用者就能從本地檔案系統向遠端檔案系統傳送檔案,反之亦然。 

三、HTTP與FTP的異同點 

        1. 同: 

        (1)都是應用層協定; 

        (2)都運作在TCP上,即都使用TCP(而不是UDP)作為其支撐的運輸層協定。 

        2. 異: 

        (1)HTTP是超文本傳輸協定,是面向網頁的;FTP是檔案傳輸協定,是面向檔案的。 

        (2)HTTP協定預設端口:80号端口。FTP協定預設端口:21号端口。 

        (3)FTP的控制資訊是帶外(out-of-band)傳送的,而HTTP的控制資訊是帶内(in-band)傳送的。 

        FTP使用兩個并行的TCP連接配接來傳輸檔案,一個是 控制連接配接(control connection),一個是 資料連接配接(data connection)。 

        控制連接配接用于在兩個主機之間傳輸控制資訊,如使用者辨別、密碼、改變遠端目錄的指令以及“put”和“get”檔案的指令。 

        資料連接配接用于實際傳輸一個檔案。 

HTTP和FTP的差別

        因為FTP協定使用一個分離的控制連接配接,是以稱FTP的控制資訊是帶外傳送的。 

        而HTTP協定是在傳輸檔案的TCP連接配接中發送請求和響應首部行的,是以其控制資訊是帶内傳送的。 

     因為FTP協定使用一個分離的控制連接配接,是以稱FTP的控制資訊是帶外傳送的。 

        而HTTP協定是在傳輸檔案的TCP連接配接中發送請求和響應首部行的,是以其控制資訊是帶内傳送的。 

     (4)FTP伺服器必須在整個會話期間保留使用者的狀态(state)資訊,而HTTP是無狀态的。 

        FTP伺服器必須把特定的使用者賬戶與控制連接配接聯系起來,随着使用者在遠端目錄樹上移動,伺服器必須追蹤使用者在遠端目錄樹上的目前位置。對每個活動着的使用者會話的狀态進行追蹤,可以對FTP會話總數進行限制。 

     (5)FTP的控制連接配接是持久連接配接,資料連接配接是非持久連接配接;而HTTP既可以使用非持久連接配接,也可以使用持久連接配接,預設方式下,HTTP使用持久連接配接。 

當使用者主機與遠端主機開始一個FTP會話前,FTP的客戶機(使用者)首先在21号端口上發起一個用于控制的與伺服器(遠端主機)的TCP連接配接。FTP的客戶機通過該控制連接配接,發送使用者的辨別和密碼,也發送改變遠端目錄的指令。 

        1)FTP的PORT(主動式)工作方式:當需要傳送資料時,用戶端在控制連接配接鍊路上用PORT指令告訴伺服器:“我打開了XXXX端口,你過來連接配接我”。于是伺服器從20端口向用戶端的XXXX端口發送連接配接請求,建立一條資料連接配接鍊路來傳送資料。 

        2)FTP的PASV(被動式)工作方式:當需要傳送資料時,伺服器在控制連接配接鍊路上用PASV指令告訴用戶端:“我打開了XXXX端口,你過來連接配接我”。于是用戶端向伺服器的XXXX端口發送連接配接請求,建立一條資料連接配接鍊路來傳送資料。 

       如果在同一個會話期間,使用者還需要傳輸另一個檔案,FTP則打開另一個資料連接配接。 

         是以,FTP的控制連接配接貫穿了整個使用者會話期間,但是針對會話中的每一次檔案傳輸,都需要建立一個新的資料連接配接。故,控制連接配接是持久連接配接,而資料連接配接是非持久連接配接。