計算機網絡八股文--day1

從瀏覽器輸入url到顯示主頁的過程?

1. 瀏覽器查詢域名的IP地址

2. 瀏覽器和服務器TCP三次握手

3. 瀏覽器向服務器發送一個HTTP請求

4. 服務器處理請求,返回HTTP響應

5. 瀏覽器解析并且渲染頁面

6. 斷開連接

其中使用到的協議有DNS協議(域名解析協議),IP協議,OSPF協議(網路層路由選擇協議),ARP(地址解析協議,將IP地址轉換為MAC地址),NAT(網絡地址轉換,內網到外網),HTTP(端口80,用來傳輸HTTP報文)

說說DNS解析過程

首先查詢本地瀏覽器緩存,如果找到就返回,沒有查詢本地DNS服務器,還沒有的話,那就迭代或者遞歸查詢根域名服務器,頂級域名服務器,權限域名服務器

迭代查詢:自己的事情自己做

遞歸查詢:由根域名服務器幫你把事情都辦了

說說socket和websocket的區別

socket其實是端口+IP+協議

websocket用來解決http不支持持久化連接的問題

常見的端口和協議

FTP 21

TCP 6

UDP 17

DNS 53

Telnet 23 遠程登錄協議

SSH 22 安全遠程管理協議

HTTP 80

HTTPS 443

說說HTTP的狀態碼和含義

1XX 信息狀態碼

2XX 成功狀態碼

3XX 重定向狀態碼

4XX 客戶端錯誤

5XX 服務器端錯誤

口訣:信成重客服 (相信老板就再次(重)就變成了客服)

101 切換請求協議

200請求成功

301 請求資源永久移動,返回新的url

302 請求資源臨時移動,繼續使用原來的url

400 客戶端語法錯誤

401 請求需要進行驗證

403 服務端拒絕執行請求

500 服務器內部錯誤

HTTP有哪些請求方式

GET:對服務器獲取資源的簡單請求

POST:向服務器提交數據請求

PUT:修改指定資源

DELETE:刪除URL標記的指定數據

CONNECT:用于代理服務器

HEAD:獲取URL資源的首部

OPTIONS:返回所有可用的方法

POST增,DELETE刪,PUT改 GET查

get 與post的區別:

從HTTP報文層面看:get請求將信息放在url中,而post將請求信息放在請求體中,get請求攜帶的數據量有限,get請求將數據放在url上不太安全,get相對安全一些

get請求可以被緩存,這都是post所不具備的

get的長度限制:由于get通過url傳遞數據,但是url本身沒有對數據長度限制,而是由瀏覽器進行限制,長度針對整個url chrome是8182個字符

HTTP請求的過程和原理

每個服務器都有一個進程,監聽80端口,以發現是否有瀏覽器向它發出連接建立請求

監聽到連接請求,就會建立TCP連接

瀏覽器向服務器發出瀏覽某個界面的請求,服務器接著就返回所請求的頁面作為響應

最后,釋放TCP連接

說一下HTTP報文結構

HTTP請求報文

報文首部:請求行,請求首部字段,通用首部字段,實體首部字段

空行

報文主體

請求行包含三個字段:方法字段,url,http版本字段

HTTP響應報文

報文首部:狀態行,響應首部字段,通用首部字段,實體首部字段

空行

報文主體

狀態行包含三個字段:協議版本,狀態碼,狀態信息

url和uri的區別

uri 統一資源標識符,標識的是資源

url 統一資源定位符,提供的是資源的路徑

說說HTTP各個版本的區別

HTTP/1.0 默認短鏈接,但可以強制開啟長連接

HTTP/1.1 默認持久連接,分塊傳輸編碼,管道機制(同一個連接中,客戶端可以請求多個資源)

HTTP/2.0 頭信息和數據體都是二進制,完全多路復用:客戶端和瀏覽器都可以發送多個請求或者回應,而且不用按照順序一一對應,引入頭文件壓縮機制,使用gzip或者compress壓縮后再發送,且允許服務器主動向客戶端發送資源

HTTP/3 傳輸層基于UDP,靠QUIC保證可靠性:這就是3相對于之前最大的更改

QUIC(快速UDP網絡連接):多路復用無阻塞,首次握手需要1RTT完成密鑰交換,隨后就直接發送數據,通過Connection ID標識連接

HTTP什么時候超時

HTTP可以設置keep-alive timeout 當TCP閑置超過這個時間就會關閉

