[雜學筆記]HTTP1.0和HTTP1.1區別、socket系列接口與TCP協議、傳輸長數據的時候考慮網絡問題、慢查詢如何優化、C++的垃圾回收機制

目錄

1.HTTP1.0和HTTP1.1區別

2.socket系列接口與TCP協議

3.傳輸長數據的時候考慮網絡問題

4.慢查詢如何優化

5.C++的垃圾回收機制


1.HTTP1.0和HTTP1.1區別

  • 在連接方式上,HTTP1.0默認采用的是短鏈接的方式,就建立一次通信,也就是說即使在TCP協議下,完成了一個HTTP報文的請求和響應之后,也會關閉連接。這種頻繁的建立和關閉連接會增加服務器的負擔。雖然說HTTP1.0版本不支持長連接,但是可以通過設置Connection: Keep-Alive字段來啟動類似長連接的功能,但是是不標準的方式。而HTTP1.1引入了長連接機制,在一個TCP連接上可以傳遞多個HTTP請求與響應報文。
  • 緩存機制上,HTTP1.0采用的是通過字段的方式指定緩存的內容有效時間,客戶端在這段時間內可以使用緩存的副本而無需向服務器重新請求。但是這樣的話也無法驗證數據的實時性,可能服務端更新了呢?而HTTP1.1版本的話,增加了緩存控制能力,提供了字段來規定客戶端在使用緩存內容的時候,需要先向服務端驗證數據的有效性。

2.socket系列接口與TCP協議

  • socket建立網絡通信套接字、bind進行ip地址和端口號綁定、服務端進行listen監聽操作是在通信之間進行的。
  • connect接口:操作客戶端向服務器發起連接請求,在TCP協議層的操作就是相當于發起三次握手,直到客戶端收到第二次握手的SYN+ACK響應報文,connect函數才會返回,期間會一直阻塞住。
  • accept接口:服務端在接收到第三次握手的ACK報文之后,會和客戶端真正的建立連接,之后accept就是將全連接隊列中的連接對象與文件描述符建立連接。
  • listen接口的第二個參數:就是全連接隊列的最大長度。

3.傳輸長數據的時候考慮網絡問題

? ? ? ? 當網絡出現問題的時候導致的數據丟包的問題,并非是TCP協議能夠解決的問題了,因為TCP協議是在網絡通暢,雙方連接沒有斷開的情況下,維護發送但沒有收到應答的時候,但是一旦網絡出問題了,就相當于連接斷開了,那么在銷毀這個連接的時候,TCP緩存的數據也就跟著銷毀了。但是我們想做到的是,當網絡出現問題之后,在重新建立連接,數據會從上一次斷開連接的位置之后發送數據。

????????那么首先就需要在應用層協議的報頭上加入類似于TCP協議的32位序號和確認序號了,但是這里一個負責發送一個負責響應,所以只用一個序號就可以了。服務端報文的序號代表發送的數據序號,客戶端報文的序號代表接收到的數據塊序號。

? ? ? ? 之后再服務端的應用層,維護一個指針指向整體數據的已經發送并且得到確認的位置,那么就分成了兩個區域,指針左邊就是已發送已確認區域,右邊是沒發送或者發送了沒有確認的區域,這樣的話,該指針指向的位置,就是客戶端收到數據的位置。如果說網絡出現問題的話,再重新連接之后,會根據客戶端發來的序號,更新指針的位置,繼續發送數據。

? ? ? ? 對于客戶端來說,也需要再應用層將這些數據保存起來,并記錄收到的最后一個數據的序號,在網絡問題斷開連接后,重新連接,會將該序號放進報頭中,告訴服務端該從哪里發送了。

? ? ? ? 因為是分塊發送的,所以服務端最后需要告訴客戶端數據發送完畢了,所以就會出現很多類型報文,所以還需要再報頭添加報文類型字段:客戶端請求響應報文,服務端發送數據塊報文、客戶端接收到數據塊的響應報文、服務端發送完所有數據的報文。

????????

4.慢查詢如何優化

? ? ? ? 慢查詢是數據庫的一個概念,指的是執行時間過長超過了long_query_time設定的值的擦汗尋語句,就屬于慢查詢語句。慢查詢會對數據庫的性能產生嚴重影響,當數據庫中有大量的慢查詢的時候,會導致數據庫服務器的CPU使用了過高。還可能導致數據庫連接池被沾滿,新的請求無法及時獲取到。

  • 優化查詢語句本身:第一:索引優化;第二:子查詢優化,盡量減少嵌套查詢的使用,例如,有一個查詢需要獲取購買了某一商品的用戶信息,一種不好的做法是先通過子查詢找到購買了該商品的用戶 ID,然后再在另一個查詢中根據這些用戶 ID 獲取用戶信息。這種嵌套子查詢可以通過使用連接(JOIN)操作來優化;第三:盡量不要使用select *語句。
  • 優化數據庫架構:第一:采用合理的數據類型定義字段;第二:對于大型數據表,可以考慮使用分區結構
  • 優化服務器配置:第一:調整緩存大小,第二:硬件的升級

