網絡應用

網絡應用

計算機網絡應用體系結構

客戶/服務器(C/S)結構網絡應用

最典型最基本 的網絡應用

特點
網絡通信雙方分為 客戶程序服務器程序嘱能,用戶與用戶之間不進行直接通信仓洼;
服務器程序先運行,做好接收通信的準備;
客戶程序后運行暮刃,主動與服務器進行通信

純P2P結構網絡應用

P2P:Peer to Peer (Peer:對等端)

通信雙方沒有傳統(tǒng)意義上的客戶服務器之分爆土,地位對等椭懊,通信雙方都具備客戶與服務器的特征。

混合接口網絡應用

C/S應用和P2P應用的混合應用

網絡應用通信的基本原理

運行在不同主機上的 應用進程 間以 C/S方式 進行通信步势。

網絡應用編程接口

套接字(Socket)
典型的網絡應用編程接口

端口號
標識套接字的編號

域名系統(tǒng)(DNS)

域名解析
域名 映射為 IP地址

域名解析的原理
為了實現(xiàn)域名解析氧猬,域名系統(tǒng)會建立 分布式 數(shù)據(jù)庫,存儲 域名與IP地址的映射關系 數(shù)據(jù)

層次化域名空間

命名方式
層次樹狀接口命名方式坏瘩。每個域名由不同級別的域名構成盅抚,各個層級域名之間用 隔開

頂級域名的分類
國家頂級域名:cn, us, uk 等
通用頂級域名:com, org, gov, edu 等
基礎結構域名:只有一個(arpa,反響域名解析)

域名服務器

根據(jù)其主要保存的域名信息以及在域名解析過程的作用

本地(默認)域名服務器
主機在網絡地址配置時倔矾,都會配置的妄均,用于保存被查詢過域名的信息

根域名服務器
最重要 的服務器柱锹,全球由 13 個,保存所有 頂級域名服務器的域名IP地址

頂級域名服務器
負責管理在該頂級域名服務器注冊的所有二級域名

中間域名服務器
不是 根域名服務器 頂級域名服務器 權威域名服務器 的域名服務器

權威域名服務器
保存該區(qū)中的所有主機的域名和IP地址的映射

區(qū):一個服務器所負責管轄的范圍

DNS服務器:管轄范圍不以“域”為單位丰包,而已“區(qū)”為單位

域名解析過程

遞歸解析
主機進行域名查詢時禁熏,本地域名服務器沒有被查詢域名信息,則本地域名服務器 代理主機 查詢根域名服務器邑彪。根域名服務器代理本地域名服務器查詢下一個域名服務瞧毙,以此類推。直到得到被查詢域名的IP地址寄症,最后將解析結果發(fā)送給主機宙彪。

迭代解析
主機進行域名查詢時,本地域名服務器沒有被查詢域名信息瘸爽,則先求助于根域名服務器您访。根域名服務器只是將下一步要查詢的服務器服務器告知查詢主機的本地域名服務器,本地域名服務器繼續(xù)查詢下一個域名服務器剪决,直到查詢到被查詢的域名的IP地址灵汪。

萬維網應用

萬維網應用結構

瀏覽器
Web應用的客戶代理(客戶端軟件)

Web服務器
存儲管理供用戶請求瀏覽的Web頁面(Web文檔)

超文本傳輸協(xié)議(HTTP)
客戶和服務器間的交互基于的協(xié)議

URL

統(tǒng)一資源定位符(Universal Resource Locator, URL)

URL地址
存放對象的 主機域名(或IP地址)+ 對象的路徑名

HTTP

Web應用的應用層協(xié)議,定義瀏覽器如何向Web服務器發(fā)送請求柑潦,以及Web服務器如何進行響應享言。

RTT
作為一個時間單位來使用。
例如:HTTP客戶進程向服務器請求建立連接:從客戶發(fā)送連接請求渗鬼,到客戶收到服務器連接確認览露,用時一個 往返時間(Round Trip Time, RTT)

HTTP連接

HTTP基于傳輸層的 TCP 傳輸報文。瀏覽器在向服務器發(fā)送請求之前譬胎,首先建立TCP連接差牛,然后才發(fā)送HTTP請求報文,接口HTTP響應報文堰乔。

根據(jù)TCP策略不同偏化,可以分為:

