tcp的擁塞控制由4個核心演算法組成。
https:把資料進行非對稱加密,然後客戶端從第三方伺服器獲取證書(加密後的公鑰)
http完整請求:建立tcp連線,傳送http命令請求頭,web伺服器應答,關閉tcp連線
tcp:
三次握手:
缺陷:洪氾攻擊
解決辦法:
四次揮手:
長連線:
短連線:
程序:執行緒:
併發和並行:
程序通訊:
執行緒同步:
執行緒鎖:
讀寫鎖,可以多個執行緒共同讀,只有乙個執行緒可以寫。
自旋鎖,獲取不到鎖就迴圈檢視鎖是否釋放。互斥鎖獲取不到會睡眠。
樂觀鎖悲觀鎖。
死鎖:預防死鎖
破壞上述條件
搶占資源,停止死鎖程序。
銀行家演算法,實時統計程序和資源,只有資源夠才分配。
訊息佇列:
rpc:
rpc架構:
rpc過程:
分布式系統保證操作的時序性、原子性,操作互斥。
分布式鎖實現對共享資源的搶占。借鑑了多執行緒和多程序的互斥鎖。
分布式鎖實現:
微服務需求:
會話(session)跟蹤是web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是cookie與session。cookie通過在客戶端記錄資訊確定使用者身份,session通過在伺服器端記錄資訊確定使用者身份。
cookie技術是客戶端的解決方案,cookie就是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。
cookie就是這樣的一種機制。它可以彌補http協議無狀態的不足。在session出現之前,基本上所有的**都採用cookie來跟蹤會話。
需要瀏覽器支援並開啟。
session是另一種記錄客戶狀態的機制,不同的是cookie儲存在客戶端瀏覽器中,而session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是session。客戶端瀏覽器再次訪問時只需要從該session中查詢該客戶的狀態就可以了。
雖然session儲存在伺服器,對客戶端是透明的,它的正常執行仍然需要客戶端瀏覽器的支援。這是因為session需要使用cookie作為識別標誌。http協議是無狀態的,session不能依據http連線來判斷是否為同一客戶,因此伺服器向客戶端瀏覽器傳送乙個名為jsessionid的cookie,它的值為該session的id(也就是httpsession.getid()的返回值)。session依據該cookie來識別是否為同一使用者。
url位址重寫是對客戶端不支援cookie的解決方案。url位址重寫的原理是將該使用者session的id資訊重寫到url位址中。伺服器能夠解析重寫後的url獲取session的id。這樣即使客戶端不支援cookie,也可以使用session來記錄使用者狀態。
session_id放在header裡
cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上;
cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session;
session會在一定時間內儲存在伺服器上。當訪問增多,會比較占用你伺服器的效能。考慮到減輕伺服器效能方面,應當使用cookie;
單個cookie在客戶端的限制是4k,就是說乙個站點在客戶端存放的cookie不能超過4k;
作業系統知識點
協程 coroutines 是一種比執行緒更加輕量級的存在,正如乙個程序可以擁有多個執行緒一樣,乙個執行緒可以擁有多個協程。協程不是被作業系統核心所管理的,而是完全由程式所控制,也就是在使用者態執行。這樣帶來的好處是效能大幅度的提公升,因為不會像執行緒切換那樣消耗資源。程序與執行緒見 分頁與分段 分...
作業系統知識點
計算機系統資源分為硬體資源和軟體資源 按資訊交換方式和加接裝置的特性種類不同,通道分為 位元組多路通道 選擇通道 陣列多路通道 兩個交往的併發程序可能出現與時間有關的錯誤,這些錯誤表現為結果不唯一和永遠等待兩種情況 unix檔案可以分成普通檔案 目錄檔案和特殊檔案 從資源管理的觀點上來看,os的功能...
作業系統知識點總結
共享 系統中的資源可以被記憶體中多個併發執行的進執行緒共同使用 虛擬 通過時分復用 如分時系統 以及空分復用 如虛擬記憶體 技術實現把乙個物理實體虛擬為多個 非同步 系統中的程序是以走走停停的方式執行的,且以一種不可預知的速度推進 儲存器管理 或者記憶體管理 記憶體分配,記憶體保護,位址對映,記憶體...