計算機網絡常識:緩存、長短連接 網絡初探、URL、客戶端與服務端、域名操作 tcp 三次握手 四次揮手

緩存:?

緩存是對cpu,內存的一個節約:節約的是網絡帶寬資源 節約服務器的性能

資源的每次下載和請求都會造成服務器的一個壓力

減少網絡對資源拉取的延遲 這個就是瀏覽器緩存的一個好處

表示這個html頁面的返回是不要緩存的 忽略緩存? 需要每次都到服務器上獲取新的

并不是不緩存 而是提示瀏覽器忽略緩存

pragma:no-cache:瀏覽器忽略緩存 出現在響應頭里面

用來控制緩存:

瀏覽器發起請求,先會去看有沒有緩存 沒有緩存直接去請求服務器去拉取資源

在有緩存,但是緩存過期的情況下

返回304的條件:

從磁盤緩存當中去獲取:過期時間沒有到

圖片一定是設置了過期時間的 圖片資源不放在服務器上 用單獨的圖片服務器?

圖片就會做一個緩存?

視頻類的存儲在磁盤當中

三次握手 四次揮手的狀態變化

狀態變化是從三次握手開始的

服務器:啟動--綁定--設置監聽 listen()--監聽先準備好 這樣才是有效的

從無狀態變成listen

這樣開始三次握手的操作:

(1)第一次握手:客戶端發起 客戶端調用connect函數

rcvd:接收

第二次握手服務器發生變化? 客戶端收到服務器的返回頁發生變化

當最后成功 客戶端和服務器是一個樣子 都是established

三次握手成功 雙方連接建立

建立之后就可以進行通信了--進行數據傳輸 通信過程中tcp是沒有發生任何變化的

established就是正常的通信狀態

SYN==1 發起連接請求 ==0時是沒有連接

?三次握手:

第一次握手:建立連接時,客戶端發送SYN包到服務器,并等待服務器確認。

第二次握手:服務器收到SYN包,同時自己也給客戶端發送一個確認包SYN+ACK包。

第三次握手: 客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK。

此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP連接成功)狀態,完成三次握手

四次揮手:

雙方通信完畢,關閉連接時,要進行四次揮手

第一次揮手:客戶端發送一個FIN包,申請斷開連接,并等待服務器確認。

第二次揮手:服務端回復一個ACK包,表示接受到客戶端的關閉連接請求,但現在服務端還不能馬上關

閉連接,需要檢查下是否還有未處理完的數據

第三次揮手:服務端處理完所有數據,給客戶端發送FIN包,表示可以斷開連接

第四次揮手:客戶端回復ACK包,表示斷開連接

http的長短連接:

短連接:每次請求都會建立連接

長連接就是只建立一次連接 多次資源請求都復用該連接 完成后關閉

網絡深層知識:

?瀏覽器請求一個網頁:

客戶端就是用戶所用的程序:瀏覽器? 應用程序等等都叫做客戶端client

客戶端client

服務端就是存儲數據 存儲網頁的程序 還有處理數據的一個載體

服務端:數據和文件的出口? ?客戶端就是數據的入口

后臺是數據的管理

服務器就是電腦:家用電腦 配置高一點 服務器的系統帶server

我們輸入一個url地址,回車:就會對網址先進行dns解析 先去解析到底是什么東西

將網址轉換成ip地址? 然后通往服務器 這個過程會建立三次握手和四次揮手

這個就是請求網頁的流程!!!!

一般來說,一個服務器承載著一個或者多個ip地址?

一個網址對應一個ip地址 那為什么不直接使用ip而使用URL地址呢?

首先是方便記憶 數字不方便記憶

一個ip地址能映射出多個域名 所以ip地址是不適合用戶直接接觸的

計算機對數字是比較敏感的

三次握手才會真正的建立三次握手的連接 建立連接之后才能進行http請求

服務器返回,客戶端收到的是html代碼文件,瀏覽器進行解析和渲染

等到渲染頁面結束,進行四次揮手

tcp/ip的這種連接方式叫做長連接

重點:

tcp在哪個層

回答下tcp的功能

tcp為什么是三次握手?不是兩次四次?

如果只做兩次,無法去確認客戶端的接收能力

tcp面向連接 必須是雙方的 如果只有兩次 只是服務器建立 客戶端并沒有

造成連接資源的浪費

四次是沒有必要的 所以沒有必要進行第四次握手

TCP為什么需要4次揮手??為什么不是三次?

如果將第二次和第三次和為一體 第二次和第三次之間是有時間延遲的

導致客戶端不能及時接收:客戶端會重新發送斷開請求