5.C++的垃圾回收機制

? ? ? ? C++沒有配套的垃圾回收機制,需要程序員使用new、delete去手動的管理內存資源,也可以使用C++11的智能指針,配合析構函數來實現對資源的自動管理。或者使用第三方庫來實現資源的回收工作。

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

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

相關文章

ANI AGI ASI的區別

??ANI、?AGI、?ASI的區別主要體現在定義、特點和應用場景上?: 1. ANI(狹義人工智能 Artificial narrow intelligence)?: ?定義?:ANI,也被稱為弱人工智能,是指專門設計用于執行特定任務…

用OpenCV寫個視頻播放器可還行?(Python版)

引言 提到OpenCV,大家首先想到的可能是圖像處理、目標檢測,但你是否想過——用OpenCV實現一個帶進度條、倍速播放、暫停功能的視頻播放器?本文將通過一個實戰項目,帶你深入掌握OpenCV的視頻處理能力,并解鎖以下功能&a…

leetcode日記(77)子集Ⅱ

不知道為什么看到這道題就很頭痛…… 其實只要掌握nums不包含重復元素的情況下的代碼就行了。 若nums不能包含重復元素&#xff0c;那么使用回溯很容易就能寫出來&#xff1a; class Solution {void hs(vector<int> v,int x,vector<int> r,vector<vector<…

通俗版解釋:分布式和微服務就像開餐廳

一、分布式系統&#xff1a;把大廚房拆成多個小廚房 想象你開了一家超火爆的餐廳&#xff0c;但原來的廚房太小了&#xff1a; 問題&#xff1a;一個廚師要同時切菜、炒菜、烤面包&#xff0c;手忙腳亂還容易出錯。 解決方案&#xff1a; 拆分成多個小廚房&#xff08;分布式…

StarRocks-fe工程在Cursor中不能識別為Java項目

SR簡介 StarRocks 是一款高性能分析型數據庫&#xff0c;支持實時、多維度、高并發的數據分析。本指南旨在解決在使用 VSCode 或 Cursor 開發 StarRocks 后端項目時遇到的模塊識別問題。 問題描述 使用 Cursor 或 VSCode 打開 StarRocks 的后端工程 fe 時&#xff0c;spark-…

第五節:基于Winform框架的串口助手小項目---串口收發《C#編程》

“路漫漫其修遠兮&#xff0c;吾將上下而求索” &#xff0c; -----------------------WHAPPY 目標任務&#xff1a; 1 從本地設備列表獲取串口。 RegistryKey keyCom Registry.LocalMachine.OpenSubKey("Hardware\DeviceMap\SerialComm"); RegistryKey 是.NET 框…

專題二最大連續1的個數|||

1.題目 題目分析&#xff1a; 給一個數字k&#xff0c;可以把數組里的0改成1&#xff0c;但是只能改k次&#xff0c;然后該變得到的數組能找到最長的子串且都是1。 2.算法原理 這里不用真的把0變成1&#xff0c;因為改了比較麻煩&#xff0c;下次用就要改回成1&#xff0c;這…

25年第四本【認知覺醒】

《認知覺醒》&#xff1a;一場與大腦的深度談判 在信息爆炸的焦慮時代&#xff0c;我們像被拋入湍流的溺水者&#xff0c;拼命抓取各種自我提升的浮木&#xff0c;卻在知識的漩渦中越陷越深。這不是一本簡單的成功學指南&#xff0c;而是一場關于人類認知系統的深度對話&#…

甘特圖開發代碼(測試版)

場景&#xff1a;要實現的功能就是單行數據能左右拖動。 流程五個&#xff1a;ABCDE。&#xff08;對應&#xff1a;Charter開發、概念和計劃、初樣開發、正樣開發、驗證&#xff09; 1、A有開始時間&#xff0c;結束時間。B的開始時間必須是A的結束時間&#xff08;相等或者…

服務器配置-從0到分析4:ssh免密登入

