python網路程式設計複習

2021-09-13 01:40:23 字數 2209 閱讀 7123

tcp是面向連線的通訊協議,通過三次握手建立聯絡,通訊時完成四次揮手

優點:tcp在資料傳遞時,有確認、視窗、重傳、阻塞等控制機制,能保證資料的正確性,較為可靠

缺點:tcp相對於udp速度慢,要求系統資源較多

udp是面向無連線的通訊協議,udp資料報括目的埠號和源埠號資訊

優點:udp速度快,操作簡單,要求系統資源較少,由於通訊不需要連線,可以實現廣播傳送

缺點:udp傳送資料前並不與對方建立聯絡,對接受到的資料也不傳送確認訊號,傳送端不知道資料是否會正確接受,也不重**送,不可靠

三次握手:

1.建立連線時,客戶端傳送syn包到伺服器

2.伺服器收到請求後,會向客戶端傳送乙個syn包,即syn+ack包,此時伺服器進去syn_recv狀態

3.客戶端收到伺服器的syn+ack包,向伺服器傳送乙個序列號(seq=x+1),確認號為ack(客戶端) = y+1,此包傳送完畢,客戶端和伺服器進入estab_lished(tcp連線成功)狀態,完成三次握手

四次揮手:

1.首先,客戶端傳送乙個fin,用來關閉客戶端到伺服器的資料傳送,人後等待伺服器的確認

2.伺服器接收到這個fin。他傳送乙個ack,確認ack為接收到的序號加一

3.關閉服務到到客戶端的連線,傳送乙個fin給客戶端

4.客戶端接收到fin後,並發回乙個ack報文確認,並將確認序號seq設定為收到序號加一,客戶端就進去了time-wait(時間等待)狀態。此時注意tcp的連線還沒有釋放,必須經過2*msl(最長報文段壽命)的時間後,才進入closed狀態

5.伺服器只要收到了客戶端發出的確認,當前連線立即進入到closed狀態

1.https協議需要到ca申請證書,一般免費的證書較少,因而需要一定的費用

2.http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議

3.http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443

4.http連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,相對http更安全

1.最直觀的就是語義上的區別,get用於獲取資料,post用於提交資料

2.get引數有長度限制(受限於url長度,具體的數值取決於瀏覽器和伺服器的限制),而post無限制

3.get請求,請求的資料會附加與url之後,以?分割url和傳輸資料,多個引數用&連線,而post請求會把請求的資料放置在http請求體重

通過狀態碼告訴客戶端伺服器的執行狀態,以判斷下一步該執行什麼操作。

常見的狀態機器碼有:

1.100-199 表示伺服器成功接收部分請求,要求客戶端繼續幾條其他請求才能完成整個處理過程

2.200-299 表示伺服器成功接收請求並完成處理過程,常用200(ok請求成功)

3.300-399 為完成請求,客戶需進一步細化請求,如302(所有其你去頁面已經臨時轉移到新的url),304,307(使用快取資源)

4.400-499 客戶端請求有錯誤,如常見的404(伺服器無法找到請求頁面),403(伺服器拒絕訪問,許可權不夠)

5.500-599 伺服器端出現錯誤 如500(請求未完成,伺服器遇到了不可預知的錯誤)

1.host(主機和埠號)

2.connection(連線型別)

3.upgrade-insecure-requests(公升級為https請求)

4.user-agent(瀏覽器名稱)

5.accept(傳輸檔案型別)

6.refere(頁面跳轉出)

7.accept-encoding(檔案編譯碼格式)

8.cookie(cookie)

9.x-requested-with:xmlhttprequest(是ajax非同步請求)

1.http請求動態資源(瀏覽器到web伺服器)

2.通過wsgi呼叫乙個屬性(web伺服器到應用程式框架)

3.通過引用呼叫web伺服器的方法,設定返回的狀態和頭資訊(應用程式框架到web伺服器)

4.呼叫返回,此時web伺服器端儲存了剛剛設定的資訊(web伺服器到框架)

5.框架自己查詢資料庫等,生成動態頁面的body資訊

6.把生成的body資訊返回給web伺服器的呼叫

7.web伺服器吧資料返回給瀏覽器

web框架和伺服器之間的通訊協議

wsgi允許開發者將選擇web框架和web伺服器分開,可以混合匹配web伺服器和web框架,選擇乙個適合的配對,

網路程式設計複習 Exp2

1.工程檔案需鏈結套接字動態鏈結庫,我用的是ws2 32.dll 也可以靜態鏈結,但應該增加了編譯代價。2.源 server general main.cpp include include void main void client general main.cpp include include...

面試複習 之 網路程式設計和網路協議

arp的工作原理如下 rarp工作原理與之相反 首先,每台主機都會在自己的arp緩衝區 arp cache 中建立乙個 arp列表,以表示ip位址和mac位址的對應關係。當源主機需要將乙個資料報要傳送到目的主機時,會首先檢查自己 arp列表中是否存在該 ip位址對應的mac位址,如果有 就直接將資料...

python網路程式設計 TCP網路程式設計

tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...