摘要:靈活允許傳輸任意類型的數(shù)據(jù)對象。無連接每次響應一個請求,響應完成以后就斷開連接。無狀態(tài)服務器不保存瀏覽器的任何信息。每次提交的請求之間沒有關聯(lián)。非流水線發(fā)出一個報文,等到響應,再發(fā)下一個報文。同時,流還支持優(yōu)先級和流量控制。
版權聲明:本文為博主原創(chuàng)文章,遵循[ CC 4.0
by-sa ](http://creativecommons.org/li...,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/gdutxia...
前言在講解 http 與 https 之間的區(qū)別之前,我么先來看一下一個常見的面試問題。
一次完整的 http 協(xié)議請求過程是怎樣的
該圖片出自 博客
Http協(xié)議的主要特點支持客戶/服務器模式
簡單快速:客戶向服務端請求服務時,只需傳送請求方式和路徑。
靈活:允許傳輸任意類型的數(shù)據(jù)對象。由Content-Type加以標記。
無連接:每次響應一個請求,響應完成以后就斷開連接。
無狀態(tài):服務器不保存瀏覽器的任何信息。每次提交的請求之間沒有關聯(lián)。
怎么理解HTTP協(xié)議是無狀態(tài)的無連接的的協(xié)議?
非持續(xù)性和持續(xù)性HTTP1.0默認非持續(xù)性;HTTP1.1默認持續(xù)性
持續(xù)性:瀏覽器和服務器建立TCP連接后,可以請求多個對象
非持續(xù)性:瀏覽器和服務器建立TCP連接后,只能請求一個對象
非流水線和流水線類似于組成里面的流水操作
流水線:不必等到收到服務器的回應就發(fā)送下一個報文。
非流水線:發(fā)出一個報文,等到響應,再發(fā)下一個報文。類似TCP。
http 各個版本之間的區(qū)別1.0 與 1.1
http1.0一次只能處理一個請求,不能同時收發(fā)數(shù)據(jù)
http1.1可以處理多個請求,能同時收發(fā)數(shù)據(jù)
http1.1增加可更多字段,如cache-control,keep-alive.
2.0
http 2.0采用二進制的格式傳送數(shù)據(jù),不再使用文本格式傳送數(shù)據(jù)
http2.0對消息頭采用hpack壓縮算法,http1.x的版本消息頭帶有大量的冗余消息
http2.0 采用多路復用,即用一個tcp連接處理所有的請求,真正意義上做到了并發(fā)請求,流還支持優(yōu)先級和流量控制(HTTP/1.x 雖然通過 pipeline也能并發(fā)請求,但是多個請求之間的響應會被阻塞的,所以 pipeline 至今也沒有被普及應用,而 HTTP/2 做到了真正的并發(fā)請求。同時,流還支持優(yōu)先級和流量控制。)
http2.0支持server push,服務端可以主動把css,jsp文件主動推送到客戶端,不需要客戶端解析HTML,再發(fā)送請求,當客戶端需要的時候,它已經在客戶端了。
POST和GET的區(qū)別Post一般用于更新或者添加資源信息 | Get一般用于查詢操作,而且應該是安全和冪等的 |
---|---|
Post更加安全 | Get會把請求的信息放到URL的后面 |
Post傳輸量一般無大小限制 | Get不能大于2KB |
Post執(zhí)行效率低 | Get執(zhí)行效率略高 |
Get將參數(shù)拼成URL,放到header消息頭里傳遞
Post直接以鍵值對的形式放到消息體中傳遞。
但兩者的效率差距很小很小
*
HttpsHTTPS相當于HTTP的安全版本了,是在http的基礎之上加上ssl(Secure Socket Layer)
端口號是443
是由SSL+Http協(xié)議構建的可進行加密傳輸、身份認證的網絡協(xié)議。
https在客戶端(瀏覽器)與服務端(網站)傳輸加密的數(shù)據(jù)大概經歷一下流程
客戶端將自己的has算法和加密算法發(fā)給服務器
服務器接收到客戶端發(fā)來的加密算法和has算法,取出自己的加密算法與has算法,并將自己的身份信息以證書的形式發(fā)送給客戶端,該證書信息包括公鑰,網站地址,預計頒發(fā)機構等
客戶端收到服務器發(fā)來的證書(即公鑰),開始驗證證書的合法性,如果證書信任,則生成一串隨機的字符串數(shù)字作為私鑰,并將私鑰(密文)用證書(服務器的公鑰)進行加密,發(fā)送給服務器
服務器收到客戶端發(fā)來的數(shù)據(jù)之后,通過服務器自己的私鑰進行解密客戶端發(fā)來的數(shù)據(jù)(客戶端的私鑰),(這樣雙方都擁有私鑰)再進行hash檢驗,如果結果一致,則將客戶端發(fā)來的字符串(第3個步驟發(fā)送過來的字符串)通過加密發(fā)送給客戶端
客戶端解密,如果一致的話,就使用之前客戶端隨機生成的字符串進行對稱加密算法進行加密
*
推薦閱讀聊一聊 Android中巧妙的位操作
二分查找的相關算法題
快速排序的相關算法題(java)
Android 面試必備 -計算機網絡基本知識(TCP,UDP,Http,https)
360面試總結(Android)
掃一掃,歡迎關注我的公眾號 stormjun94。如果你有好的文章,也歡迎你的投稿。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76197.html
摘要:在網絡層有協(xié)議協(xié)議協(xié)議協(xié)議和協(xié)議。而且,因為有確認機制三次握手機制,這些也導致容易被人利用,實現(xiàn)等攻擊。沒有的這些機制,較被攻擊者利用的漏洞就要少一些。但也是無法避免攻擊的,比如攻擊缺點不可靠,不穩(wěn)定。 簡介 HTTP協(xié)議(超文本傳輸協(xié)議)和 UDP(用戶數(shù)據(jù)包協(xié)議),TCP 協(xié)議(傳輸控制協(xié)議) TCP/IP是個協(xié)議組,可分為四個層次:網絡接口層、網絡層、傳輸層和應用層。在網絡層有I...
摘要:需要校驗字節(jié)信息是否符合規(guī)范,避免惡意信息和不規(guī)范數(shù)據(jù)危害運行安全。具有相同哈希值的鍵值對會組成鏈表。通過在協(xié)議下添加了一層協(xié)議對數(shù)據(jù)進行加密從而保證了安全。常見的非對稱加密包括等。 類加載過程 Java 中類加載分為 3 個步驟:加載、鏈接、初始化。 加載。 加載是將字節(jié)碼數(shù)據(jù)從不同的數(shù)據(jù)源讀取到JVM內存,并映射為 JVM 認可的數(shù)據(jù)結構,也就是 Class 對象的過程。數(shù)據(jù)源可...
摘要:發(fā)布應用市場的平臺搶紅包工具紅包精靈開源啦掘金紅包精靈,如果喜歡,點個開源不易。作者將原素材文章進行了新內容的添加和重新排列,但是因為文章高效的代碼編寫技巧總結前端掘金本文總結了代碼編寫技巧,來提升你的和代碼。 收藏安卓開發(fā)中非常實用優(yōu)秀的庫! 有圖有真相! - Android - 掘金本來是打算收藏工具類的,但轉念一想,已經有這么多優(yōu)秀的庫了,就沒必要再去重復造輪子了,便歸納工作中比...
閱讀 3024·2021-09-22 15:52
閱讀 2903·2019-08-30 15:55
閱讀 2700·2019-08-30 15:53
閱讀 2454·2019-08-30 13:21
閱讀 1621·2019-08-30 13:10
閱讀 2481·2019-08-26 12:09
閱讀 2564·2019-08-26 10:33
閱讀 1802·2019-08-23 18:06