ack和fin之間是有時差的

這個延遲是沒有辦法處理的 只能是把這兩次都分開 這樣才能達到效率最高

只有當客戶端和服務器兩端都確定好要斷開了 才能斷開?

四次是最優的方案

五次會造成資源的浪費

異常狀態碼,400應該找前端還是后端

HTTP狀態碼?400?表示客戶端請求存在語法或參數錯誤,其責任歸屬需要具體分析。?

http是哪一層協議

osi七層協議有哪七層??tcp四層模型

tcp四層模型

物理層和數據鏈路層合稱為網絡接口層

三層交換機具有路由功能

分層:方便管理

第七層 應用層

應用層是OSI模型中的最高層,也是和用戶最近的一層。它直接面向用戶和應用程序,為用戶提供各種網絡服務和應用程序支持

第六層 表示層

負責數據格式與編碼方式的轉換、加密解密和數據壓縮等任務。在實際的通信協議中,表示層往往與應用層或會話層結合使用,對數據進行處理和轉換。

第五層 會話層

在OSI七層模型中,會話層沒有單獨的協議,而是利用下層協議提供的會話機制來實現數據交換。會話層的作用是管理和協調應用程序之間的對話和會話,并與表示層一起支持數據轉換、加密和解密等功能。

第四層 傳輸層


傳輸層的作用是在不可靠的網絡上提供可靠的數據傳輸服務。它負責將應用程序發送的數據分割成較小的數據段,并使用可靠的數據傳輸協議(如TCP)或不可靠的數據傳輸協議(如UDP)將這些數據段傳輸到目標設備。傳輸層還負責控制數據流量、錯誤恢復和擁塞控制等任務。
如果你想要穩,就選tcp,想要穩,就選UDP

第三層 網絡層

負責將數據包從源主機傳輸到目標主機。網絡層通過使用IP協議來實現這一過程,提供了路由、尋址和分組傳輸等功能,以確保數據能夠經過多個網絡進行傳輸,并最終到達目標主機。

第二層 數據鏈路層

負責將網絡層傳輸過來的數據包進行分幀,并在物理介質上進行傳輸。數據鏈路層還提供了錯誤檢測和糾正功能,以確保數據的可靠性。此外,數據鏈路層還實現了訪問控制和流量控制等功能,以協調多個設備之間的數據傳輸。

第一層 物理層

這一層就是osi最底層了,負責將數字數據轉換成物理信號并在網絡中傳輸。其意義在于實現不同設備之間的數據傳輸和通信,使得計算機網絡得以正常工作。物理層還定義了傳輸媒介、傳輸速率、編碼方式等參數,為上層協議提供了可靠的數據傳輸基礎。

就是進行物理連接的

get和post請求的區別?

應用層的常見協議有哪些??

http狀態碼

常見HTTP狀態碼 :

1xx :100 Continue繼續:客戶端應繼續其請求

2xx :200 OK

請求已成功,請求所希望的響應頭或數據體將隨此響應返回。出現此狀態碼是表示正常狀態。

204 No Content(無內容)

服務器成功處理,但未返回內容。在未更新網頁的情況下,可確保瀏覽器繼續顯示當前文檔。

206 Partial Content(部分內容)

服務器成功處理了部分GET請求。

3xx

301 Moved Permanently(永久重定向)

請求的資源已被永久的移動到新URL,返回信息會包括新的URL,瀏覽器會自動定向到新URL。今后任何新的請求都應使用新的URI代替。

302 Found(臨時重定向)

與301類似。但資源只是臨時被移動。表示請求的資源被分配了新的URL,希望本次訪問使用新的URL。

303 See Othe(查看其他地址)

當請求者應對不同的位置進行單獨的 GET 請求以檢索響應時,服務器會返回此代碼。對于除 HEAD 請求之外的所有請求,服務器會自動轉到其他位置。

304 Not Modified(未修改)

所請求的資源未修改,服務器返回此狀態碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源。

305 Use Proxy(使用代理)

請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,那么,服務器還會指明請求者應當使用的代理

307 Temporary Redire(臨時重定向)

與303有著相同的含義,307會遵照瀏覽器標準不會從POST變成GET;(不同瀏覽器可能會出現不同的情況)。

4xx :

400 Bad Request (語法錯誤)

客戶端請求的語法錯誤,服務器無法理解。

401 Unauthorized(未授權)

請求要求用戶的身份認證

403 Forbidden(禁止)

服務器理解請求客戶端的請求,但是拒絕執行此請求

404 Not Found(未找到)

服務器無法根據客戶端的請求找到資源(網頁)。除此之外,也可以在服務器拒絕請求但不想給拒絕原因時使用。

