目錄python
''' 應用層:HTTP,FTP,NFS 表示層:Telnet,SNMP 會話層:SMTP,DNS 傳輸層:TCP,UDP 網絡層:IP,ICMP,ARP, 數據鏈路層:Ethernet,PPP,PDN,SLIP,FDDI 物理層:IEEE 802.1A,IEEE 802.11 '''
三次握手過程:mysql
''' 1首先客戶端向服務端發送一個帶有SYN 標誌,以及隨機生成的序號100(0字節)的報文 2服務端收到報文後返回一個報文(SYN200(0字節),ACk1001(字節+1))給客戶端 3客戶端再次發送帶有ACk標誌201(字節+)序號的報文給服務端 至此三次握手過程結束,客戶端開始向服務端發送數據。 1客戶端向服務端發起請求:我想給你通訊,你準備好了麼? 2服務端收到請求後迴應客戶端:I'ok,你準備好了麼 3客戶端禮貌的再次回一下客戶端:準備就緒,我們開始通訊吧! 整個過程跟打電話的過程如出一轍:1喂,你在嗎2在,我說的你聽獲得不3恩,聽獲得(接下來請 開始你的表演) 補充:SYN:請求詢問,ACk:回覆,迴應。 '''
四次揮手過程:面試
''' 因爲TCP鏈接是能夠雙向通訊的(全雙工),所以每一個方向都必須單獨進行關閉(這句話纔是 精闢,後面四個揮手過程都是其具體實現的語言描述) 四次揮手過程,客戶端和服務端均可以先開始斷開鏈接 1客戶端發送帶有fin標識的報文給服務端,請求通訊關閉 2服務端收到信息後,回覆ACK答應關閉客戶端通訊(鏈接)請求 3服務端發送帶有fin標識的報文給客戶端,也請求關閉通訊 4客戶端迴應ack給服務端,答應關閉服務端的通訊(鏈接)請求 '''
''' 全局解釋器鎖,每次只能一個線程得到cpu的使用權:爲了線程安全,也就是爲了解決多線程之間的數據完整性和狀態同步而加的鎖,由於咱們知道線程之間的數據是共享的。 '''
''' # 線程池 import threadpool, times with open(r'../uoko_house_id.txt', 'r', encoding='utf-8') as f: # with open語句表示通用 的打開文件的方式,此處用來獲取須要爬取參數的列表 roomIdLi = f.readlines() roomIdList =[x.replace('\n','').replace(' ','') for x in roomIdLi] print(roomIdList) li = [[i, item] for i, item in enumerate(roomIdList)] # enumerate()將列表中元素和其 下標從新組合輸出 def run(roomId): """對傳入參數進行處理""" print('傳入參數爲:', roomId) time.sleep(1) def main(): roomList = li # 房間信息 start_time = time.time() print('啓動時間爲:', start_time) pool = threadpool.ThreadPool(10) requests = threadpool.makeRequests(run, roomList) [pool.putRequest(req) for req in requests] pool.wait() print("共用時:", time.time()-start_time) if __name__ == '__main__': main() # 進程池 from multiprocessing.pool import Pool from time import sleep def fun(a): sleep(5) print(a) if __name__ == '__main__': p = Pool() for i in range(10): p.apply_async(fun, args= (i, )) p.close() p.join() print("end") '''
''' 一、TCP面向鏈接(如打電話要先撥號創建鏈接);UDP是無鏈接的,即發送數據以前不須要創建鏈接 二、TCP提供可靠的服務。也就是說,經過TCP鏈接傳送的數據,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力 交付,即不保證可靠交付 三、TCP面向字節流,其實是TCP把數據當作一連串無結構的字節流;UDP是面向報文的 UDP沒有擁塞控制,所以網絡出現擁塞不會使源主機的發送速率下降(對實時應用頗有用,如IP電話,實時視頻會議 等) 四、每一條TCP鏈接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通訊 五、TCP首部開銷20字節;UDP的首部開銷小,只有8個字節 六、TCP的邏輯通訊信道是全雙工的可靠信道,UDP則是不可靠信道 ''' # 爲什麼基於tcp協議的通訊比基於udp協議的通訊更可靠? ''' tcp:可靠 對方給了確認收到信息,才發下一個,若是沒收到確認信息就重發 udp:不可靠 一直髮數據,不須要對方迴應 '''
''' 主要 MyISAM 與 InnoDB 兩個引擎,其主要區別以下: InnoDB 支持事務,MyISAM 不支持,這一點是很是之重要。事務是一種高級的處理方式, 如在一些列增刪改中只要哪一個出錯還能夠回滾還原,而 MyISAM就不能夠了; MyISAM 適合查詢以及插入爲主的應用,InnoDB 適合頻繁修改以及涉及到安全性較高的應 用; InnoDB 支持外鍵,MyISAM 不支持; MyISAM 是默認引擎,InnoDB 須要指定; InnoDB 不支持 FULLTEXT 類型的索引; InnoDB 中不保存表的行數,如 select count() from table 時,InnoDB;須要掃描一遍整個表 來計算有多少行,可是 MyISAM 只要簡單的讀出保存好的行數便可。注意的是,當 count() 語句包含 where 條件時 MyISAM 也須要掃描整個表; 對於自增加的字段,InnoDB 中必須包含只有該字段的索引,可是在 MyISAM表中能夠和其 他字段一塊兒創建聯合索引;清空整個表時,InnoDB 是一行一行的刪除,效率很是慢。 MyISAM 則會重建表; InnoDB 支持行鎖(某些狀況下仍是鎖整表,如 update table set a=1 where user like '%lee%' '''
innobd | 可存放數據,安全性高 |
---|---|
myisam | 可存放數據,查找數據效率高於innobd |
blackhole | 存什麼沒什麼,什麼都存不進去,適用於從網站上爬取的不須要的信息,能夠丟入數據庫的blackhole |
memory | 往內存中存,關閉即消失,表結構存在硬盤上,可是表數數據所有存在內存中 |
''' 事務具備四個特性,即 ACID 特性: ( 1 )原子性:事務中包括的全部操做要麼都作,要麼都不作。 ( 2 )一致性:事務必須使數據庫從一個一致性狀態變到另外一個一致性狀態。 ( 3 )隔離性:一個事務內部的操做及使用的數據對併發的其餘事務是隔離的。 ( 4 )持續性:事務一旦提交,對數據庫的改變是永久的。 '''
''' Session 依賴於 Cookie,若是瀏覽器不能保存 cookie 那麼 session 就失效了。由於它須要瀏 覽器的 cookie 值去 session 裏作對比。session就是用來在服務器端保存用戶的會話狀態。 cookie 能夠有過時時間,這樣瀏覽器就知道何時能夠刪除 cookie了。 若是 cookie 沒有 設置過時時間,當用戶關閉瀏覽器的時候,cookie 就自動過時了。你能夠改變SESSION_EXPIRE_AT_BROWSER_CLOSE 的設置來控制session 框架的這一行爲。缺省狀況下, SESSION_EXPIRE_AT_BROWSER_CLOSE設置爲 False ,這樣,會話 cookie 能夠在用戶瀏覽器中保持有效達SESSION_COOKIE_AGE 秒(缺省設置是兩週,即 1,209,600 秒)若是你不想用戶每次打開瀏覽器都必須從新登錄的話,用這個參數來幫你。若是SESSION_EXPIRE_AT_BROWSER_CLOSE設置爲 True,當瀏覽器關閉時,Django 會使 cookie 失效。 SESSION_COOKIE_AGE:設置 cookie 在瀏覽器中存活的時間。 '''
''' 1.需求分析 2.概要設計 3.詳細設計 4.編碼 5.測試 6.軟件交付 7.驗收 8.維護 '''
''' 在互聯網上防火牆是一種很是有效的網絡安全模型,經過它能夠隔離風險區域(即Internet或有必定風險的網絡)與安全區域(區域網)的鏈接,同時不會妨礙人們對風險區域的訪問,因此它通常鏈接在覈心交換機與外網之間。 1.過濾進出網絡的數據 2.管理進出訪問網絡的行爲 3.封堵某些禁止業務 4.記錄經過防火牆信息內容和活動 5.多網絡攻擊檢測告警 '''
''' 同步:執行一個操做以後,須要主動等待返回結果; 異步:執行一個操做以後,不須要主動等待返回結果,若接收到結果通知,再回來執行剛纔沒執行完的操做。 同步和異步關心的問題是:要不要主動等待結果。 阻塞:在執行一個操做時,不能作其餘操做; 非阻塞:在執行一個操做時,能作其餘操做。 阻塞和非阻塞關心的問題是:能不能作其餘操做。 '''