轉 基本應用層的TCP/IP協議介紹 HTTP/FTP/POP/SMTP
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
基本應用層的TCP/IP協議介紹 (HTTP/FTP/POP/SMTP)
來源:http://www.networkdictionary.com/chinese/protocols/tcpip.php
HTTP:超文字傳輸協議
更詳細的HTTP協議頭資訊參考我blog之前的文章。
HTTP:超文字傳輸協議 | |
HTTP:Hypertext Transfer Protocol |
超文字傳輸協議(HTTP)是應用層協議,由於其簡捷、快速的方式,適用於分散式和合作式超媒體資訊系統。自 1990 年起, HTTP 就已經被應用於 WWW 全球資訊服務系統。 HTTP 允許使用自由答覆的方法表明請求目的,它建立在統一資源識別器(URI)提供的參考原則下,作為一個地址(URL)或名字(URN),用以標誌採用哪種方法,它用類似於網路郵件和多用途網際郵件擴充協議(MIME)的格式傳遞訊息。 HTTP 也可用作普通協議,實現使用者代理與連線其它 Internet 服務(如 SMTP 、 NNTP 、 FTP 、 GOPHER 及 WAIS )的代理伺服器或閘道器之間的通訊,允許基本的超媒體訪問各種應用提供的資源,同時簡化了使用者代理系統的實施。 HTTP 是一種請求 / 響應式的協議。一個客戶機與伺服器建立連線後,傳送一個請求給伺服器,請求的格式是:統一資源識別符號(URI)、協議版本號,後面是類似 MIME 的資訊,包括請求修飾符、客戶機資訊和可能的內容。伺服器接到請求後,給予相應的響應資訊,其格式是:一個狀態行包括資訊的協議版本號、一個成功或錯誤的程式碼,後面也是類似 MIME 的資訊,包括伺服器資訊、實體資訊和可能的內容。 HTTP 的第一版本 HTTP/0.9 是一種簡單的用於網路間原始資料傳輸的協議。而由 RFC 1945 定義的 HTTP/1.0 ,在原 HTTP/0.9 的基礎上,有了進一步的改進,允許訊息以類 MIME 資訊格式存在,包括請求 / 響應正規化中的已傳輸資料和修飾符等方面的資訊。但是, HTTP/1.0 沒有充分考慮到分層代理伺服器、高速緩衝儲存器、持久連線需求或虛擬主機等方面的效能。相比之下, HTTP/1.1 要求更加嚴格以確保服務的可靠性。關於安全增強版的 HTTP (即S-HTTP),將在相關檔案中再作介紹。 |
協議結構 |
HTTP報文由從客戶機到伺服器的請求和從伺服器到客戶機的響應構成。 請求報文格式如下: |
請求行 | 通用資訊頭 | 請求頭 | 實體頭 | 報文主體 |
請求行以方法欄位開始,後面分別是 URL 欄位和 HTTP 協議版本欄位,並以 CRLF 結尾。SP 是分隔符。除了在最後的 CRLF 序列中 CF 和 LF 是必需的之外,其他都可以不要。有關通用資訊頭,請求頭和實體頭方面的具體內容可以參照相關檔案。 應報文格式如下: |
狀態行 | 通用資訊頭 | 響應頭 | 實體頭 | 報文主體 |
狀態碼元由3位數字組成,表示請求是否被理解或被滿足。原因分析是對原文的狀態碼作簡短的描述,狀態碼用來支援自動操作,而原因分析用來供使用者使用。客戶機無需用來檢查或顯示語法。有關通用資訊頭,響應頭和實體頭方面的具體內容可以參照相關檔案。 |
相關協議 | WWW、FTP、STMP、NNTP、Gopher、WAIS、DNS、S-HTTP |
組織來源 | HTTP 定義在 IETF (http://www.ietf.org) 的 RFC 1945和2616中。 |
相關連結 | http://www.javvin.com/protocol/rfc1945.pdf :Hypertext Transfer Protocol – HTTP 1.0 http://www.javvin.com/protocol/rfc2616.pdf :Hypertext Transfer Protocol – HTTP 1.1 |
FTP:檔案傳輸協議
FTP:檔案傳輸協議 | |
(FTP:File Transfer Protocol) |
檔案傳輸協議(FTP)使得主機間可以共享檔案。 FTP 使用 TCP 生成一個虛擬連線用於控制資訊,然後再生成一個單獨的 TCP 連線用於資料傳輸。控制連線使用類似 TELNET 協議在主機間交換命令和訊息。 FTP 的主要功能如下:
FTP ,儘管可以直接被終端使用者使用,但其應用主要還是通過程式實現。 FTP 控制幀即指 TELNET 交換資訊,包含 TELNET 命令和選項。然而,大多數 FTP 控制幀是簡單的 ASCII 文字,可以分為 FTP 命令或 FTP 訊息。 FTP 訊息是對 FTP 命令的響應,它由帶有解釋文字的應答程式碼構成。 |
協議結構 |
命令 | 描述 |
ABOR | 中斷資料連線程式 |
ACCT <account> | 系統特權帳號 |
ALLO <bytes> | 為伺服器上的檔案儲存器分配位元組 |
APPE <filename> | 新增檔案到伺服器同名檔案 |
CDUP <dir path> | 改變伺服器上的父目錄 |
CWD <dir path> | 改變伺服器上的工作目錄 |
DELE <filename> | 刪除伺服器上的指定檔案 |
HELP <command> | 返回指定命令資訊 |
LIST <name> | 如果是檔名列出檔案資訊,如果是目錄則列出檔案列表 |
MODE <mode> | 傳輸模式(S=流模式,B=塊模式,C=壓縮模式) |
MKD <directory> | 在伺服器上建立指定目錄 |
NLST <directory> | 列出指定目錄內容 |
NOOP | 無動作,除了來自伺服器上的承認 |
PASS <password> | 系統登入密碼 |
PASV | 請求伺服器等待資料連線 |
PORT <address> | IP 地址和兩位元組的埠 ID |
PWD | 顯示當前工作目錄 |
QUIT | 從 FTP 伺服器上退出登入 |
REIN | 重新初始化登入狀態連線 |
REST <offset> | 由特定偏移量重啟檔案傳遞 |
RETR <filename> | 從伺服器上找回(複製)檔案 |
RMD <directory> | 在伺服器上刪除指定目錄 |
RNFR <old path> | 對舊路徑重新命名 |
RNTO <new path> | 對新路徑重新命名 |
SITE <params> | 由伺服器提供的站點特殊引數 |
SMNT <pathname> | 掛載指定檔案結構 |
STAT <directory> | 在當前程式或目錄上返回資訊 |
STOR <filename> | 儲存(複製)檔案到伺服器上 |
STOU <filename> | 儲存檔案到伺服器名稱上 |
STRU <type> | 資料結構(F=檔案,R=記錄,P=頁面) |
SYST | 返回伺服器使用的作業系統 |
TYPE <data type> | 資料型別(A=ASCII,E=EBCDIC,I=binary) |
USER <username>> | 系統登入的使用者名稱 |
標準 FTP 資訊如下: |
響應程式碼 | 解釋說明 |
110 | 新檔案指示器上的重啟標記 |
120 | 伺服器準備就緒的時間(分鐘數) |
125 | 開啟資料連線,開始傳輸 |
150 | 開啟連線 |
200 | 成功 |
202 | 命令沒有執行 |
211 | 系統狀態回覆 |
212 | 目錄狀態回覆 |
213 | 檔案狀態回覆 |
214 | 幫助資訊回覆 |
215 | 系統型別回覆 |
220 | 服務就緒 |
221 | 退出網路 |
225 | 開啟資料連線 |
226 | 結束資料連線 |
227 | 進入被動模式(IP 地址、ID 埠) |
230 | 登入因特網 |
250 | 檔案行為完成 |
257 | 路徑名建立 |
331 | 要求密碼 |
332 | 要求帳號 |
350 | 檔案行為暫停 |
421 | 服務關閉 |
425 | 無法開啟資料連線 |
426 | 結束連線 |
450 | 檔案不可用 |
451 | 遇到本地錯誤 |
452 | 磁碟空間不足 |
500 | 無效命令 |
501 | 錯誤引數 |
502 | 命令沒有執行 |
503 | 錯誤指令序列 |
504 | 無效命令引數 |
530 | 未登入網路 |
532 | 儲存檔案需要帳號 |
550 | 檔案不可用 |
551 | 不知道的頁型別 |
552 | 超過儲存分配 |
553 | 檔名不允許 |
相關協議 | TELNET |
組織來源 | FTP 由 IETF(http://www.ietf.org)在 RFC 959 中,並由2228、2640 和 2773 重新更新。 |
相關連結 | http://www.javvin.com/protocol/rfc959.pdf :File Transfer Protocol(FTP) |
POP & POP3:郵局協議(郵局協議第3版)
POP & POP3:郵局協議(郵局協議第3版) | |
POP & POP3:Post Office Protocol |
POP 協議允許工作站動態訪問伺服器上的郵件,目前已發展到第三版,稱為 POP3 。 POP3 允許工作站檢索郵件伺服器上的郵件。 POP3 傳輸的是資料訊息,這些訊息可以是指令,也可以是應答。 建立一個分散式電子郵件系統有多種不同的技術支援和途徑: POP (郵局協議)、 DMSP (分層式電子郵件系統協議)和 IMAP (因特網資訊訪問協議)。其中, POP 協議建立最早因此也最為人們瞭解; DMSP 具有較好的支援“無連線”操作的效能,但其很大程度上僅限於單個應用程式(PCMAIL ); IMAP 提供了 POP 和 DMSP 的擴充套件集並提供對遠端郵件訪問的三種支援方式:離線、線上和無連線。 POP 協議支援“離線”郵件處理。其具體過程是:郵件傳送到伺服器上,電子郵件客戶端呼叫郵件客戶機程式以連線伺服器,並下載所有未閱讀的電子郵件。這種離線訪問模式是一種儲存轉發服務,將郵件從郵件伺服器端送到個人終端機器上,一般是 PC 機或 MAC 。一旦郵件傳送到 PC 機或 MAC 上,郵件伺服器上的郵件將會被刪除。 POP3 並不支援對伺服器上郵件進行擴充套件操作,此過程由更高階的 IMAP4 完成。 POP3 使用 TCP 作為傳輸協議。 |
協議結構 |
POP3 是傳送在客戶機和伺服器間的 ASCII 資訊。POP3 命令摘要: |
命令 | 描述 |
USER | 使用者名稱 |
PASS | 使用者密碼 |
STAT | 伺服器上的郵件資訊 |
RETR | 獲取的資訊數 |
DELE | 刪除的資訊數 |
LIST | 顯示的資訊數 |
TOP <messageID> <nombredelignes> | 從頭開始(包含協議頭)列印X行資訊 |
QUIT | 退出POP3伺服器 |
可選POP3命令: APOP name digest AUTHORIZATION 狀態有效; TOP msg n TRANSACTION 狀態有效; UIDL [msg] POP3 Replies: + OK - ERR。 |
相關協議 | SMTP、IMAP4、TCP、POP |
組織來源 | POP3 由 IETF(www.ietf.org)定義在 RFC 1939中。 |
相關連結 | http://www.javvin.com/protocol/rfc1939.pdf:Post Office Protocol – Version 3 |
SMTP:簡單郵件傳輸協議
SMTP:簡單郵件傳輸協議 | |
(SMTP:Simple Mail Transfer Protocol) |
SMTP 是一種提供可靠且有效電子郵件傳輸的協議。 SMTP 是建模在 FTP 檔案傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件資訊並提供來信有關的通知。 SMTP 獨立於特定的傳輸子系統,且只需要可靠有序的資料流通道支援。 SMTP 重要特性之一是其能跨越網路傳輸郵件,即“ SMTP 郵件中繼”。通常,一個網路可以由公用網際網路上 TCP 可相互訪問的主機、防火牆分隔的 TCP/IP 網路上 TCP 可相互訪問的主機,及其它 LAN/WAN 中的主機利用非 TCP 傳輸層協議組成。使用 SMTP ,可實現相同網路上處理機之間的郵件傳輸,也可通過中繼器或閘道器實現某處理機與其它網路之間的郵件傳輸。 在這種方式下,郵件的傳送可能經過從傳送端到接收端路徑上的大量中間中繼器或閘道器主機。域名服務系統(DNS)的郵件交換伺服器可以用來識別出傳輸郵件的下一跳 IP 地址。 |
協議結構 |
SMTP 命令是傳送於 SMTP 主機之間的 ASCII 資訊,可能命令如下所示: |
命令 | 描述 |
DATA | 開始資訊寫作 |
EXPN <string> | 在指定郵件表中返回名稱 |
HELO <domain> | 返回郵件伺服器身份 |
HELP <command> | 返回指定命令中的資訊 |
MAIL FROM <host> | 在主機上初始化一個郵件會話 |
NOOP | 除伺服器響應確認以外,沒有引起任何反應 |
QUIT | 終止郵件會話 |
RCPT TO <user> | 指明誰收到郵件 |
RSET | 重設郵件連線 |
SAML FROM <host> | 傳送郵件到使用者終端和郵箱 |
SEND FROM <host> | 傳送郵件到使用者終端 |
SOML FROM <host> | 傳送郵件到使用者終端或郵箱 |
TURN | 接收端和傳送端交換角色 |
VRFY <user> | 校驗使用者身份 |
相關協議 | POP3、IMAP4、TCP、POP、FTP |
組織來源 | SMTP 由 IETF(www.ietf.org)定義在 RFC2821中。 |
相關連結 | http://www.javvin.com/protocol/rfc2821.pdf:Simple Mail Transfer Protocol |