405 Method Not Allowed (方法禁用)

客戶端請求中的方法被禁止。

406 Not Acceptable(不接受)

無法使用請求的內容特性來響應請求的網頁。

408 Request Time-out(請求超時)

服務器等待客戶端發送的請求時間過長,超時。

5xx

500Internal Server Error(服務器內部錯誤)

服務器遇到錯誤,無法完成請求。

501 Not Implemented(尚未實施)

服務器不具備完成請求的功能。例如,當服務器無法識別請求方法時,服務器可能會返回此代碼。

502 Bad Gateway(錯誤網關)

作為網關或者代理工作的服務器嘗試執行請求時,從遠程服務器接收到了一個無效的響應

503 Service Unavailable(服務不可用)

由于超載或系統維護,服務器暫時的無法處理客戶端的請求。通常,這只是一種暫時的狀態。

504 Gateway Time-out(網關超時)

服務器作為網關或代理,未及時從上游服務器接收請求。

505 HTTP Version not supported(HTTP 版本不受支持)

服務器不支持請求中所使用的 HTTP 協議版本。

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

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

相關文章

《構建社交應用用戶激勵引擎:React Native與Flutter實戰解析》

React Native憑借其與JavaScript和React的緊密聯系,為開發者提供了一個熟悉且靈活的開發環境。在構建用戶等級體系時,它能夠充分利用現有的前端開發知識和工具。通過將用戶在社交應用中的各種行為進行量化,比如發布動態的數量、點贊評論的次數…

接口自動化測試框架詳解(pytest+allure+aiohttp+ 用例自動生成)

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快 近期準備優先做接口測試的覆蓋,為此需要開發一個測試框架,經過思考,這次依然想做點兒不一樣的東西。 接口測試是比較講究效…

Linux-----文件系統

文件大家都知道,前面的我的博客課程也為大家解釋了關于文件的打開等,今天我們要談論的是 文件在沒被打開的時候在磁盤中的位置和找到它的方式。 畫圖為大家展示: 方便理解 我們從下面幾個方面入手: 1. 看看物理磁盤 2. 了解一…

C++ set替換vector進行優化

文章目錄 demo代碼解釋&#xff1a; 底層原理1. 二叉搜索樹基礎2. 紅黑樹的特性3. std::set 基于紅黑樹的實現優勢4. 插入操作5. 刪除操作6. 查找操作 demo #include <iostream> #include <set>int main() {// 創建一個存儲整數的std::setstd::set<int> myS…

如何巧妙解決 Too many connections 報錯?

1. 背景 在日常的 MySQL 運維中&#xff0c;難免會出現參數設置不合理&#xff0c;導致 MySQL 在使用過程中出現各種各樣的問題。 今天&#xff0c;我們就來講解一下 MySQL 運維中一種常見的問題&#xff1a;最大連接數設置不合理&#xff0c;一旦到了業務高峰期就會出現連接…

QT的布局和彈簧及其代碼解讀

this指的是真正的當前正在顯示的窗口 main函數&#xff1a; Widget w是生成了一個主窗口&#xff0c;QT Designer是在這個主窗口里塞組件 w.show()用來展示這個主窗口 頭文件&#xff1a; namespace Ui{class Widget;}中的class Widget和下面的class Widget不是一個東西 Ui…

《AI大模型應知應會100篇》第52篇:OpenAI API 使用指南與最佳實踐

第52篇&#xff1a;OpenAI API 使用指南與最佳實踐 &#x1f4cc; 摘要 本文將帶你從零開始掌握 OpenAI API 的核心使用方法&#xff0c;涵蓋從基礎調用到高級功能的完整實戰路徑。通過詳細的代碼示例、圖文解析和可運行的 Python 腳本&#xff0c;幫助你快速上手 GPT-3.5、GP…

C#學習7_面向對象:類、方法、修飾符

