Http和Https(區別)
HTTP:超文本傳輸協議,是瀏覽器和服務端的請求和響應的標準TCP(網絡傳輸協議),特點:無狀態
HTTPS:是以安全爲目的的HTTP通道是HTTP的安全版,在HTTP中間增加了SSL層傳輸的安全
區別 |
HTTP |
HTTPS |
證書 |
無 |
需要申請,收費(免費的較少) |
傳輸 |
明文傳輸 |
具有安全性的ssl加密傳輸 |
端口 |
80 |
443 |
連接特點 |
連接簡單,無狀態 |
由ssl+http構建的傳輸,可以加密傳輸和身份認證的網絡協議 |
傳輸效率 |
快 |
稍慢 |
第一步:client 發送https請求到server, server生成公鑰和私鑰,並把網站證書和公鑰下發給client
第二步:瀏覽器校驗網站證書是否正確,然後生成隨機密碼,利用公鑰對隨機密碼進行加密
第三步:client發送加密後的密碼和加密後的會話信息,server接收到後利用私鑰進行解密,進行交互
HTTP2
2015年發佈是HTTP1的替代,專注於性能,最大的目標是在用戶和網站間只用一個連接
新特性:
- 二進制傳輸(之前是文本格式)
- 多路複用
- Header 壓縮,減少資源消耗,提升性能
- Server push:即服務端通過push的方式將客戶端需要的內容預先推送過去
基本概念
PV:頁面訪問量,即PageView,用戶每次對網站的訪問均被記錄,用戶對同一頁面的多次訪問,訪問量累計。 UV:獨立訪問用戶數:即UniqueVisitor,訪問網站的一臺電腦客戶端爲一個訪客。00:00-24:00內相同的客戶端只被計算一次。
樂觀鎖??
關鍵字
Volatile??
CAS??
線程
線程池的作用
好處:
1.重用存在的線程,減少線程的創建和銷燬
2.可以有效的控制最大併發線程數,提高系統資源的使用率,同時避免過多的資源競爭和避免堵塞
3.提供定時執行,定期執行,單線程,併發數控制等功能
Java通過Executors(接口)提供四種線程池,分別爲:
newCachedThreadPool創建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閒線程,若無可回收,則新建線程。
newFixedThreadPool 創建一個定長線程池,可控制線程最大併發數,超出的線程會在隊列中等待。
newScheduledThreadPool 創建一個定長線程池,支持定時及週期性任務執行。
newSingleThreadExecutor 創建一個單線程化的線程池,它只會用唯一的工作線程來執行任務,保證所有任務按照指定順序(FIFO, LIFO, 優先級)執行。
參數的設置,
幾種實現線程的方法
線程直接的通信
Java知識點
接口和抽象類的應用場景