也可以由tcp實現,閑置keep-alive timeout后發送偵測包,如果沒有回復,那么就每隔一段時間(tcp_keepalive_intvl)再發一次,知道發送了tcp_keepalive_probes次,就會丟棄該連接

請介紹下HTTPS?

端口號位443,加入了SSL/TSL協議,使得報文可以加密傳輸,TCP握手后,還需要進行SSL/TSL握手

包含以下機制:

? ? ? ? 信息加密:保證信息不被竊取

? ? ? ? 校驗機制:無法篡改信息內容

? ? ? ? 身份證書:證明自己是自己

HTTPS的工作流程:

1.客戶端發出HTTPS請求,連接服務器443端口

2.服務器由一套數字證書,發送給客戶端

3.客戶端收到證書以后,驗證證書合法性,如果安全,就會生成一個隨機的對稱密鑰,用證書的公鑰加密

4.客戶端將公鑰加密后的密鑰發送給服務器

5.服務器用之前保留的私鑰對其進行非對稱解密,得到客戶端的密鑰,然后用客戶端密鑰對返回數據進行對稱加密,并發給客戶端

6.客戶端解密,得到數據

HTTP協議的無狀態?

服務器端不會保存任何客戶端的信息

但是我們可以使用session和cookie來保存信息

cookie 是客戶端的一小塊文本串的數據,客戶端向服務器端發送請求的時候,服務器端會返回一個cookie,再客戶端下次發起請求的時候,服務器可以根據這個cookie判斷用戶的身份和狀態,保存的位ASCLL

session

服務器和客戶端一次會話的過程,保存在服務器上,可以保存任意類型數據

使用cookie中存儲sessionid ,那么當客戶端發送cookie的時候,服務器就能從cookie中得到session,然后查找對應session信息,分布式下可以使用redis分布式緩存實現

如果無法使用cookie,就本地存儲在客戶端中,然后拼接到url中或者放到header中

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

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

相關文章

Vector和list

