python websocket服務器https_Socket與WebSocket以及http與https重新總結

Socket與WebSocket以及http與https重新總結

一.Socket

網絡中的Socket是一個抽象的接口 ,而是為了方便使用TCP或UDP而抽象出來的一層 ,可以理解為網絡中連接的兩端。通常被叫做套接字接口.

二.WebSocket

WebSocket就是其中一種,是為了創建一種雙向通信(全雙工)的協議 ,來彌補HTTP協議在持久通信能力上的不足

WebSocket連接的過程是:

首先,客戶端發起http請求,經過3次握手后,建立起TCP連接;http請求里存放WebSocket支持的版本號等信息,如:Upgrade、Connection、WebSocket-Version等;

然后,服務器收到客戶端的握手請求后,同樣采用HTTP協議回饋數據;

最后,客戶端收到連接成功的消息后,開始借助于TCP傳輸信道進行全雙工通信。

三.總結兩者關系

Socket是傳輸控制層接口,WebSocket是應用層協議。

四.http與https

兩者的概念

http協議:是超文本傳輸協議,信息是明文傳輸。如果攻擊者截取了Web瀏覽器和網站服務器之間的傳輸報文,就可以直接讀懂其中的信息。

https協議:是具有安全性的ssl加密傳輸協議,為瀏覽器和服務器之間的通信加密,確保數據傳輸的安全。

68a42c82c7b49096287e9330a6278837.png

連接方式不同

1、http協議:http的連接很簡單,是無狀態的。

2、https協議:是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議。

端口不同

1、http協議:使用的端口是80。

2、https協議:使用的端口是443.

證書申請方式不同

1、http協議:免費申請。

2、https協議:需要到ca申請證書,一般免費證書很少,需要交費。

五.ssl協議

參考https://www.cnblogs.com/jztan/p/8159086.html

先講兩個概念

對稱加密: 加密和解密的秘鑰使用的是同一個.

非對稱加密: 與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)

ssl協議是非對稱加密

SSL協議的握手過程

先用語言來闡述下:

第一步:愛麗絲給出支持SSL協議版本號,一個客戶端隨機數(Client random,請注意這是第一個隨機數),客戶端支持的加密方法等信息;

第二步:鮑勃收到信息后,確認雙方使用的加密方法,并返回數字證書,一個服務器生成的隨機數(Server random,注意這是第二個隨機數)等信息;

第三步:愛麗絲確認數字證書的有效性,然后生成一個新的隨機數(Premaster secret),然后使用數字證書中的公鑰,加密這個隨機數,發給鮑勃。

第四步:鮑勃使用自己的私鑰,獲取愛麗絲發來的隨機數(即Premaster secret);(第三、四步就是非對稱加密的過程了)

第五步:愛麗絲和鮑勃通過約定的加密方法(通常是AES算法),使用前面三個隨機數,生成對話密鑰,用來加密接下來的通信內容;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443233.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443233.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443233.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python微博評論爬蟲_詳解用python寫網絡爬蟲-爬取新浪微博評論 基于Python的新浪微博爬蟲研究...

怎樣爬取新浪微博的評論信息針對八爪魚在微博的應用上,除了用戶信息之外還包括話題內容方面的采集,目前絕大多數企業均在微博設有官方微博,八爪魚可以協助企業快速及時的抓取與企業產品相關聯的話題信息,規則市場內有配置好的規則…

韓順平 mysql sqlhelper類_(最全)韓順平jsp購物車源代碼(包含數據庫)

【實例簡介】韓順平的jsp購物車項目,所有源碼都在,包含數據庫,是網絡上最全的【實例截圖】【核心代碼】myshopping└── myshopping├── myshopping│ ├── src│ │ ├── com│ │ │ └── hsp│ │ │ ├── domain│ │ │ │ ├── B…

c#和python更適合爬蟲_python在爬蟲方面有哪些優勢呢?

python是一門非常不錯的編程語言,通俗易懂、適合零基礎入門,尤其是爬蟲領域有著獨特的優勢,成為了首選編程語言。Python是一種計算機程序設計語言,是一種動態的、面向對象的腳本語言。Python最初被設計用于編寫自動化腳本(shell)&…

mysql創建獨立表空間_InnoDB獨立表空間

在查看MySQL的數據庫文件的時候會發現,MyISAM存儲引擎類型的表會有三個文件,*.frm,*.MYD,*.MYI,但是InnoDB存儲引擎的文件只有一個*.frm,原來是因為InnoDB沒有開啟獨立表空間,執行如下命令可以看到:mysql&g…

python os模塊方法_python os模塊方法總結

在python中os是一個非常常用的模塊,下面是對os中方法的總結(實驗為Mac環境)1 . os.name :輸出字符串指示使用的平臺,windows是nt, linux/unix/mac是posix>>> os.nameposix>>>2 . os.getcwd() :獲取當前目錄>>> …

java button中文亂碼_java解決中文亂碼的幾種寫法

工作中總會遇到中文亂碼問題,以導出文件,文件名稱是中文的話,下載下來的文件名稱會亂碼問題,總結了幾種解決文件名亂碼的寫法,僅供參考。首先定義一個漢語字符串String zhName "錯誤碼模板";一、java.net.U…

