網路應用和web應用 MOOC

2021-10-06 02:44:43 字數 3631 閱讀 6066

第一節課

網路應用:

網路應用有哪些特點:

與單機應用有哪些本質不同?

網路應用首先要有基礎環境,一部分軟體跑到我們自己的機子上,一部分抱在伺服器上面

比如 瀏覽器跑在我們的機子上,還有一些軟體跑在就是某個硬體伺服器上,他們之間互動就構成了我們網路應用

網路應用的體系結構:有三個

1.客戶機/伺服器結構(c/s)

2.點對點結構  ptop結構

3.混合結構

c/s有乙個功能的劃分,乙個使用服務,乙個提供服務

伺服器特點要求

7*24小時不間斷提供服務

利用大量伺服器實現可擴充套件性(併發使用者數很大,一台機器承擔不下來,大量伺服器採取並行的技術,分布式的技術來實現可擴充套件性),一般稱作伺服器農場

客戶端沒啥要求,特點:

與伺服器通訊,使用伺服器提供的資源

間歇性接入網路

可能使用動態ip位址

不會與其他客戶機直接通訊

web就是典型的c/s結構

pc執行瀏覽器,伺服器執行web伺服器軟體,apache軟體   http請求http響應交流

純ptop

任意端系統/結點之間可以直接通訊

節點間接性接入網路

結點可能改變ip位址

例子:檔案共享

優點:高度可伸縮   缺點:難於管理

混合型結構

典型的例子--napste應用:

檔案的傳輸使用p2p結構

檔案的搜尋採用c/s結構--集中式(比如我要找一下動漫片或者歷史片)

每個結點向**伺服器登記自己的內容,每個結點向**伺服器提交查詢請求,查詢感興趣的

會有乙個**伺服器,檔案的提供者會向伺服器報告檔案的屬性(檔名,大小啊,標註啥的),檔案的利用者會發請求去**伺服器查詢,到真正的檔案共享,檔案傳輸的時候是利用p2p結構,檔案的利用者和提供者直接傳輸

伺服器只是起到了乙個查詢的作用,它儲存的是乙個目錄資訊,真的的檔案在檔案的提供者那裡,它不儲存檔案

第二節課:

一些軟體跑在我們的機子上,一些軟體跑在伺服器的機子上,要保證兩個正常的協作,兩個程序之間是要進行通訊了,也就是網路應用的核心,客戶機和某一台伺服器上的程序通訊

同一臺主機不同程序的通訊:程序間通訊機制,有作業系統提供

不同主機執行的程序進行通訊:訊息交換(報文交換)

客戶機程序:是主動發起通訊

伺服器上的程序:等待通訊請求的程序

p2p結構上:也有客戶機程序和伺服器程序

程序之間通訊是利用套接字socket傳送接收訊息

類似於乙個寄信的過程:

我們把信放到門外的信箱,然後通過基礎設施信會到達對方門外的信箱,接收方從門外獲取訊息

傳輸基礎設施向程序提供api:

傳輸協議的選擇,

引數的設定

網路應用開發就叫socket程式設計

http server:80埠  mail server:25埠

ip加埠號唯一標識程序   程序的定址

網路應用需要遵循應用層協議,互動的軟體要符合

公開協議:有rfc(乙個標準)定義維護,

允許互操作,大家都遵循乙個協議,我的瀏覽器和你的伺服器是乙個協議就可以訪問

私有協議:

多數p2p檔案共享

原理上都最好建立在http協議上,這樣你能獲取更多的資源

協議內容:訊息的型別,請求,響應 訊息的語法:訊息中有哪些字段,每個字段如何表示等

第三節課:

網路應用對傳輸服務的需求

1.資料丟失/可靠性

某些網路要100%的可靠性:比如檔案傳輸

打網路**,你說一句話對方半分鐘後才收到

3.頻寬

某些應用適合任何頻寬 email

internet提供的傳輸服務

tcp服務:全雙工

面向連線,可靠傳輸,流量控制,滑動視窗,擁塞控制,擁塞視窗,不提供延時,最小頻寬的保障(傳送緩衝區,接受緩衝區)

