單進程單線程多任務(wù)非阻塞
tcp_server_socket.setblocking(False) 設(shè)置套接字為非阻塞的方式
retv_data 對方發(fā)送過來數(shù)據(jù)
Type:套接字類型,可以是SOCK_STREAM(流式套接字,主要用于TCP協(xié)議)或者SOCK_DGRAM(數(shù)據(jù)報套接字,主要用于UDP協(xié)議)
tcp_server_socket.setsocket(socket.SOL_SOCKET,socket.SO_REQUEADDR,1) 這個語句可以讓服務(wù)器的端口重復(fù)利用,避免出現(xiàn)服務(wù)器先發(fā)出關(guān)閉請求后 短時在連接服務(wù)器出現(xiàn)的端口被占用的錯誤服務(wù)器中一切的外鏈資源:CSS js 圖片,視頻等都會重新發(fā)起請求;最后1的作用是結(jié)束后立即釋放端口。
長短連接
HTTP1.1規(guī)定了默認(rèn)保持長連接(HTTP persistent connection ,也有翻譯為持久連接),數(shù)據(jù)傳輸完成了保持TCP連接不斷開(不發(fā)RST包、不四次握手),等待在同域名下繼續(xù)用這個通道傳輸數(shù)據(jù);相反的就是短連接。
長連接
長連接并不是永久連接的。如果一段時間內(nèi)(具體的時間長短,是可以在header當(dāng)中進行設(shè)置的,也就是所謂的超時時間),這個連接沒有HTTP請求發(fā)出的話,那么這個長連接就會被斷掉。長連接的話,那么這么多次HTTP請求(這些請求包括請求網(wǎng)頁內(nèi)容,CSS文件,JS文件,圖片等等),其實使用的都是一個TCP連接,很顯然是可以節(jié)省很多消耗的。長連接情況下,多個HTTP請求可以復(fù)用同一個TCP連接,這就節(jié)省了很多TCP連接建立和斷開的消耗。
短連接
短連接比如你請求一個網(wǎng)頁,這個網(wǎng)頁里肯定還包含了CSS、JS等等一系列資源,如果你是短連接(也就是每次都要重新建立TCP連接)的話,那你每打開一個網(wǎng)頁,基本要建立幾個甚至幾十個TCP連接,這太浪費資源。
前端與后臺交互的數(shù)據(jù)格式
主要是JSON,XML現(xiàn)在用的不多
JSON 通常用于與服務(wù)端交換數(shù)據(jù)。
在接收服務(wù)器數(shù)據(jù)時一般是字符串。
我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象。
前端與后臺的交互原理
關(guān)注點:接口地址、前端請求的參數(shù)、后端返回的參數(shù)。調(diào)一下接口,看一下返回的數(shù)據(jù)。
前端請求參數(shù)的形式
GET和POST兩種方式GET從指定的服務(wù)器中獲取數(shù)據(jù),POST提交數(shù)據(jù)給指定的服務(wù)器處理