一、類 1class 1)定義類 訪問修飾符class 類名{ 字段 構造函數&#xff1a;特殊的方法&#xff08;用于初始化對象&#xff09; 屬性 方法... } eg: public class Person { // 字段 private string name; private int a…

湖北理元理律師事務所:債務優化中的“生活保障”方法論

債務危機往往伴隨生活質量驟降&#xff0c;如何在還款與生存間找到平衡點&#xff0c;成為債務優化的核心挑戰。湖北理元理律師事務所基于多年實務經驗&#xff0c;提出“雙軌并行”策略&#xff1a;法律減負與生活保障同步推進。 債務優化的“溫度法則” 1.生存資金預留機制…

Jetpack Compose與Kotlin UI開發革命

Jetpack Compose + Kotlin:Android UI 開發的革命 簡介 Jetpack Compose 是 Google 推出的現代 Android UI 工具包,結合 Kotlin 語言,徹底改變了傳統 Android 開發的模式。過去,開發者依賴 XML 布局和命令式編程(如 findViewById 和手動更新視圖),導致代碼冗長且易出錯…

基于pyqt的上位機開發

目錄 安裝依賴 功能包含 運行結果 安裝依賴 pip install pyqt5 pyqtgraph pyserial 功能包含 自動檢測串口設備&#xff0c;波特率選擇/連接斷開控制&#xff0c;數據發送/接收基礎框架&#xff0c;實時繪圖區域&#xff08;需配合數據解析&#xff09; ""&q…

QT人工智能篇-opencv

第一章 認識opencv 1. 簡單概述 OpenCV是一個跨平臺的開源的計算機視覺庫&#xff0c;主要用于實時圖像處理和計算機視覺應用?。它提供了豐富的函數和算法&#xff0c;用于圖像和視頻的采集、處理、分析和顯示。OpenCV支持多種編程語言&#xff0c;包括C、Python、Java等&…

Python自學第5天:字符串相關操作

1.字符串運算符 作符描述字符串連接*重復輸出字符串[]通過索引獲取字符串中字符[ : ]截取字符串中的一部分&#xff0c;遵循左閉右開原則&#xff0c;str[0:2] 是不包含第 3 個字符的。in成員運算符 - 如果字符串中包含給定的字符返回 Truenot in成員運算符 - 如果字符串中不包…

RabbitMq(尚硅谷)

RabbitMq 1.RabbitMq異步調用 2.work模型 3.Fanout交換機&#xff08;廣播模式&#xff09; 4.Diret交換機&#xff08;直連&#xff09; 5.Topic交換機&#xff08;主題交換機&#xff0c;通過路由匹配&#xff09; 6.Headers交換機&#xff08;頭交換機&#xff09; 6…

分庫分表后復雜查詢的應對之道:基于DTS實時性ES寬表構建技術實踐

1 問題域 業務發展的初期&#xff0c;我們的數據庫架構往往是單庫單表&#xff0c;外加讀寫分離來快速的支撐業務&#xff0c;隨著用戶量和訂單量的增加&#xff0c;數據庫的計算和存儲往往會成為我們系統的瓶頸&#xff0c;業界的實踐多數采用分而治之的思想&#xff1a;分庫…

CVE-2024-4577:Windows 編碼錯誤

CVE-2024-4577是一個 PHP-CGI 漏洞,就是其中一種情況:雖然有這個版本,但由于 PHP 經常被反向移植,因此無法可靠地使用。 這篇博文詳細介紹了如何研究 CVE-2024-4577 以及當前用于檢測它的方法。 CVE-2024-4577 CVE-2024-4577 是 Windows 版 PHP 安裝中的一個高危漏洞,會…

NetBox Docker 全功能部署方案(Ubuntu 22.04 + Docker)

環境準備 檢查操作系統版本&#xff1a; 本方案使用 Ubuntu 22.04&#xff0c;并在 VMware 虛擬機中運行。通過以下命令檢查系統版本&#xff1a; lsb_release -a 如果未安裝 Ubuntu 22.04&#xff0c;請下載并安裝一個全新的系統。 更新系統軟件源&#xff1a; 更新軟件包列表…

DeepSeek Copilot idea插件推薦

&#x1f30c; DeepSeek Copilot for IntelliJ IDEA 讓 AI 成為你的編程副駕駛&#xff0c;極速生成單元測試 & 代碼注釋驅動開發&#xff01; &#x1f680; 簡介 DeepSeek Copilot 是一款為 IntelliJ IDEA 打造的 AI 編程助手插件&#xff0c;它能夠智能分析你的代碼邏輯…

QT中的JSON

1.JSON的兩種數據格式 JSON有兩種數據格式:JSON對象和JSON數組 JSON數組&#xff1a; JSON數組格式&#xff1a;[元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;......元素n] JSON數組中的元素可以是同一類型&#xff0c;也可以使不同類型&#xff0c;可以嵌套JSON數組…

詳細剖析傳輸層協議(TCP和UDP)

詳細講解傳輸層的網絡協議&#xff0c;為什么TCP是可靠連接協議&#xff0c;憑什么能做到不丟包&#xff0c;有哪些機制保證可靠呢&#xff1f; TCP/UDP UDPTCP**三次握手和四次揮手****滑動窗口****擁塞控制**&#xff08;socket套接字&#xff09;**listen的第二個參數** UD…