java jframe添加面板_JFrame添加組件的兩種方式

對JFrame添加組件有兩種方式:1) 用getContentPane()方法獲得JFrame的內容面板,再對其加入組件:frame.getContentPane().add(childCompontent)常分開來寫Container containergetContentPanel();(隱式的this.getContentPanel()) ;得到jframe的內…

java 德生讀卡器對接程序_德生TSW-F4 社保卡讀卡器.rar

【實例簡介】德生TSW-F4 社保卡讀卡器測試程序以及動態庫,出廠自帶程序【實例截圖】【核心代碼】b79d6d98-2fcb-4e20-ab26-8f7aa14b320c└── 德生TSW-F4 社保卡讀卡器├── TSW-F4 U系列讀寫器隨機軟件_20120907│ ├── Dll│ │ ├── F4.h│ │ ├…

ios 數組越界奔潰庫_iOS中防止數組越界之后發生崩潰

在iOS開發中有時會遇到數組越界的問題,從而導致程序崩潰。為了防止程序崩潰,我們就要對數組越界進行處理。通過上網查資料,發現可以通過為數組寫一個分類來解決此問題。基本思路:為NSArray寫一個防止數組越界的分類。分類中利用ru…

java map與set的區別_Java中的Set,List,Map的區別是什么?

對JAVA的集合的理解是想對于數組數組是大小固定的,并且同一個數組只能存放類型一樣的數據(基本類型/引用類型)JAVA集合可以存儲和操作數目不固定的一組數據。所有的JAVA集合都位于 java。util包中!JAVA集合只能存放引用類型的的數據,不能存放…

java怎么使用泛型_java泛型 7 泛型的基本介紹和使用

現在開始深入學習Java的泛型了,以前一直只是在集合中簡單的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一個十分重要的特性,所以要好好的研究下。一、泛型的基本概念泛型的定義:泛型是JDK 1.5的一項新特性…

java鋁輪_為速度而生 JAVA Fuoco鋁合金氣動公路

人類在追求速度的歷史上一直在不斷創新,從兩個輪子的自行車,到四個輪字的汽車,再到螺旋槳的飛機,追求速度是人類與生俱來的天性。就如同公路車的用途非常多,綜合型公路車、耐力型公路車、爬坡型公路車,但唯…

erlang mysql性能瓶頸,Erlang Mysql:如何防止SQL注入

Im very new to erlang and I need to code something which inserts rows in a MySQL Database.How can I prevent SQL Injections with Erlang? Is there also something like prepared statements in other Languages or how should I do it?Thanks for your replies.解決…

下列哪個不是java的數據類型_下面哪個不是Java基本數據類型?()

采集血標本時,錯誤的操作是A.血清標本應注入干燥試管B.生化檢驗標本在空腹時采集試比較脂肪酸β-氧化與生物合成的差異。調節水平衡的激素主要是A.胰島素 B.甲狀旁腺激素 C.血管升壓素 D求比50克多5克的數是多少?列式是…

Java jpa 字段限制_Java-JPA:僅更新特定字段

我有同樣的問題,正如Deinum先生所指出的,答案是否定的,您不能使用save。 主要問題是Spring Data不知道如何處理null。 是否設置了空值,還是因為需要將其刪除而設置了空值?現在從您的問題來看,我認為您也有同…

java excel中刪除兩列_Java 插入、隱藏/顯示、刪除Excel行或列

概述操作Excel工作表時,對表格中的行或列數據可執行,包括插入、隱藏、顯示、刪除等在內的多種操作需求,本文將通過Java代碼示例演示每種操作的具體實現方法。文中方法使用了Java Excel類庫(Free Spire.XLS for Java 免費版),可通過…

java屏蔽編譯告警_java-禁止JAXB生成的類上的編譯器警告

這可能是該問題的副本(Avoiding Compiler warnings on code generated by xjc),但是由于我不太了解XJC / JAXB自定義綁定特質,所以我想我可能誤解了所提到的問題.我的問題似乎很簡單-如何將SuppressWarnings(“ all”)批注添加到生成的JAXB類中?我們的項目有0個警告…

Java中number數字類型的轉換_Java下數字類型的轉換 (轉)

Java下數字類型的轉換 (轉)[more]作者:家居貓各種數字類型轉換成字符串型:String s String.valueOf( value); // 其中 value 為任意一種數字類型。字符串型轉換成各種數字類型:String s "169";byte b Byte.parseByte( s );short…

Java0steam_Java學習 - Stream 使用

Java Stream使用這段時間在學數據庫和Java,發現Java的Stream實際上和數據庫的查詢操作非常類似。這里簡單介紹Stream的用法,并和Sql Server中的操作聯系起來。此文為初學Stream所寫,以后對Stream有更深的理解后會重寫當我們使用一個流的時候&…

mysql初始化很慢_mysql初始化報錯

/var/log/mysql.log 日志報錯如上圖所示解決方法:SELinux惹的禍通俗的講就是linux服務器的安全策略解決:臨時關閉:setenforce 0永久關閉需要修改配置文件,重啟機器:修改/etc/selinux/config 文件將SELINUXenforcing改為…