網路程式核心:寫出不同端系統下能彼此通訊的程式
cs架構
p2p架構
原理有總是開啟的伺服器,服務來自瀏覽器的請求
主機(對等方)之間直接通訊
特點客戶之間不能直接通訊,伺服器具有公開的ip位址
不需要伺服器,自擴充套件性(用得人越多越快)
缺點isp需要大量配置主機,供電維護,支付頻寬費用
「非對稱」頻寬應用,安全性,使用者不願提供頻寬
「非對稱」頻寬應用就是伸手黨太多,大家下完就跑,都不上傳的
運輸層協議能夠為呼叫他的應用程式提供什麼樣的服務?
首先我們看應用程式服務要求的分類
要求定義
可靠資料傳輸
將資料正確,完全交付
可用吞吐量
傳送程序向接收程序交付位元的速率
定時傳送注入進套接字的每個位元到達接收方的套接字不遲於某個時間段
安全性提供一種以上的安全服務
web是乙個網際網路應用
http是web的應用層協議,定義了客戶向伺服器請求頁面的,以及伺服器傳輸頁面的方式;
tcp是http的支撐協議,每次連線都要先發起tcp連線
伺服器不儲存客戶的任何資訊,所以我們稱http是乙個無狀態協議
接下來重點介紹http協議
在非持續連線下,每次當客戶端要請求乙個頁面時,時延將花費2rtt
第乙個rtt建立連線,第二個rtt傳送請求和接收物件
同理,如果是持續連線,除了第乙個請求是2rtt外,後面的都只需要乙個rtt
解釋如下
如果你大概能理解,並且能大概記住一些,那麼我們來看更一般的表達
當請求傳送之後,伺服器會先返回一種叫做「狀態碼」的東西,一般來說,如果不是2開頭,都表示失敗
狀態碼含義
理解200
請求成功
成功返回頁面
301請求物件已經被永久轉移
網頁移到了別的**
400請求不能被伺服器理解
報文格式錯了
404請求文件不在伺服器上
網頁被刪了
505伺服器不支援請求報文的http協議
因為有1.0,1.1兩種http版本,不支援報文寫的版本
http服務是無狀態的,也就是不記錄之前訪問的訊息,難道我們每次上**都要登入嗎?顯然不是,所以引入cookie機制作為無狀態缺陷的補充
假定有乙個人用瀏覽器逛亞馬遜的**
特別注意,cookie內的資訊是存在瀏覽器的cookie檔案中,伺服器儲存的是cookie的id,當使用者發來請求的時候,瀏覽器會從cookie檔案獲取**識別碼,然後加到請求報文中,伺服器根據這個資訊,就可以識別使用者,自動登入,以及做很多事情
簡單來講,和快取記憶體一樣,裝乙個快取器,先把常常訪問的伺服器頁面儲存在快取器裡面,然後設定瀏覽器先訪問快取器,如果有就可以返回,沒有就再去伺服器找
可以大大縮短時間
這個會和時延結合起來,應該會有很多計算,所以多練就可以了,原理還是挺簡單的
如下圖,接入鏈路15m/s速率dr,區域網100m/s速率di,
瀏覽器每秒15個請求(n),每個請求1m(l),
網際網路上時延2秒 (t)
區域網流量強度為 n*l/di=15*1/100=0.15
接入鏈路流量強度為 n*l/dr=1
也就是說接入鏈路時延無限大
總時延大概是x分鐘+2s
當增加web快取的時候,有一部分請求可以直接在快取器中找到,稱為命中
,假設命中率為0.4(一般在0.2~0.7)
所以只有60%的請求需要伺服器傳送
區域網流量強度 0.15 ,時延忽略不計
接入鏈路流量強度 n*0.6*l/dr=0.6 ,時延約為幾十毫秒,與2秒比微不足道
由於每次不命中都會需要2秒網際網路時延,每次訪問web快取都花費0.01秒
所以總時延為 0.4*0.01+0.6*(0.01+2)
只需要1.2秒多一點
一句話:每次請求web快取器命中時,
web快取器傳送get訊息詢問伺服器是否有更新,訊息裡面包含了web快取的頁面最後更新的時間last-modified,如果伺服器發現有更新,就傳送頁面到web快取
如果沒有更新,伺服器同樣要傳送報文通知,其中包含響應304 not modified
計算機網路(三) 應用層協議HTTP協議
超文字傳輸協議。採用客戶端 伺服器模式通過響應 請求方式在兩者間進行資訊傳輸。我們瀏覽的每乙個網頁都是基於 http 協議呈現的。http協議是一種無狀態協議。協議不記錄客戶端的每次請求。1 客戶機與伺服器建立連線 只要單擊某個超連結,http就開始工作。2 連線後,客戶機傳送乙個請求 請求方式格式...
計算機網路 應用層 HTTP協議
是七層osi模型的第七層。應用層直接和應用程式介面並提供常見的網路應用服務。應用層也向表示層發出請求。應用層是開放系統的最高層,是直接為應用程序提供服務的。其作用是在實現多個系統應用程序相互通訊的同時,完成一系列業務處理所需的服務。超文字傳輸協議,是乙個屬於應用層的物件導向的協議,由於其簡捷 快速的...
計算機網路 應用層 HTTP協議
1.http概況 web的應用層協議是超文字傳輸協議 http 它是web的核心。http由兩部分程式實現 乙個客戶機程式和乙個伺服器程式,它們執行在不同的端系統中,通過交換http報文進行對話。http定義了這些報文的格式以及客戶機和伺服器是如何進行報文交換的。下圖是其基本思想 當使用者請求乙個w...