非持久連接的HTTP
客戶端與服務器建立TCP連接后,通過該連接發(fā)送HTTP請求報文镐侯,接收HTTP響應報文侦讨,然后斷開TCP連接。(建一次苟翻,斷一次)
分為:一條連接韵卤、多條連接(并行連接)
使用:HTTP1.0

持久連接HTTP
分為:非流水方式持久連接流水方式持久連接
使用:HTTP1.x崇猫、HTTP2.0

HTTP1.1使用持久連接的4條約束和規(guī)則

  1. 如果客戶端不期望在連接上發(fā)送其他請求沈条,則應該在最后一條請求報文中包含connection:close首部行
  2. 如果客戶端在收到的響應報文中包含connection:close首部行,則客戶端不能再在這條連接上發(fā)送更多的請求
  3. 每個持久連接只適用于一跳傳輸邓尤,HTTP/1.1代理必須能夠分別管理與客戶端和服務器的持久連接
  4. HTTP/1.1代理服務器不應該與HTTP/1.0客戶端建立持久連接

以請求瀏覽一個引用3張JPEG小圖片的Web頁面為例:

一條連接
8RTT = 1 * 2RTT + 3 * 2RTT
析:
1 * 2RTT拍鲤,代表獲取頁面需要的時間贴谎,為:建立TCP連接的時間 + 獲取頁面的響應報文時間
3 * 2RTT汞扎,請求3張圖片的時間季稳,串行建立HTTP連接

多條連接(并行連接)
4RTT = 1 * 2RTT + 1 * 2RTT
析:
1 * 2RTT,代表獲取頁面需要的時間澈魄,為:建立TCP連接的時間 + 獲取頁面的響應報文時間
1 * 2RTT景鼠,請求3張圖片的時間,并行建立HTTP連接

非流水方式持久連接
5RTT = 1 * 2RTT + 3RTT
析:
1 * 2RTT痹扇,代表獲取頁面需要的時間铛漓,為:建立TCP連接的時間 + 獲取頁面的響應報文時間
3RTT,請求3張圖片的時間鲫构,沒有斷開TCP連接浓恶,只需要串行獲取圖片報文

流水方式持久連接
3RTT = 1 * 2RTT + 1RTT
析:
1 * 2RTT,代表獲取頁面需要的時間结笨,為:建立TCP連接的時間 + 獲取頁面的響應報文時間
1RTT包晰,請求3張圖片的時間,沒有斷開TCP連接炕吸,并行獲取圖片報文

HTTP報文

請求報文:瀏覽器發(fā)送給Web服務器

響應報文:Web服務器發(fā)送瀏覽器

請求報文 響應報文
起始行 請求行:<方法><URL><協(xié)議版本> 請求行:<協(xié)議版本><狀態(tài)碼><短語>
首部行 攜帶附加信息 攜帶附加信息
空白行 CRLF CRLF
報文主體 一般沒有 一般沒有

CRLF
CR:回車
LF:換行

典型的HTTP請求方法

方法 含義
GET 請求讀取由URL所標識的信息伐憾,是最常見的方法
HEAD 請求讀取由URL所標識的信息的首部
POST 給服務器添加注冊信息
OPTION 請求一些選項的信息
PUT 在指明的URL下存儲一個文檔

常見的HTTP狀態(tài)碼

狀態(tài)碼 短語 說明
100 Continue 已成功收到了請求的初始部分,請客戶端繼續(xù)
200 OK 成功赫模,所請求信息在響應報文中
301 Moved Permanently 重定向
400 Bad Request 客戶端請求錯誤
401 Unauthorized 未授權树肃,需要輸入用戶名和密碼
404 Not Found 客戶端請求的對象,在服務器上不存在
451 Unsupported Media Type 不支持的媒體類型
505 HTTP Version Not Supported 請求使用的HTTP版本瀑罗,服務器不支持
狀態(tài)碼類別 取值范圍 作用 說明
1xx 100-199 信息提示 通告信息胸嘴,可能還需要進一步的交互
2xx 200-299 成功 成功完成客戶端請求的操作,并進行響應
3xx 300-399 重定向 資源已移走斩祭,需要向新的URL發(fā)請求
4xx 400-499 客戶端錯誤 由于客戶端請求錯誤劣像,無法成功響應
5xx 500-599 服務器錯誤 由于服務器錯誤,無法成功響應