一、Vector和list的區別——從“它們是什么”到“區別在哪兒” 1. 它們是什么? Vector:類似于一排排整齊的書架(數組),存放元素時,元素排成一條線,連續存儲。可以很快通過編號(索引…

VCS X-PROP建模以及在方針中的應用

VCS X-PROP建模以及在方針中的應用 摘要:VCS X-Prop(X-Propagation)是 Synopsys VCS 仿真工具中的一種高級功能,用于增強 X 態(未知態)和 Z 態(高阻態)在 RTL 仿真中的建模和傳播能力…

HPE ProLiant DL360 Gen11 服務器,配置 RAID 5 教程!

今天的任務,是幫客戶的一臺HPE ProLiant DL360 Gen11 服務器,配置RAID 5。依然是按照我的個人傳統習慣,順便做一個教程,分享給有需要的粉絲們。如果你在實際操作中,遇到了什么問題,歡迎在評論區留言&#x…

PyTorch深度神經網絡(前饋、卷積神經網絡)

文章目錄 神經網絡概述神經元模型多層感知機前饋神經網絡網絡拓撲結構數學表示基本傳播公式符號說明整體函數視角 卷積神經網絡卷積神經網絡發展簡史第一代(1943-1980)第二代(1985-2006)第三代(2006-至今)快…

三軸云臺之控制算法協同技術篇

三軸云臺的控制算法協同技術是確保云臺在復雜動態環境下實現高精度、高穩定性運動控制的核心,其技術體系涵蓋多傳感器融合、多算法協同以及多目標優化三個關鍵維度。以下從技術架構與實現路徑展開分析: 一、多傳感器融合:構建環境感知基礎 三…

Adobe DC 2025安裝教程

一.軟件下載 點此下載 二.軟件安裝

[Java實戰]Spring Boot 整合 Freemarker (十一)

[Java實戰]Spring Boot 整合 Freemarker (十一) 引言 Apache FreeMarker 作為一款高性能的模板引擎,憑借其簡潔語法、卓越性能和靈活擴展性,在 Java Web 開發中占據重要地位。結合 Spring Boot 的自動化配置能力,開發者能快速構建動態頁面、…

DeepSeek:開啟能源領域智能化變革新時代

目錄 一、DeepSeek 與能源領域變革的邂逅1.1 DeepSeek 在人工智能領域的地位與特點1.2 能源行業面臨的挑戰與變革需求1.3 DeepSeek 在能源領域應用的重要性和意義 二、能源政策解讀與科普新助手2.1 能源政策解讀的深度變革2.2 能源科普的創新使者 三、能源項目可行性分析新利器…

uniapp設置 overflow:auto;右邊不顯示滾動條的問題

設置了overflow:auto;或者其它overflow的屬性不顯示滾動條是因為在uniapp中默認隱藏了滾動條 解決方法: //強制顯示滾動條 ::-webkit-scrollbar {width: 8px !important;background: #ccc !important;display: block !important;}//設置滾動條顏色.cu-…

hyper-v安裝ubuntu后時磁盤空間擴容

使用hyper-v創建虛擬機Ubuntu 22.04,直接使用的是磁盤鏡像,原磁盤空間只有12GB,明顯不夠用呀,現在想要擴展到50GB,準備開始。 1、先關閉Ubuntu,再hyper-v管理器中調整磁盤容量到50GB 2、進入虛擬機 3、準備…

Prometheus 的介紹與部署(入門)

一、什么是Prometheus; 1.介紹 Prometheus 是一個功能強大的監控工具,適用于各種環境。通過簡單的安裝和配置,可以快速實現對系統和服務的監控。無論是單機環境、容器化環境還是 Kubernetes 集群,Prometheus 都能提供靈活…

Angular 知識框架

一、Angular 基礎 1. Angular 簡介 Angular 是什么? 基于 TypeScript 的前端框架(Google 維護)。 適用于構建單頁應用(SPA)。 核心特性 組件化架構 雙向數據綁定 依賴注入(DI) 模塊化設計…

注解和 XML 兩種方式有什么區別?

注解和 XML 是兩種常見的配置方式(尤其在 Java 開發中,如 Spring 框架),它們的主要區別體現在配置方式、代碼耦合性、可讀性、維護性等方面。以下是兩者的對比: 1. 配置方式 注解(Annotation) 在…

Python爬蟲實戰:研究攔截器,實現逆向解密

1. 案例背景與研究目標 1.1 研究背景 在數字化時代,網絡數據成為重要資源。許多網站通過加密技術保護數據傳輸,如電商平臺的價格信息常以加密形式存在。爬蟲技術與逆向工程的結合,為合法獲取和分析此類數據提供了解決方案。 1.2 研究目標 開發完整的 Python 爬蟲系統,實現…

Math工具類全面指南

Math工具類全面指南 前言一、Math 類的基礎特性1.1 類的聲明與常量1.2 數據類型支持 二、基礎算術運算2.1 絕對值運算2.2 取整運算2.2.1 floor():向下取整2.2.2 ceil():向上取整2.2.3 round():四舍五入取整 2.3 最大值與最小值 三、三角函數與…

嵌入式C語言中指針的不同類型及其特點分析

在 C 語言中,指針的類型主要可以分為以下幾類: 1.1 基本類型指針 基本類型指針是指指向基礎數據類型的指針,通常用于存儲變量的地址。它們的類型與指向的變量類型相同。常見的基本類型指針包括: 整型指針:int *p,p是一個指向整型數據的指針。字符型指針:char *p,p是…

gd32e230c8t6 keil6工程模板

下載固件gd32e230c8t6固件官方下載(需登錄) 或 藍奏云 新建一個文件夾,把固件壓縮包里的里的Firmware和Template拖進去 keil新建gd32e230c8工程 必須勾選CMSIS-CORE 新建一個文件夾,雙擊任意改名 點擊manage project it…

SQL看最多的數據,但想從小到大排列看趨勢

SQL 查詢:從 test 表中獲取本月的數據,并對數量最多的前10個流程按數量升序排序 假設表結構 test 表包含請求信息。workflow_base 包含流程的基本信息。 CREATE TABLE test (requestid INT, -- 請求IDworkflowid INT, -- 流程IDcurr…

WebGL知識框架

一、WebGL 基礎概念 1. WebGL 簡介 是什么? 基于 OpenGL ES 的瀏覽器 3D 圖形 API,直接操作 GPU 渲染。 核心特點 底層、高性能、需手動控制渲染管線。 依賴 JavaScript 和 GLSL(著色器語言)。 與 Three.js 的關系 Three.js…

LabVIEW電渦流傳感器自動校準系統

在工業生產中,尤其是大型旋轉機械的運行監測環節,電渦流傳感器的精準校準極為關鍵。傳統手動校準方式存在諸多弊端,如人工參與度高、操作重復、效率低下等,難以滿足現代工業快速發展的需求。基于 LabVIEW 開發的電渦流傳感器自動校…