一、應用層協議原理
1.套接字(Socket):主機地址+端口地址。(通常為32位IP地址和16位端口號組成,總長度為48位)
2.進程通過套接字來接收和發送報文。因特網運輸層將所提供的服務整合成兩種傳輸服務,TCP與UDP。
TCP:
特點:面向連接(C/S)、可靠傳輸、流量控制、擁塞控制
應用(括號對應協議):e-mail(stmp)、遠程終端訪問(telnet)、Web(http)、文件傳輸(ftp)等。
UDP:
特點:不可靠傳輸
應用:流媒體(專有協議,如RealNetworks)、IP電話(專有協議,如Vocaltec)等。
二、WEB應用和HTTP協議
1.WEB構成
a.WEB服務器:IIS、Apache、Tomcat等
b.瀏覽器:IE、Firefox、Chrome等
c.協議:信息傳輸協議--HTTP,信息表達協議--HTML
2.WEB內容的表達
a.WEB頁面由一些對象組成,如HTML文件、JPEG圖片、音頻等
b.任何一個對象都可以用URL來定位
3.WEB內容的傳輸--HTTP協議
a.客戶端/服務器模式:瀏覽器請求、接收、展示WEB對象;服務器發送對象對請求響應
b.http1.0:非持久性連接。頁面有多少對象就要多少連接(步驟:TCP連接、對象請求/傳送)
c.http1.1:持久連接。保持連接用於后續對象的傳送,占用服務器資源少。
4.HTTP請求報文
a.一般格式如下
b.支持的方法:
HTTP1.0定義的方法有:GET(請求指定URL的對象)、POST(提交表單、也可以同時請求一個WEB頁面)、HEAD(請求服務器返回一個響應報文,常用以進行故障跟蹤)。
HTTP1.1新定義的方法有:PUT(上傳的文件放在實體主體字段中,目標路徑有URL字段標明)、DELETE(刪除URL字段中指定的文件)。
5.HTTP響應報文
a.一般格式如下
b.常見的HTTP響應狀態碼和短語
· 200 OK (請求成功)
· 301 Moved Permanently (被請求的對象被移動過)
· 400 Bad Request (服務器不理解的請求)
· 404 Not F6ound (找不到請求的對象)
· 505 HTTP Version Not Supported (不支持請求報文使用的HTTP協議版本)
6.用戶-服務器交互:Cookie
a.Web站點使用Cookie的目的:限制用戶的訪問,把內容和用戶身份關聯起來。
b.Cookie技術的組成部分:
·在HTTP響應報文中有一個Cookie首部行;
·在HTTP請求報文中也有一個Cookie首部行;
·在用戶的端系統中保留了一個Cookie文件,由用戶瀏覽器負責管理;
·在Web站點有一個后端數據庫。
c.Cookie工作流程:如下圖
d.優點:認證、推薦、用戶會話狀態、購物車等。
7.WEB緩存
a.目的:加速客戶端訪問頁面速度,減少時延;減少局域網與外部網絡數據交換量,節省寬帶開支。
b.效果評估:命中率與延時
c.緩存報文:幾個關鍵字:Last-Modified、If-Modified-Since、304 Not Modified
三、文件傳送協議:FTP
1.FTP簡況
使用TCP協議傳輸數據、C/S模式、端口:21/20
2.FTP主要功能
a.客戶機與服務器之間交換一個或多個文件,文件可復制不可移動
b.能夠傳輸多種類型、多種結構、多種格式的文件
c.提供對本地和遠程系統的目錄操作功能,如改變目錄
d.具有對文件改名、顯示內容、改變屬性、刪除之功能以及其他一些操作
e.具有匿名FTP功能
3.FTP與HTTP對比
a.相同點:均使用TCP協議。
b.不同點:
·FTP的控制信息是帶外傳送的,HTTP的控制信息則是帶內傳送的。FTP存在兩個並行的連接,分別是:控制連接(21)和數據連接(20)。
·FTP連接是有狀態的,HTTP無狀態。有狀態:在整個會話期間維護用戶狀態信息。把用戶賬戶和控制連接聯系起來、追蹤用戶在遠程目錄樹上的位置、對活動着的用戶會話的狀態進行追蹤,以限制FTP會話總數。
c.常用的FTP命令:
·USER username;
·PASS password
·LIST
·RETR filename
·STOR filename
d.常見的FTP應答:
·331 Username OK, password required
·125 data connection already open; transfer starting
·425 Can't open data connection
·452 Error writing file
四、E-mail
1.構成
a.用戶代理:郵件報文編輯、查閱,如FoxMail等。
b.郵件服務器:郵箱、報文。
c.郵件傳輸協議(如SMTP):客戶端(發送郵件到服務器)、服務器(接收和轉發)。
d.郵局協議(如POP)。
2.SMTP協議
a.SMTP協議簡述:
·使用TCP可靠傳送郵件報文,端口25;
·直接傳輸:發送服務器到接收服務器;
·傳輸三個階段:握手、報文傳輸、結束;
·命令/響應交互:命令(ASCII文本)、響應(狀態碼和短語);
·郵件報文必須使用7-bit ASCII表示。
b.傳輸過程:
·用戶代理發送消息給目標郵箱test@mail.com
·發送郵件服務器將消息保存到消息隊列
·SMTP客戶端與test的郵件服務器建立TCP連接
·SMTP客戶端通過TCP連接發送消息到test的郵件服務器
·消息存儲,並等待被閱讀。
c.交互樣例:如下圖
3.SMTP評述
a.使用持續連接
b.要求報文(首部&信體)全部使用7-bit ASCII碼
c.某些代碼組合不允許出現在報文中(e.g., CRLF.CRLF),需要進行編碼(base-64或quoted printable)
d.SMTP服務器用CRLF.CRLF表示郵件報文的結束
4.SMTP vs HTTP
a.都使用ASCII命令/響應交互,狀態碼
b.HTTP:pull SMTP:push
c.HTTP每個對象分裝在各自的響應報文中,SMTP多個對象在一個多分部的報文中傳送
5.郵件報文格式
首部(header):
To:xxx@mail.com
From:yyy@mail.com
Subject:......
信體(body,報文):
ASCII characters only
6.非ASCII碼數據的MIME擴展
使用MIME擴展對消息進行轉碼