該部分涉及到公鑰、私鑰等部分knowledge&#xff0c;本人僅作嘗試 若將本地機器 SSH Key 的公鑰放到遠程主機&#xff0c;就能無需密碼直接遠程登錄遠程主機 1&#xff0c;在客戶端生成 ssh 公私鑰&#xff1a; 也就是我們本地機器&#xff0c;windows電腦 一路回車即可&am…

使用easyocr、PyPDF2對圖像及PDF文檔進行識別

一、概述 本 Python 腳本的主要功能是對當前目錄及其子目錄下的圖片和 PDF 文件進行光學字符識別&#xff08;OCR&#xff09;處理。它使用 easyocr 庫處理圖片中的文字&#xff0c;使用 PyPDF2 庫提取 PDF 文件中的文本&#xff0c;并將處理結果保存為文本文件。同時&#xff…

2000-2020年各省地方財政一般預算支出數據

2000-2020年各省地方財政一般預算支出數據 1、時間&#xff1a;2000-2020年 2、來源&#xff1a;國家統計局、統計年鑒 3、指標;行政區劃代碼、地區、年份、地方財政一般預算支出(億元) 4、范圍&#xff1a;31省 5、指標解釋&#xff1a;一般預算支出是國家對集中的預算收…

k8s 中各種發布方式介紹以及對比

前言 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;不同的發布策略&#xff08;如金絲雀發布、灰度發布、藍綠發布等&#xff09;各有其適用場景和優缺點。 1. 滾動發布&#xff08;Rolling Update&#xff09; 核心原理&#xff1a;逐步替換舊版本 Pod 為新版本&…

力扣HOT100之哈希:1. 兩數之和

這道題之前刷代碼隨想錄的時候已經刷過好幾遍了&#xff0c;看到就直接秒了。這道題主要是通過unordered_map<int, int>來建立哈希表&#xff0c;其中鍵用來保存向量中的元素&#xff0c;而對應的值則為元素的下標。遍歷整個向量&#xff0c;當遍歷到nums[i]時&#xff0…

kakfa-3:ISR機制、HWLEO、生產者、消費者、核心參數負載均衡

1. kafka內核原理 1.1 ISR機制 光是依靠多副本機制能保證Kafka的高可用性&#xff0c;但是能保證數據不丟失嗎&#xff1f;不行&#xff0c;因為如果leader宕機&#xff0c;但是leader的數據還沒同步到follower上去&#xff0c;此時即使選舉了follower作為新的leader&#xff…

從小米汽車召回看智駕“命門”:智能化時代 — 時間就是安全

2025年1月&#xff0c;小米因車輛“授時同步異常”召回3萬余輛小米SU7&#xff0c;成為其造車歷程中的首個重大安全事件。 從小米SU7召回事件剖析&#xff0c;授時同步何以成為智能駕駛的命門&#xff1f; 2024年11月&#xff0c;多名車主反饋SU7標準版的智能泊車輔助功能出現…

FastGPT 引申:如何基于 LLM 判斷知識庫的好壞

文章目錄 如何基于 LLM 判斷知識庫的好壞方法概述示例 Prompt聲明抽取器 Prompt聲明檢查器 Prompt 判斷機制總結 下面介紹如何基于 LLM 判斷知識庫的好壞&#xff0c;并展示了如何利用聲明抽取器和聲明檢查器這兩個 prompt 構建評價體系。 如何基于 LLM 判斷知識庫的好壞 在知…

【數據挖掘】NumPy的索引與切片(Indexing Slicing)

&#x1f4cc; NumPy ndarray 的索引與切片&#xff08;Indexing & Slicing&#xff09; NumPy 提供 靈活高效 的索引與切片方式&#xff0c;支持 一維、二維、多維數組 的訪問與操作。 1?? 索引&#xff08;Indexing&#xff09; 索引用于訪問 NumPy 數組中的 單個元素…

AI工具:deepseek+階躍視頻,生成好玩的視頻

目標 測試一下&#xff0c;當下好玩的AI工具&#xff0c;緩解一下緊張的AI學習~ 用deepseek生成視頻制作提示詞&#xff0c;讓后把提示詞給階躍視頻生成&#xff0c;一個視頻就生成了。具體操作如下。 操作過程 在階躍官網&#xff0c;階躍AI&#xff0c;注冊一個賬號&…

利用矩陣相乘手動實現卷積操作

卷積&#xff08;Convolution&#xff09; 是信號處理和圖像處理中的一種重要操作&#xff0c;廣泛應用于深度學習&#xff08;尤其是卷積神經網絡&#xff0c;CNN&#xff09;中。它的核心思想是通過一個卷積核&#xff08;Kernel&#xff09; 或 濾波器&#xff08;Filter&am…