http經過ssl/tls協議再進入到tcp傳輸層,就是https協議;
一般http的埠號為80,https的埠號為443
ssl/tcl協議層主要職責就是借助下層協議的通道安全的協商出乙份加密金鑰,並且用此金鑰來加密http請求響應報文;
它解決了以下三個方面的問題:
提供驗證服務,驗證本次會話實體身份的合法性;
提供加密服務,強加密機制能夠保證通訊過程中的訊息不會被破譯;
提供防止篡改服務,利用hash演算法對訊息進行簽名,通過驗證簽名保證通訊內容不被篡改;
對稱加密:
金鑰只有乙個,加密、解密都是這個密碼,加解密速度快,典型的對稱加密演算法有des、aes、rc4等;
非對稱加密:金鑰成對出現,分別為公鑰和私鑰,從公鑰無法推知私鑰,反之,從私鑰也無法推知公鑰解密。非對稱加密速度較慢,典型的非對稱加密演算法有rsa、dsa、dss等。
hash演算法,這是一種不可逆的演算法,它常用於驗證資料的完整性;
因為https是基於tcp/ip協議通訊的,屬於可靠傳輸,所以它必須要先進行三次握手,完成連線的建立。接著是ssl的握手協議,此協議非常有效的讓客戶端和伺服器之間完成相互之間的身份驗證以及金鑰協商;
客戶端瀏覽器向伺服器傳送ssl/tls協議的版本號、加密演算法的種類、產生的隨機數,以及其他需要的各種資訊;
伺服器從客戶端支援的加密演算法中選擇一組加密演算法與hash演算法,並且把自己的證書(包含**位址、加密公鑰、證書頒發機構等)也傳送給客戶端;
客戶端瀏覽器生成一串隨機數並用伺服器傳來的公鑰加密,再使用約定好的hash演算法計算握手訊息,傳送到伺服器端;
伺服器收到握手訊息之後用自己的私鑰解密,並用雜湊演算法驗證,這樣雙方都有了此通訊的金鑰;
伺服器再使用金鑰加密一段握手訊息,返回給客戶端瀏覽器;
瀏覽器用金鑰解密,並用雜湊演算法驗證,確定演算法與金鑰;
通過以上7步之後,就可以利用此次協商好的金鑰進行通訊;
通常,乙個http請求/響應的工作流程可以使用以下4個步驟來概括:
客戶端瀏覽器先要與伺服器建立連線,即通過三次握手建立連線;
建立連線之後,客戶端傳送乙個請求到伺服器,這個過程其實是組裝請求報文的過程;
伺服器端接收到請求報文,對報文進行解析,組裝成一定格式的響應報文,返回給客戶端;
客戶端瀏覽器接收到響應報文之後,通過瀏覽器核心對其進行解析,按照一定的外觀進行顯示,然後與伺服器斷開連線;
請求報文:
請求行(由請求方法字段、url欄位和http協議版本字段組成)、請求頭、請求體
請求頭部常見的典型屬性:
客戶端請求的瀏覽器型別,更確切的說,是客戶端應用程式的名稱,不同版本、不同廠商的值都可能不同;
響應報文:
響應行、響應頭部、響應體
響應行:包含協議版本、狀態碼以及描述
響應頭部:包含若干個屬性與屬性值
響應體:一般存放我們真正需要的文字;
常用的狀態碼:
常用的響應報文頭:
套接字通訊是應用層與tcp/ip協議族通訊的中間抽象層,它是一組介面。應用層通過呼叫這些介面傳送和接收資料。
tcp/ip通訊協議族中有兩種套接字型別,分別是流套接字和資料報套接字,分別對應tcp協議和udp協議。
乙個tcp/ip套接字有乙個網際網路位址、乙個協議以及乙個埠號唯一確定;
一對一的模式;
一對多的模式;
特點:【nio模式原理】
部署Web專案的War包到Tomcat伺服器
執行database檔案中的 xx.sql指令碼檔案,便可以生成最新的資料庫和表結構。在訪問之前,需要修改tomcat伺服器的配置檔案,開啟 tomcat解壓目錄 conf context.xml。將執行該web專案時,需要配置的資料庫連線字串增加到該xml檔案中。增加後的context.xml為 ...
Tomcat核心詳解(七) Engine容器
engine即為全域性引擎容器,包含以下主要元件 host元件是engine容器的乙個子容器,它表示乙個虛擬主機。host元件也包含了很多其他的元件 因為engine是乙個全域性的servlet容器,所以這裡的訪問日誌作用的範圍是所有客戶端的請求訪問,不管訪問哪個虛擬主機都會被該日誌元件記錄。pip...
Web快取詳解(一)
1.請求更快 通過將內容快取在本地瀏覽器或距離最近的快取伺服器 如cdn 在不影響 互動的前提下可以大大加快 載入速度。2.節省頻寬 對於已快取的檔案,可以減少請求頻寬甚至無需請求網路。3.降低伺服器壓力 在大量使用者併發請求的情況下,伺服器的效能受到限制,此時將一些靜態資源放置在網路的多個節點,可...