【計算機網絡 | 第二篇】常見的通信協議(一)

HTTP和HTTPS有什么區別?

端口號:HTTP默認是80端口,HTTPS默認是443。

URL前綴:HTTPHTTP 的 URL 前綴是?http://,HTTPS 的 URL 前綴是?https://

安全性和資源消耗:HTTP協議運行在TCP上,都是明文傳輸,客戶端和服務端都無法驗證對方的身份。HTTPS協議是運行在SSL/TLS上的HTTP協議,SSL/TLS運行在TCP上,所有傳輸內容都經過加密,加密采用對稱加密,但是對稱加密的密鑰用服務器方的證書采用非對稱加密。所以HTTP協議沒有HTTPS協議安全,但是HTTPS協議比HTTP協議耗費更多資源。

SEO(搜索引擎優化):?搜索引擎會更加青睞使用HTTPS協議的網站,因為HTTPS能夠提供更高的安全保護。使用HTTPS協議的網站在搜索結果在可能會被優先顯示,從而對SEO產生影響。

WebSocket

什么是WebSocket?

WebSocket是一種基于TCP連接的全雙工通信協議,即客戶端和服務端可以同時發送和接收信息。

WebSocket 協議本質上是應用層的協議,用于彌補 HTTP 協議在持久通信能力上的不足。客戶端和服務器僅需一次握手,兩者之間就直接可以創建持久性的連接,并進行雙向數據傳輸。

?WebSocket和HTTP有什么區別?

WebSocket和HTTP都是基于TCP的應用層協議,都可以在網絡中傳輸數據。

兩者區別:

  • WebSocket 是一種雙向實時通信協議,而 HTTP 是一種單向通信協議。并且,HTTP 協議下的通信只能由客戶端發起,服務器無法主動通知客戶端。
  • WebSocket 使用 ws:// 或 wss://(使用 SSL/TLS 加密后的協議,類似于 HTTP 和 HTTPS 的關系) 作為協議前綴,HTTP 使用 http:// 或 https:// 作為協議前綴。
  • WebSocket 可以支持擴展,用戶可以擴展協議,實現部分自定義的子協議,如支持壓縮、加密等。
  • WebSocket 通信數據格式比較輕量,用于協議控制的數據包頭部相對較小,網絡開銷小,而 HTTP 通信每次都要攜帶完整的頭部,網絡開銷較大(HTTP/2.0 使用二進制幀進行數據傳輸,還支持頭部壓縮,減少了網絡開銷)。

WebSocket工作過程

  1. 客戶端向服務器發送一個 HTTP 請求,請求頭中包含 Upgrade: websocketSec-WebSocket-Key 等字段,表示要求升級協議為 WebSocket;
  2. 服務器收到這個請求后,會進行升級協議的操作,如果支持 WebSocket,它將回復一個 HTTP 101 狀態碼,響應頭中包含 ,Connection: UpgradeSec-WebSocket-Accept: xxx 等字段、表示成功升級到 WebSocket 協議。
  3. 客戶端和服務器之間建立了一個 WebSocket 連接,可以進行雙向的數據傳輸。數據以幀(frames)的形式進行傳送,WebSocket 的每條消息可能會被切分成多個數據幀(最小單位)。發送端會將消息切割成多個幀發送給接收端,接收端接收消息幀,并將關聯的幀重新組裝成完整的消息。
  4. 客戶端或服務器可以主動發送一個關閉幀,表示要斷開連接。另一方收到后,也會回復一個關閉幀,然后雙方關閉 TCP 連接。

另外,建立 WebSocket 連接之后,通過心跳機制來保持 WebSocket 連接的穩定性和活躍性。

TCP與UDP

TCP與UDP的區別

1.是否面向連接:UDP傳輸數據不需要建立連接。TCP傳輸數據前要先建立連接,并且傳輸數據結束后要斷開連接。

2.是否是可靠傳輸:主機在收到UDP報文后,不需要任何確定,并且不保證數據不丟失,不保證數據是否順序到達。TCP提供可靠的傳輸服務,TCP在傳輸數據前,會通過三次握手來確認連接,并且通過TCP傳輸的數據無差錯、不丟失、不重復、按時到達。

