1.http
http:超文本傳輸協(xié)議,是一個客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn),客戶端和服務(wù)端是通過發(fā)送報文來相互通信的
http工作過程
(1)首先客戶端和服務(wù)端需建立連接,點擊某個連接,http開始
(2)建立連接后,客戶端像服務(wù)端發(fā)送一個請求
(3)服務(wù)端接到請求后,給予相應(yīng)的響應(yīng)信息
(4)客戶端接收到服務(wù)器端所返回的信息通過瀏覽器顯示,然后客戶端與服務(wù)器端斷開連接
TCP/IP協(xié)議:三次握手
(1)第一次握手:Client將標(biāo)志位SYN置為1淀散,隨機產(chǎn)生一個值seq=J撩轰,并將該數(shù)據(jù)包發(fā)送給Server员淫,Client進入SYN_SENT狀態(tài)拴竹,等待Server確認耘柱。
(2)第二次握手:Server收到數(shù)據(jù)包后由標(biāo)志位SYN=1知道Client請求建立連接道宅,Server將標(biāo)志位SYN和ACK都置為1湃交,ack=J+1镀首,隨機產(chǎn)生一個值seq=K豹缀,并將該數(shù)據(jù)包發(fā)送給Client以確認連接請求伯复,Server進入SYN_RCVD狀態(tài)。
(3)第三次握手:Client收到確認后邢笙,檢查ack是否為J+1啸如,ACK是否為1,如果正確則將標(biāo)志位ACK置為1氮惯,ack=K+1组底,并將該數(shù)據(jù)包發(fā)送給Server,Server檢查ack是否為K+1筐骇,ACK是否為1债鸡,如果正確則連接建立成功,Client和Server進入ESTABLISHED狀態(tài)铛纬,完成三次握手,隨后Client與Server之間可以開始傳輸數(shù)據(jù)了棺弊。
2.https
過程
(1)客戶端像服務(wù)端發(fā)起https請求
(2)服務(wù)端的配置:采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書模她,可以是自己制作或者CA證書。區(qū)別就是自己頒發(fā)的證書需要客戶端驗證通過懂牧,才可以繼續(xù)訪問僧凤,而使用CA證書則不會彈出提示頁面。這套證書其實就是一對公鑰和私鑰旋膳。公鑰給別人加密使用验懊,私鑰給自己解密使用
(3)傳送證書:這個證書其實就是公鑰,只是包含了很多信息祟滴,如證書的頒發(fā)機構(gòu)歌溉,過期時間等。
(4)客戶端解析證書:這部分工作是有客戶端的TLS來完成的草慧,首先會驗證公鑰是否有效漫谷,比如頒發(fā)機構(gòu)蹂析,過期時間等电抚,如果發(fā)現(xiàn)異常,則會彈出一個警告框俺祠,提示證書存在問題蜘渣。如果證書沒有問題蔫缸,那么就生成一個隨即值际起,然后用證書對該隨機值進行加密加叁。
(5)傳送加密信息:這部分傳送的是用證書加密后的隨機值,目的就是讓服務(wù)端得到這個隨機值,以后客戶端和服務(wù)端的通信就可以通過這個隨機值來進行加密解密了.
(6)服務(wù)端解密信息:服務(wù)端用私鑰解密后豫柬,得到了客戶端傳過來的隨機值(私鑰),然后把內(nèi)容通過該值進行對稱加密燕偶。所謂對稱加密就是指么,將信息和私鑰通過某種算法混合在一起榴鼎,這樣除非知道私鑰巫财,不然無法獲取內(nèi)容平项,而正好客戶端和服務(wù)端都知道這個私鑰,所以只要加密算法夠彪悍接癌,私鑰夠復(fù)雜扔涧,數(shù)據(jù)就夠安全枯夜。
(7)傳輸加密后的信息:這部分信息是服務(wù)段用私鑰加密后的信息湖雹,可以在客戶端被還原摔吏。
(8)客戶端解密信息:客戶端用之前生成的私鑰解密服務(wù)段傳過來的信息征讲,于是獲取了解密后的內(nèi)容诗箍。
3.區(qū)別
http與https的主要區(qū)別:
(1)https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用
(2)http是超文本傳輸協(xié)議,信息是明文傳輸,https則具有安全性的SSL加密傳輸協(xié)議
(3)http和https使用的完全不同的連接方式,用的端口也不一樣,前者80,后者443
(4)http的連接很簡單,是無狀態(tài)的;https是由ssl+http協(xié)議構(gòu)建的可進行加密傳輸,身份驗證的網(wǎng)絡(luò)協(xié)議,比http安全,可防止數(shù)據(jù)在傳輸過程中不被竊取,改變,確保數(shù)據(jù)的完整性
http://www.reibang.com/p/3e4f3de18e3b