基本應用層的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 連接用于數據傳輸??刂七B接使用類似 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 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
