一、網路應用程式體系結構、
1、 客戶機/伺服器體系結構
2、 p2p體系結構:其實在這種體系結構中也有客戶機和伺服器,只是每個主機既充當了客戶機,又充當了伺服器的角色。
發起主動連線的是客戶機,被動連線的是伺服器。
二、套接字
程序是通過稱為套接字的軟體介面在網路上傳送和接受資料。打個比方:程序是一座房子,而套接字就是門。當乙個程序向另乙個程序傳送資料時,它把報文推出門(套接字)。該傳送程序認為門到另一側的門之間有傳輸的基礎設施。程序並不需要關心傳輸的具體細節,他只需要將資料推出門即可。
套接字是同一臺主機內應用層與運輸層之間的介面。開發者可以控制套接字在應用程式端的所有東西,但對套接字在運輸層端卻沒有控制能力。但是應用程式可以對也僅限於對運輸層的操作有:選擇運輸層協議,設定運輸層引數:最大快取,最大報文長度。
三、http概況
1、 http是乙個無狀態協議,即伺服器向客戶機傳送被請求的檔案時,並不儲存客戶機的狀態資訊。即乙個客戶機在短短幾秒鐘時間內多次傳送同乙個連線請求,伺服器會多次傳送同乙個檔案給客戶機。
2、 http預設為持久鏈結。其採用tcp為其服務。
四、報文格式
1、請求報文
//請求行,3個字段:方法(get,post,head,put,delete),url,http版本
//首部行
//附加的回車換行
//實體主體
1) get方式:
將引數放在了請求行中的url中,所以我們平時在瀏覽器中的位址列能看見,沒有實體主體部分。
2) post方式:
將引數放在實體主體部分。
兩者用途的區別:
3、 應答報文
五、使用者與伺服器的互動:cookie
因為http協議是「無狀態」的,即不儲存客戶機的資訊。但是這樣會影響到兩者的互動,例如網上**購物,選購了某產品後進行付款時,跳到另乙個頁面後重新傳送http請求,那麼伺服器就不知道客戶機買了什麼商品,所以需要一種機制來記錄客戶的資訊,這種機制就稱為cookie。
使用方式:當乙個客戶機向伺服器傳送http請求時,伺服器會生成乙個識別碼,將其放在資料庫裡,在給客戶機的響應報文中也新增了該識別碼,set-cookie:***x;客戶機收到此響應報文後,生成乙個cookie檔案,並在其中新增一行:伺服器名:識別碼。當這個客戶機再次向該伺服器傳送http請求的時候,會根據cookie檔案在請求報文中新增cookie:***x,伺服器就可以根據此來識別客戶端了。
cookie另乙個典型的應用是當登入乙個**時,**往往會請求使用者輸入使用者名稱和密碼,並且使用者可以勾選「下次自動登入」。如果勾選了,那麼下次訪問同一**時,使用者會發現沒輸入使用者名稱和密碼就已經登入了。這正是因為前一次登陸時,伺服器傳送了包含登入憑據(使用者名稱加密碼的某種加密形式)的cookie到使用者的硬碟上。第二次登入時,(如果該cookie尚未到期)瀏覽器會傳送該cookie,伺服器驗證憑據,於是不必輸入使用者名稱和密碼就讓使用者登入了。
六、web快取
web快取器也叫**伺服器。一般部署在乙個機構內部,這樣可以加快網路訪問的速度。
因為機構內部之間的網速很快,而到外部的網速很慢。我們採用乙個快取器來保持客戶機的近期請求的內容,如果有客戶機再次請求此內容是,web緩衝器就直接將內容發給客戶機。
過程:在乙個機構內部,每台客戶機先設定web快取器,每次請求外網的web頁面時,都要通過**伺服器。當乙個客戶機請求的內容沒有在web快取器時。web快取器便向外網**該請求,外網給web快取器響應請求後,web快取器在將該響應請求**給客戶機的同時,會在快取器上保留響應報文的乙個副本,便於下次有客戶機再次請求此資源。
在響應報文的首部行中有一欄位last-modified,儲存著資源的修改時間。如果客戶機下次請求同樣的內容,快取器僅僅是將副本再次傳送給客戶機,這樣便會造成資料的不一致,因為這段時間以來,外網中的內容可能已經發生了改變。所以當客戶機向web快取器請求的時候,快取器必然會向外網再次傳送請求報文,不過如果在快取中已有副本,則根據last-modified來設定請求報文 if-modified-since欄位。外網中的伺服器收到請求報文後,根據 if-modified-since來判斷是否要向web快取器再次傳送請求內容。web快取器根據情況向客戶機**新的或自己已有的副本。通過這種方式,就節約了網路頻寬,提高了訪問的速度。
判斷規則:last-modified:2023年9月14日11:04:57是外網伺服器中資源的修改時間。 if-modified-since:2023年9月14日11:04:57 是表示請求2023年9月14日11:04:57以來修改的內容,如果該資源在這段時間來沒有被修改,則不傳送請求資源。
【參考】
1. http post get 本質區別詳解
2. http之get/post請求區別
3.
第二章 應用層
1.客戶機 伺服器體系結構 cs 有乙個總開打的主機稱為伺服器,它服務於來自許多其他稱為客戶機的主機請求,客戶機之間不直接通訊。2.p2p體系結構 對總是開啟的基礎設施伺服器有最小的依賴,任意間斷連線的主機對 對等方 直接相互通訊。p2p體系結構的最突出特性之一是它的自擴充套件性。1.tcp 全雙工...
計網第二章 應用層協議原理
借鑑文章 計算機網路 應用層協議原理 知乎 zhihu.com 應用層協議原理 知乎 zhihu.com 8條訊息 執行在不同主機上的程序通訊再來一燉的部落格 csdn部落格 不同計算機系統之間的程序如何通訊 2.1.1網路應用程式體系結構 什麼是cs模式呢?1.主機總是開啟 2.客戶端請求資源 3...
計算機網路第二章 DNS 應用層
二 dns的工作原理 三 dns記錄和報文 dns是一種在請求客戶方和伺服器之間的網域名稱轉換器。由於我們平時都是使用網頁的 對 進行訪問,而不會記住 的ip位址。而且由於 的ip位址可能會隨時更換,使用者請求 服務的時候會很不方便。但是在網際網路上的機器都只認ip位址,他們不認識那可咋辦呀。這個時...