Cookie

小型文本文件(Cookie)
網站為了辨別用戶身份停忿,進行會話跟蹤而儲存在 用戶本地終端 上的數(shù)據(jù)驾讲。

HTTP服務器不保存客戶的任何信息,被稱為 無狀態(tài)協(xié)議

Cookie技術主要包括4部分內容

步驟 操作
1 HTTP響應報文中的Cookie頭行:用戶的Cookie ID席赂,用戶偏好等
2 用戶瀏覽器本地存儲吮铭、維護和管理Cookie文件
3 HTTP請求報文中的Cookie頭行:用戶已訪問過的網站再次訪問時,瀏覽器會檢索本地Cookie文件
4 網站在后臺數(shù)據(jù)庫中存儲颅停、維護Cookie信息:分配用戶ID谓晌、每個ID用戶在本網站的訪問特征等

Cookie技術最常見的用途

  1. 統(tǒng)計網站的實際訪問人數(shù)、新訪問者和重復訪問者的人數(shù)對比癞揉、訪問者的訪問頻率等數(shù)據(jù)
  2. 限制某些特定用戶的訪問
  3. 存儲用戶訪問過程中的操作習慣和偏好
  4. 記錄用戶登錄網站使用的用戶名纸肉、密碼等信息
  5. 電子商務網站可以利用Cookie實現(xiàn)“購物車”功能溺欧。

Internet電子郵件

郵件系統(tǒng)結構

郵件服務器
電子郵件體系結構的核心

用戶代理
電子郵件應用的客戶端軟件

SMTP(簡單郵件傳輸協(xié)議)
英文全稱:Simple Mail Transfer Protocol,Internet電子郵件中 應用層 協(xié)議

郵件讀取協(xié)議(POP3柏肪、IMAP姐刁、HTTP)
POP3:第三版郵局協(xié)議
IMAP:互聯(lián)網郵件訪問協(xié)議
HTTP:Web郵件系統(tǒng)的郵件讀取協(xié)議

SMTP(簡單郵件傳輸協(xié)議)

實現(xiàn)郵件服務器之間或用戶代理到郵件服務器之間的 郵件傳輸

SMTP通過 3個階段 的應用層交互完成郵件的傳輸:
握手階段、郵件傳輸階段烦味、關閉階段

SMTP定義了 14條命令聂使,每條命令用4個字母組成,例如:
HELO:標識發(fā)送人自己的身份
DATA:通知服務器準備開始發(fā)送郵件內容
QUIT:命令退出

SMTP定義了21中簡答信息谬俄,由3位數(shù)字的代碼開始柏靶,后面附上(也可不附)簡單的文字說明

SMTP的特點

  1. 只能傳送 7位ASCII碼 文本內容,包括SMTP命令溃论、應答消息以及郵件內容
  2. 郵件內容不能包含 CRLF.CRLF屎蜓,因為該信息用于標識郵件內容的結束
  3. SMTP是 推動 協(xié)議(補充:HTTP是 推送 協(xié)議)
  4. 使用的TCP連接是 持久

電子郵件格式與MIME

傳輸 非7位ASCII碼 文本內容時,必須依據(jù)一個 標準(MIME) 將文本內容轉換為 7位ASCII碼 文本內容钥勋,然后再傳輸

MIME
互聯(lián)網郵件擴展(Multipurpose Internet Mail Extensions)

電子郵件格式
首部炬转、空白行、行主體

郵件中常見的首部行內容

含義 是否必填
To 收件人的電子郵件地址
Subject 郵件的主題
Cc 表示應給某某人發(fā)送一個郵件副本
From 表示發(fā)信人的電子郵件地址
Date 發(fā)新日期
Reply-To 對方回信所用的地址

郵件讀取協(xié)議

IMAP POP3
相同點 郵件讀取協(xié)議 郵件讀取協(xié)議
不同點 對郵件的操作 會反映 在服務器上 對郵件的操作 不會反映 在服務器上

FTP

文件傳送協(xié)議(File Transfer Protocol, FTP)笔诵,在互聯(lián)網的兩個主機點實現(xiàn) 文件互傳 的網絡應用的應用層協(xié)議

FTP專門使用一個 獨立的控制連接傳輸控制信息返吻,與傳輸文件信息進行分離,所以將FTP這種控制信息的傳送方式稱為 帶外控制