3.是否有狀態:TCP傳輸是有狀態的,當TCP傳輸數據之后,TCP會去記錄自己的狀態,比如消息是否被發送了,是否被成功接收到了,為此TCP需要維護復雜的狀態記錄表。而UDP在消息發出之后就不管了。

4.傳輸效率:由于TCP傳輸數據之前要先建立連接,同時又要保證數據的可靠傳輸,因此TCP傳輸效率低于UDP。

怎么選擇TCP和UDP?

UDP一般用于即時通信:比如視頻、直播,即使消息丟失一些,也不會有什么影響。這些場景對于信息傳輸準確性要求不高。

TCP對于傳輸準確要求高的場景:比如發送郵件、文件傳輸等等。

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

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

相關文章

【python實用小腳本系列】用 Python 自己手搓一個給視頻“靜音”的小腳本,批量處理,輕松高效制作“無聲電影”!

嘿,小伙伴們!今天我來給大家介紹一個超實用的 Python 小工具——一個能給視頻“靜音”的“聲音消除器”!是不是聽起來很酷?想象一下,你可以把任何有聲視頻變成無聲視頻,是不是很有趣?接下來&…

【gpt生成-總覽】怎樣才算開發了一門編程語言,需要通過什么測試

開發一門真正的編程語言需要經歷完整的設計、實現和驗證過程,并通過系統的測試體系驗證其完備性。以下是分階段開發標準及測試方法: 一、語言開發核心階段 1. 語言規范設計(ISO/IEC 標準級別) ??語法規范??:BNF/…

leetcode222 完全二叉樹的節點個數

完全二叉樹 的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其余每層節點數都達到最大值,并且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層(從第 0 層開始),則該層…

若依集成BladeX單點登錄的令牌管理與api請求流程

目錄 概述系統架構單點登錄流程令牌管理機制接口調用流程關鍵代碼實現數據結構安全性考慮常見問題與解決 概述 本文檔詳細說明若依系統如何實現與BladeX的單點登錄集成,包括令牌管理和接口調用的完整流程。整個集成采用基于OAuth2的授權碼流程,允許用…

《AI大模型應知應會100篇》第27篇:模型溫度參數調節:控制創造性與確定性

第27篇:模型溫度參數調節:控制創造性與確定性 摘要 在大語言模型的使用中,“溫度”(Temperature)是一個關鍵參數,它決定了模型輸出的創造性和確定性之間的平衡。通過調整溫度參數,您可以根據任…

愛普生SG2520VGN差分晶振5G基站的時鐘解決方案

在 5G 通信時代,數據流量呈爆發式增長,5G 基站作為信號的核心中轉樞紐,承載著前所未有的數據傳輸與處理重任。從海量的物聯網設備連接,到高速移動用戶的數據交互,每一個環節都對基站的性能提出了嚴苛要求。而精準穩定的…

GitHub SSH連接終極解決方案

GitHub SSH連接終極解決方案:443端口修改多場景故障排查指南 一、問題現象速查 當開發者執行以下命令時出現連接異常: ssh -T gitgithub.com常見報錯類型: 經典端口阻塞ssh: connect to host github.com port 22: Connection refused密鑰驗…

面向新一代擴展現實(XR)應用的物聯網框架

中文標題: 面向新一代擴展現實(XR)應用的物聯網框架 英文標題: Towards an IoT Framework for the New Generation of XR Applications 作者信息 Joo A. Dias,UNIDCOM - IADE,歐洲大學,里斯本&…

Qt unknown module(s) in qt:serialport解決方法

在Ubuntu和CentOS系統中,若使用Qt時遇到Unknown module(s) in QT: serialport錯誤,通常是由于未正確安裝Qt的串口模塊(QSerialPort)或項目配置不當導致。以下是針對兩種系統的解決方案: 一、安裝Qt串口模塊 1. Ubuntu/Debian系列 安裝開發包: 執行以下命令安裝Qt5串口模…

閥門軸承電動車工件一鍵精修軟件

