1.Socket和HTTP的區(qū)別
從網(wǎng)絡模型層面看:
socket是對TCP/IP協(xié)議的封裝和應用(程序員層面上)凌埂,我們IP協(xié)議對應于網(wǎng)絡層蛋铆,TCP協(xié)議對應于傳輸層馋评,而HTTP協(xié)議對應于應用層,三者從本質(zhì)上來說沒有可比性刺啦。也可以說留特,TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡中傳輸,而HTTP是應用層協(xié)議蜕青,主要解決如何包裝數(shù)據(jù)苟蹈。關于TCP/IP和HTTP協(xié)議的關系,網(wǎng)絡有一段比較容易理解的介紹:“我們在傳輸數(shù)據(jù)時右核,可以只使用(傳輸層)TCP/IP協(xié)議贺喝,但是那樣的話躏鱼,如果沒有應用層,便無法識別數(shù)據(jù)內(nèi)容染苛。如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應用層協(xié)議贸呢。
有個比較形象的描述是:HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體方式固蛾,socket是發(fā)動機艾凯,提供了網(wǎng)絡通信的能力趾诗。
從程序?qū)用婵矗?/strong>
HTTP 為短連接:客戶端發(fā)送請求都需要服務器端回送響應.請求結束后,主動釋放鏈接贝乎,因此為短連接却舀。通常的做法是,不需要任何數(shù)據(jù)篱昔,也要保持每隔一段時間向服務器發(fā)送"保持連接"的請求空执。這樣可以保證客戶端在服務器端是"上線"狀態(tài)奶栖。
HTTP連接使用的是"請求-響應"方式,不僅在請求時建立連接冻晤,而且客戶端向服務器端請求后,服務器才返回數(shù)據(jù)攘轩。
Socket為長連接:通常情況下Socket 連接就是 TCP 連接稿存,因此 Socket 連接一旦建立,通訊雙方開始互發(fā)數(shù)據(jù)內(nèi)容冕屯,直到雙方斷開連接痰洒。但在實際網(wǎng)絡應用中,客戶端到服務器之間的通信往往需要穿越多個中間節(jié)點,例如路由器嗡靡、網(wǎng)關柿祈、防火墻等蜜自,大部分防火墻默認會關閉長時間處于非活躍狀態(tài)的連接而導致 Socket 連接斷連珠漂,因此需要通過輪詢告訴網(wǎng)絡,該連接處于活躍狀態(tài)鸣皂。
2.HTTP和HTTPS的區(qū)別
1.HTTPS的概念
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道仰泻,簡單講是HTTP的安全版荆陆,即HTTP下加入SSL層,HTTPS的安全基礎是SSL集侯,因此加密的詳細內(nèi)容就需要SSL被啼。
2.HTTP與HTTPS有什么區(qū)別帜消?
HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的浓体,因此使用HTTP協(xié)議傳輸隱私信息非常不安全泡挺,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密命浴,從而就誕生了HTTPS娄猫。
簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構建的可進行加密傳輸生闲、身份認證的網(wǎng)絡協(xié)議媳溺,要比http協(xié)議安全。
HTTPS和HTTP的區(qū)別主要如下:
1跪腹、https協(xié)議需要到ca申請證書褂删,一般免費證書較少,因而需要一定費用冲茸。
2、http是超文本傳輸協(xié)議缅帘,信息是明文傳輸轴术,https則是具有安全性的ssl加密傳輸協(xié)議。
3钦无、http和https使用的是完全不同的連接方式逗栽,用的端口也不一樣,前者是80失暂,后者是443彼宠。
4、http的連接很簡單弟塞,是無狀態(tài)的凭峡;HTTPS協(xié)議是由SSL+HTTP協(xié)議構建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議决记,比http協(xié)議安全摧冀。
3.HTTPS的優(yōu)缺點
HTTPS的優(yōu)點
正是由于HTTPS非常的安全,攻擊者無法從中找到下手的地方系宫,從站長的角度來說索昂,HTTPS的優(yōu)點有以下2點:
1、SEO方面
谷歌曾在2014年8月份調(diào)整搜索引擎算法扩借,并稱“比起同等HTTP網(wǎng)站椒惨,采用HTTPS加密的網(wǎng)站在搜索結果中的排名將會更高”。
2潮罪、安全性
盡管HTTPS并非絕對安全康谆,掌握根證書的機構凄杯、掌握加密算法的組織同樣可以進行中間人形式的攻擊,但HTTPS仍是現(xiàn)行架構下最安全的解決方案秉宿,主要有以下幾個好處:
(1)戒突、使用HTTPS協(xié)議可認證用戶和服務器,確保數(shù)據(jù)發(fā)送到正確的客戶機和服務器描睦;
(2)膊存、HTTPS協(xié)議是由SSL+HTTP協(xié)議構建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議忱叭,要比http協(xié)議安全隔崎,可防止數(shù)據(jù)在傳輸過程中不被竊取、改變韵丑,確保數(shù)據(jù)的完整性爵卒。
(3)、HTTPS是現(xiàn)行架構下最安全的解決方案撵彻,雖然不是絕對安全钓株,但它大幅增加了中間人攻擊的成本。
HTTPS的缺點
雖然說HTTPS有很大的優(yōu)勢陌僵,但其相對來說轴合,還是有些不足之處的,具體來說碗短,有以下2點:
1受葛、SEO方面
據(jù)ACM CoNEXT數(shù)據(jù)顯示,使用HTTPS協(xié)議會使頁面的加載時間延長近50%偎谁,增加10%到20%的耗電总滩,此外,HTTPS協(xié)議還會影響緩存巡雨,增加數(shù)據(jù)開銷和功耗闰渔,甚至已有安全措施也會受到影響也會因此而受到影響。
而且HTTPS協(xié)議的加密范圍也比較有限鸯隅,在黑客攻擊澜建、拒絕服務攻擊、服務器劫持等方面幾乎起不到什么作用蝌以。
最關鍵的炕舵,SSL證書的信用鏈體系并不安全,特別是在某些國家可以控制CA根證書的情況下跟畅,中間人攻擊一樣可行咽筋。
2、經(jīng)濟方面
(1)徊件、SSL證書需要錢奸攻,功能越強大的證書費用越高蒜危,個人網(wǎng)站、小網(wǎng)站沒有必要一般不會用睹耐。
(2)辐赞、SSL證書通常需要綁定IP,不能在同一IP上綁定多個域名硝训,IPv4資源不可能支撐這個消耗(SSL有擴展可以部分解決這個問題响委,但是比較麻煩,而且要求瀏覽器窖梁、操作系統(tǒng)支持赘风,Windows XP就不支持這個擴展,考慮到XP的裝機量纵刘,這個特性幾乎沒用)邀窃。
(3)、HTTPS連接緩存不如HTTP高效假哎,大流量網(wǎng)站如非必要也不會采用瞬捕,流量成本太高。
(4)位谋、HTTPS連接服務器端資源占用高很多山析,支持訪客稍多的網(wǎng)站需要投入更大的成本,如果全部采用HTTPS掏父,基于大部分計算資源閑置的假設的VPS的平均成本會上去。
(5)秆剪、HTTPS協(xié)議握手階段比較費時赊淑,對網(wǎng)站的相應速度有負面影響,如非必要仅讽,沒有理由犧牲用戶體驗陶缺。
4.HTTPS通信流程
(1)客戶使用https的URL訪問Web服務器,要求與Web服務器建立SSL連接洁灵。
(2)Web服務器收到客戶端請求后饱岸,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。
(3)客戶端的瀏覽器與Web服務器開始協(xié)商SSL連接的安全等級徽千,也就是信息加密的等級苫费。
(4)客戶端的瀏覽器根據(jù)雙方同意的安全等級,建立會話密鑰双抽,然后利用網(wǎng)站的公鑰將會話密鑰加密百框,并傳送給網(wǎng)站。
(5)Web服務器利用自己的私鑰解密出會話密鑰牍汹。
(6)Web服務器利用會話密鑰加密與客戶端之間的通信铐维。