FTP是 有狀態(tài) 協(xié)議

FTP會話形式是客戶向服務器發(fā)送命令乎婿,服務器發(fā)送狀態(tài)碼和短語作為應答

FTP的命令和應答都是7為ASCII碼格式再控制連接上傳送的测僵,因此,FTP的命令和應答都是讀的

不需要專門的用戶名和命令就可以登錄的FTP服務器稱為 匿名 服務器

FTP 應用結構

主進程
負責接受新的客戶請求谢翎,使用 控制連接(永久) 進行用戶登錄捍靠,服務器授權

從屬進程
負責處理單個客戶請求,與具體客戶進行交互森逮,使用 數(shù)據(jù)連接(臨時) 進行文件傳輸

P2P應用

P2P(Peer to Peer)通信雙方沒有傳統(tǒng)意義上的客戶服務器之分榨婆,地位對等,通信雙方都具備客戶與服務器的特征

P2P應用特點

  1. 應用的對等方是用戶的計算機
  2. 很強的應用規(guī)模伸縮性
  3. 應用在對等方之間進行
  4. 應用充分聚集利用了端系統(tǒng)的計算能力以及網絡傳輸帶寬

Socket編程基礎

套接字(Socket):典型的網絡應用編程接口

端口號:標識套接字

常見的端口號

端口號 描述
20(數(shù)據(jù))褒侧、21(控制) FTP文件傳輸協(xié)議
25 SMTP簡單郵件傳輸協(xié)議
53 DNS域名服務器
80 HTTP超文本傳輸協(xié)議
110 POP3第三版的郵局協(xié)議

Socket API 函數(shù)

創(chuàng)建套接字socket()

套接字類型
傳輸層 UDP 數(shù)據(jù)報類型套接字 SOCK_DGRAM
傳輸層 TCP 流式套接字 SOCK_STREAM
網絡層 原始套接字 SOCK_RAW

綁定套接字的本地端點地址bind()

設置監(jiān)聽listen()

建立連接:TCP客戶端:connect()良风、TCP服務端:accept()

接受數(shù)據(jù)TCP:recv()UDP:recvfrom

發(fā)送數(shù)據(jù)TCP:send()闷供、UDP:sendto

關閉套接字close()

補充信息

帶內控制協(xié)議
命令烟央、數(shù)據(jù)通過一個TCP連接傳輸?shù)膽脤訁f(xié)議,例如:HTTP

帶外控制協(xié)議
專門使用一個獨立的控制連接傳輸控制信息歪脏,與傳輸文件信息進行分離疑俭,例如:FTP

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市婿失,隨后出現(xiàn)的幾起案子钞艇,更是在濱河造成了極大的恐慌啄寡,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哩照,死亡現(xiàn)場離奇詭異挺物,居然都是意外死亡,警方通過查閱死者的電腦和手機葡秒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門姻乓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嵌溢,“玉大人眯牧,你說我怎么就攤上這事±挡荩” “怎么了学少?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秧骑。 經常有香客問我版确,道長,這世上最難降的妖魔是什么乎折? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任绒疗,我火速辦了婚禮,結果婚禮上骂澄,老公的妹妹穿的比我還像新娘吓蘑。我一直安慰自己,他們只是感情好坟冲,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布磨镶。 她就那樣靜靜地躺著,像睡著了一般健提。 火紅的嫁衣襯著肌膚如雪琳猫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天私痹,我揣著相機與錄音脐嫂,去河邊找鬼。 笑死紊遵,一個胖子當著我的面吹牛账千,可吹牛的內容都是我干的。 我是一名探鬼主播癞蚕,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼寝并,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了概荷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤醋旦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后会放,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饲齐,經...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年咧最,在試婚紗的時候發(fā)現(xiàn)自己被綠了捂人。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡矢沿,死狀恐怖滥搭,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情捣鲸,我是刑警寧澤瑟匆,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站栽惶,受9級特大地震影響愁溜,放射性物質發(fā)生泄漏。R本人自食惡果不足惜外厂,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一冕象、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汁蝶,春花似錦渐扮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至啊片,卻和暖如春只锻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背紫谷。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工齐饮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笤昨。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓祖驱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瞒窒。 傳聞我的和親對象是個殘疾皇子捺僻,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內容