若需定制開發“ComfyUI意見精修軟件” 技術棧建議: 前端:React/Vue Figma插件API(直接讀取設計稿)。 后端:Node.js/Python NLP庫(spaCy/NLTK)。 數據庫:MongoDB(存儲…

chapter32_SpringMVC與DispatcherServlet

一、簡介 從本章節開始進入SpringMVC的學習,SpringMVC最重要的類就是DispatcherServlet DispatcherServlet的本質是一個Servlet,回顧一下Servlet JavaWeb就是基于Servlet的Servlet接口有5個方法Servlet實現類是HttpServlet,自定義的Servle…

《Learning Langchain》閱讀筆記3-基于 Gemini 的 Langchain如何從LLMs中獲取特定格式

純文本輸出是有用的,但在某些情況下,我們需要 LLM 生成結構化輸出,即以機器可讀格式(如 JSON、XML 或 CSV)或甚至以編程語言(如 Python 或 JavaScript)生成的輸出。當我們打算將該輸出傳遞給其他…

中間件--ClickHouse-12--案例-1-日志分析和監控

1、案例背景 一家互聯網公司需要實時分析其服務器日志、應用日志和用戶行為日志,以快速發現潛在問題并優化系統性能。 2、需求分析 目標:實時分析日志數據,快速發現問題并優化系統性能。數據來源: 服務器日志:如 Ng…

多道程序和多任務操作系統區別

多道程序 vs. 多道任務:對比分析 ? 共同點 方面共同特征核心機制都依賴于進程/任務切換執行需求實現多個程序或任務"并發"執行系統支持都需要操作系統的支持(如調度算法、內存管理)本質目標提高資源利用率(CPU不空轉…

齊次坐標變換+Unity矩陣變換

矩陣變換 變換(transform):指的是我們把一些數據,如點,方向向量甚至是顏色,通過某種方式(矩陣運算),進行轉換的過程。 變換類型 線性變換:保留矢量加和標量乘的計算 f(x)…

閑來無事,用HTML+CSS+JS打造一個84鍵機械鍵盤模擬器

今天閑來無聊,突發奇想要用前端技術模擬一個機械鍵盤。說干就干,花了點時間搞出來了這么一個有模有樣的84鍵機械鍵盤模擬器。來看看效果吧! 升級版的模擬器 屏幕錄制 2025-04-18 155308 是不是挺像那么回事的?哈哈! 它…

智慧城市:如同為城市裝上智能大腦,開啟智慧生活

智慧城市的概念隨著信息技術的飛速發展而逐漸興起,它通過集成物聯網、大數據、人工智能和數字孿生等先進技術,為城市管理和居民生活帶來了前所未有的智能化變革。本文將深入探討這些核心技術及其在智慧城市的典型應用場景,展示智慧城市如何提…

科技快訊 | 智譜開源最新GLM模型系列;“AI 洗頭店”現身廣州;ChatGPT上線圖庫功能

智譜開源最新GLM模型系列,啟用全球域名“Z.ai” 4月15日,智譜開源最新GLM模型系列,包括32B和9B尺寸,涵蓋基座、推理、沉思三類模型,全部遵循MIT開源許可協議。推理模型GLM-Z1-32B-0414實測推理速度達200 tokens/秒&…

第32講:衛星遙感與深度學習融合 —— 讓地球“讀懂”算法的語言

目錄 ?? 一、講講“遙感+深度學習”到底是干啥的? ? 能解決什么問題? ?? 二、基礎原理串講:深度學習如何“看懂”遙感圖? ?? 遙感圖像數據類型: ?? CNN的基本思路: ?? 三、實戰案例:用CNN對遙感圖像做地類分類 ?? 所需R包: ??? 步驟一:構建訓…

【多線程5】面試常考鎖知識點

文章目錄 悲觀/樂觀鎖掛起等待鎖/自旋鎖偏向鎖輕量級/重量級鎖鎖升級CASCAS引發的ABA問題解決方案 原子類 公平/不公平鎖可重入鎖ReentrantLock讀寫鎖 Callable接口 這里的“悲觀”“樂觀”“掛起等待”“自旋”“輕量級”“重量級”“公平”“非公平”“可重入”僅代表某個鎖的…