udp服務:無連線,不可靠,

為啥需要udp:它做的東西是任何乙個傳輸層都能做的基本服務,但是他提供了自由,給應用層提供了極大的發揮空間,給了我們掌控傳輸

不能丟的用tcp

網路**用udp,這樣在應用層可以保證他的頻寬,

第四節課 web應用

web是由網頁構成的,網頁之間互相連線

網頁包含多個物件

每乙個網頁包含乙個基本的html檔案,包含對其他物件引用的連線

物件的 定址

url:統一資源定位器

協議://網域名稱:埠/路徑

web(全球資訊網)應用遵循http協議

採用c/s結構

客戶:請求,接受,展示web物件

伺服器:響應客戶的請求,傳送物件

使用tcp傳輸服務

伺服器在80埠等待客戶請求

瀏覽器發起到服務端的連線

伺服器接受tcp連線

然後開始通訊,互動資訊

關閉連線

http是無狀態協議

伺服器不維護任何有客戶端過去發的請求訊息第五屆課

第五節課

web使用http協議

http連線的兩種型別

http底下依靠tcp建立連線,對tcp的使用有兩種不同的使用方法

非永續性連線,每個tcp連線最多允許傳輸乙個物件,1.0版本使用非永續性連線

永續性連線,每個tcp連線允許傳輸多個物件,1.1版本使用永續性連線

非永續性連線

rtt:從客戶端傳送乙個小的資料報到伺服器並返回的時間

發起建立tcp連線:1個rtt

傳送http請求到http響應前幾個位元組到達 乙個rtt

響應訊息中包含的檔案和物件到達(可能裡面的碰到了超連結又去獲取)

所以需要時間為:2rtt+檔案傳送時間

解析html檔案,並顯示出來,解析顯示的過程發現還有超連線,接著根伺服器要,連線已經關了,為每個超連結重複上面的步驟

載入出來

非永續性連線的問題:

1.每個物件都需要2個rtt以上的時間  時間比較長,要是在包含幾個超連結

2.作業系統需要為每個tcp連線開銷資源

3.瀏覽器優化的時候他發現要10個,不然就並行建立10個tcp連線,會增大伺服器的壓力

永續性連線:

傳送響應後,伺服器保持tcp連線的開啟,

後序的 http訊息可以通過這個連線傳送

無流水的 永續性連線

客戶端收到前乙個響應才傳送新的請求,每個被引用的物件()用乙個rtt(不用建立連線的哪個rtt)

有流水機制的持久連線

客戶端只要遇到乙個引用物件就盡快發出請求,理想情況,這些物件只需要乙個rtt

個人覺得長連線和短連線是載入乙個頁面時用到的,特別是頁面裡面會包含一些超連結

http的長連線和短連線,本質上是tcp的長連線和短連線

http1.1預設使用長連線,當乙個網頁開啟完成之後,連線不會馬上關閉,再次訪問這個服務是,會繼續用這個連線

cookie是一般是乙個**需要保留使用者的賬戶資訊用的,而長連線是比較內部的,跟cookie沒啥關係,他是乙個傳送請求時是否用了同乙個連線。

網路應用 web應用

world wide web tim berners lee 網頁 網頁互相鏈結 網頁 web page 包含多個物件 objects 物件的定址 addressing url uniform resoure locator 統一資源定位器 rfc1738 scheme host port path...

網路應用 Web應用之HTTP連線

非永續性連線 nonpersistent http 每個tcp連線最多允許傳輸乙個物件 http 1.0版本使用非永續性連線 永續性連線 persistent http 每個tcp連線允許傳輸多個物件 http 1.1 版本預設使用永續性連線 從客戶端傳送乙個很小的資料報到伺服器並返回所經歷的時間 ...

網路應用 Web應用之HTTP訊息格式

http協議有兩類訊息 1 請求訊息 2 響應訊息 ascii 人直接可讀 http請求的訊息的通用格式 post方法 網頁中經常需要填寫 from 在請求訊息的訊息體 entity body 中上傳客戶端的輸入 url方法 使用get方法 輸入資訊通過request行的url欄位上傳 head 請...