日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

晨風(fēng)
認(rèn)證:VIP會員
作者動態(tài)
三維重建技術(shù)概述
2022-07-07 08:52
自動駕駛芯片的算力焦慮,「存算一體」能解決嗎?
2022-07-06 13:06
計(jì)算機(jī)網(wǎng)絡(luò)名詞詳解(長文)
2022-05-16 09:20
計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議深度詳解
2022-05-14 14:35
TCP協(xié)議與UDP協(xié)議詳解(實(shí)例分析)
2022-04-22 11:29

計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議深度詳解

網(wǎng)絡(luò)協(xié)議,本文以圖文并茂的方式細(xì)說網(wǎng)絡(luò)技術(shù)細(xì)節(jié)。

OSI七層協(xié)議

1.物理層:

很久很久以前,那時(shí)候還沒有現(xiàn)在的外星人超級電腦,或者華為的P30。比較調(diào)皮的小明想要把自己機(jī)器上寫好的一些個(gè)人游戲心得(如何玩好王者農(nóng)藥)發(fā)給小紅(?;ǎM┑梅夹?。小明個(gè)人比較勤,游戲總結(jié)心得總結(jié)的比較詳細(xì)(大概有100M)。但是到底怎么才能從自己的機(jī)器上傳給小紅的機(jī)器呢,進(jìn)過一番打聽,他發(fā)現(xiàn)遠(yuǎn)在太平洋另一端的科學(xué)家已經(jīng)發(fā)明了一種技術(shù) 物理層,專門用來解決小明這種單身狗問題。該層主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型、光纖的接口類型、各種傳輸介質(zhì)的傳輸速率等。它的主要作用是傳輸比特流(就是由1、0轉(zhuǎn)化為電流強(qiáng)弱來進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為1、0,也就是我們常說的數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換)。這一層的數(shù)據(jù)叫做比特。

他很興奮,通過一個(gè)月的努力終于搭建起了這個(gè)物理層。

2.數(shù)據(jù)鏈路層:

然而上天卻好像和小明開了一個(gè)玩笑,樓下的小潤發(fā)超市的網(wǎng)線、光纖最近賣光了,但是這個(gè)物理層傳輸數(shù)據(jù)只能通過網(wǎng)線傳輸。到底怎么辦。

此時(shí),他體內(nèi)的雄性激素促使著他的大腦以光速運(yùn)轉(zhuǎn)。終于他餓了,無奈得走去學(xué)校飯?zhí)萌龢浅月槔睜C。此時(shí)聽到隔壁坐著的那位王叔叔(老王)說,科學(xué)家已經(jīng)發(fā)明了一種技術(shù)可以通過無線電來傳輸。What?這不是完美解決了自己的困擾嗎。小明連忙對隔壁老王說謝謝,老王留下了幸福的淚水!

通過一番努力查資料,小明發(fā)現(xiàn):種技術(shù)可以通過電線能發(fā)數(shù)據(jù)流,也可以通過其它介質(zhì)來傳輸。然后還要保證了傳輸過去的比特流是正確的,有糾錯(cuò)功能。定義了如何讓格式化數(shù)據(jù)以進(jìn)行傳輸,以及如何讓控制對物理介質(zhì)的訪問。這一層通常還提供錯(cuò)誤檢測和糾正,以確保數(shù)據(jù)的可靠傳輸。

小明把層技術(shù)稱為:數(shù)據(jù)鏈路層

3.網(wǎng)絡(luò)層:

由于小明家離小紅家比較遠(yuǎn),無線電信號無法傳輸?shù)侥睦?,但是這完全難不到小明。他通過在離小紅家的路上搭建了多個(gè)節(jié)點(diǎn)(路由器,交換機(jī)),用于信號的傳輸。但是由于他有時(shí)候被雄性激素沖昏了頭腦,搭建的信號節(jié)點(diǎn)有點(diǎn)亂,而且很多。那他又想用最短的路徑來傳輸怎么辦呢?在小明沮喪走回家的時(shí)候已深夜,他看見今天看到的那位王叔叔匆匆的從自己家走出來,他連忙拉住王叔叔,向他訴說自己的煩惱,希望王叔叔能給自己一些幫助。當(dāng)小明說完后,王叔叔從緊張變?yōu)楹吞@,和小明說:其實(shí)已經(jīng)有人發(fā)明了網(wǎng)絡(luò)層。即路由器,交換機(jī)那些具有尋址功能的設(shè)備所實(shí)現(xiàn)的功能。這一層定義的是IP地址,通過IP地址尋址。所以產(chǎn)生了IP協(xié)議。該層能選擇最佳路徑,這就是路由要做的事。

4.傳輸層:

為了趁熱打鐵,小明通宵查資料來學(xué)習(xí)相關(guān)信息,并且簡單搭建好網(wǎng)絡(luò)層,開始傳輸數(shù)據(jù),趁著傳輸過程好好睡一覺。當(dāng)他起來的時(shí)候,噩夢才剛剛開始,因?yàn)樗麄鬏數(shù)臄?shù)據(jù)太大(100M)只傳輸了一部分,而且斷斷續(xù)續(xù)的,有一部分?jǐn)?shù)據(jù)根本傳不出去。那怎么辦?

“加一層傳輸層!”:王叔叔在樓下大聲喊著,“資料在你媽媽的床頭柜”,王叔叔繼續(xù)說。小明連忙找到資料,上面寫著:“發(fā)正確的發(fā)比特流數(shù)據(jù)到另一臺計(jì)算機(jī)了,但是當(dāng)我發(fā)大量數(shù)據(jù)時(shí)候,可能需要好長時(shí)間,例如一個(gè)視頻格式的,網(wǎng)絡(luò)會中斷好多次(事實(shí)上,即使有了物理層和數(shù)據(jù)鏈路層,網(wǎng)絡(luò)還是經(jīng)常中斷,只是中斷的時(shí)間是毫秒級別的)。

那么,我還須要保證傳輸大量文件時(shí)的準(zhǔn)確性。于是,我要對發(fā)出去的數(shù)據(jù)進(jìn)行封裝。就像發(fā)快遞一樣,一個(gè)個(gè)地發(fā)。

例如TCP,是用于發(fā)大量數(shù)據(jù)的,我發(fā)了1萬個(gè)包出去,另一臺電腦就要告訴我是否接受到了1萬個(gè)包,如果缺了3個(gè)包,就告訴我是第1001,234,8888個(gè)包丟了,那我再發(fā)一次。這樣,就能保證對方把這個(gè)視頻完整接收了。

例如UDP,是用于發(fā)送少量數(shù)據(jù)的。我發(fā)20個(gè)包出去,一般不會丟包,所以,我不管你收到多少個(gè)。在多人互動游戲,也經(jīng)常用UDP協(xié)議,因?yàn)橐话愣际呛唵蔚男畔?,而且有廣播的需求。如果用TCP,效率就很低,因?yàn)樗鼤煌5馗嬖V主機(jī)我收到了20個(gè)包,或者我收到了18個(gè)包,再發(fā)我兩個(gè)!如果同時(shí)有1萬臺計(jì)算機(jī)都這樣做,那么用TCP反而會降低效率,還不如用UDP,主機(jī)發(fā)出去就算了,丟幾個(gè)包你就卡一下,算了,下次再發(fā)包你再更新。

TCP協(xié)議是會綁定IP和端口的協(xié)議,下面會介紹IP協(xié)議。”

通過如此這般的操作,他!小明同學(xué)終于把自己100M的游戲心得發(fā)送給了小紅。

5.會話層(解除與建立與別的接口的聯(lián)系):

然而,小紅根本不玩游戲。得知這個(gè)消息后,小明楞逼了。但是他沒有放棄,而是把自己猜到小紅喜歡的信息都發(fā)給他,但是小明每發(fā)一次,難道我每次都要調(diào)用TCP去打包,然后調(diào)用IP協(xié)議去找路由,這一來一回就是一天,那怎么辦呢?

他又翻了翻王叔叔的筆記本資料,寫著:會話層可以幫助我們建立和管理應(yīng)用程序之間的通信,封裝了調(diào)用TCP去打包,然后調(diào)用IP協(xié)議去找路由等操作,如此一來,他只需要十幾二十分鐘就能夠成功搭建好傳輸數(shù)據(jù)的機(jī)器。

6.表示層(數(shù)據(jù)格式化,代碼轉(zhuǎn)換,數(shù)據(jù)加密):

有一次,小明傳了一份數(shù)據(jù),是關(guān)于如何選購化妝品的文章,小紅對此非常感興趣,但是當(dāng)小紅想用自己的window開該文件時(shí)發(fā)現(xiàn)根本無法打開,后來小紅在下課的時(shí)候和小明說自己無法打開這個(gè)文件,小明想自己用Linux系統(tǒng)明明完整地發(fā)送給了小紅啊,那就奇怪了,但是出于耍帥,小明只是輕輕地說“我放學(xué)后再發(fā)你一份!”。

這時(shí)雖然小明不知道是出了什么問題,但是他堅(jiān)信老王叔叔的資料筆記會有答案的。

果然!上清清楚楚的寫著:“現(xiàn)在我能保證應(yīng)用程序自動收發(fā)包和尋址了。但是我要用Linux給window發(fā)包,兩個(gè)系統(tǒng)語法不一致,就像安裝包一樣,exe是不能在linux下用的,shell在window下也是不能直接運(yùn)行的。于是需要表示層(presentation),幫我們解決不同系統(tǒng)之間的通信語法問題。”

小明立即用了一個(gè)通宵手動搭好了表示層,傳輸了一份完美的文件給小紅。

7.應(yīng)用層(文件傳輸,電子郵件,文件服務(wù),虛擬終端):

官方OSI說明圖

TCP/IP協(xié)議TCP/IP協(xié)議是由七層模型簡化成四層而來。(TPC/IP協(xié)議其實(shí)泛指了四層模型中的全部協(xié)議,區(qū)別開TCP協(xié)議,IP協(xié)議)

  • 七層有底向上分別是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層。
  • 簡化后的四層分別是:主機(jī)到網(wǎng)絡(luò)層(比特)、網(wǎng)絡(luò)層(數(shù)據(jù)幀)、傳輸層(數(shù)據(jù)包)、應(yīng)用層(數(shù)據(jù)段)。

每一層對于上一層來講是透明的,上層只需要使用下層提供的接口,并不關(guān)心下層是如何實(shí)現(xiàn)的。與OSI七層協(xié)議的對比:

傳輸層:

網(wǎng)絡(luò)層是主機(jī)與主機(jī)之間的通訊,而傳輸層則是進(jìn)程之間的通訊。

為何要有傳輸層?

應(yīng)為進(jìn)程是資源分配的基本單位,計(jì)算機(jī)之間的信息傳輸也只是一臺計(jì)算機(jī)的進(jìn)程傳輸?shù)搅硗庖慌_計(jì)算機(jī)的進(jìn)程中。

一臺計(jì)算機(jī)如何找到另外一臺計(jì)算機(jī)呢?

那就是通過IP協(xié)議來完成的(復(fù)用,多個(gè)進(jìn)程都可以把信息通過傳輸層到IP層,再傳輸?shù)搅硗庖慌_計(jì)算機(jī)中)。

那如何找到另外一臺計(jì)算機(jī)的進(jìn)程(pid)?那就是用端口(分用,到達(dá)另外一臺計(jì)算機(jī)后還要通過端口號找到對應(yīng)進(jìn)程)。

傳輸層主要有兩種協(xié)議:UDP和TCP

一、UDP協(xié)議

特點(diǎn):

  • 無連接,傳輸數(shù)據(jù)時(shí)不需要建立連接,減小開銷
  • 盡最大努力交付,不確保可靠交付
  • 面向報(bào)文
  • 沒有擁塞控制、確保信息實(shí)時(shí)性
  • 支持一對一,一對多,多對一,多對多
  • 首部開銷小,只有8個(gè)字節(jié)

UDP的首部格式(UDP頭):

  • 源端口,發(fā)送方的端口
  • 目標(biāo)端口,接收方的端口
  • 長度,首部長度 + 用戶數(shù)據(jù)包的長度(可以沒有數(shù)據(jù)包,所用最小值為8)
  • 檢驗(yàn)和,檢查UDP用戶數(shù)據(jù)傳輸中是否與錯(cuò),有錯(cuò)就丟棄(檢查首部長度 + 用戶數(shù)據(jù)包)

二、TCP協(xié)議

A、特點(diǎn):

  • 面向連接的協(xié)議。數(shù)據(jù)傳輸之前都要建立連接(三次揮手),數(shù)據(jù)傳輸結(jié)束都要釋放連接(四次揮手)
  • 一條TCP連接只能有兩個(gè)端點(diǎn),端點(diǎn)是socket(結(jié)構(gòu) IP地址:端口號),并非主機(jī)或進(jìn)程。
  • 可靠交付
  • 全雙工通信(一端既可以做發(fā)送方也可以做接收方)
  • 面向字節(jié)流

B、為何TCP是可靠的呢?

其實(shí)TCP是依賴停止 等待協(xié)議和連續(xù)ARQ 協(xié)議+滑動窗口協(xié)議才達(dá)到可靠的目的

a、等待協(xié)議

  • 特點(diǎn):資源利用率非常低
  • 工作原理:客戶發(fā)送一次數(shù)據(jù)到服務(wù)端,必須等到服務(wù)端響應(yīng)后才發(fā)第二次數(shù)據(jù),中間的等待時(shí)間RTT占了大部分時(shí)間,中間如果出現(xiàn)差錯(cuò)(超時(shí)或確認(rèn)丟失)都需要從新傳輸。

b、連續(xù)ARQ協(xié)議

  • 連續(xù)ARQ協(xié)議工作原理:維持一個(gè)發(fā)送窗口(記錄了當(dāng)前可以發(fā)送的數(shù)據(jù)包數(shù)量n),在窗口內(nèi)的數(shù)據(jù)都可以連續(xù)發(fā)送出去,服務(wù)器只在接收完一個(gè)發(fā)送窗口的數(shù)據(jù)后才回響應(yīng)(累計(jì)確認(rèn)),發(fā)送端接收到響應(yīng)就把發(fā)送窗口移動n位,開始新一輪數(shù)據(jù)發(fā)送。

以上只是簡單了解TCP協(xié)議的發(fā)送流程,如果要清楚發(fā)送細(xì)節(jié),必須知道TCP報(bào)文首部

TCP報(bào)文段的首部格式

雖然說TCP是面向字節(jié)流的,但是TCP傳輸?shù)臄?shù)據(jù)單元卻是報(bào)文段,報(bào)文段由首部和數(shù)據(jù)兩部分組成,如圖:

1.源端口和目標(biāo)端口(各占兩字節(jié))

2.序號(占4字節(jié)):TCP連接傳輸?shù)臄?shù)據(jù)每一個(gè)字節(jié)都有一個(gè)序號,而一個(gè)報(bào)文段可能會有多個(gè)字節(jié)的數(shù)據(jù),這個(gè)序號指的是TCP報(bào)文段中起始的序號,下一個(gè)報(bào)文段的序號則是該序號加上報(bào)文數(shù)據(jù)長度(三次握手和四次揮手時(shí)說的SYN或ACK會消耗一個(gè)序號就是指該序號)

3.確認(rèn)號(占4字節(jié)):因?yàn)橐淮螖?shù)據(jù)傳輸會分成多個(gè)報(bào)文段,接收方接收完一次報(bào)文段后如果要發(fā)送確認(rèn)(有可能不用確認(rèn),因?yàn)槭墙邮胀臧l(fā)送窗口的報(bào)文段才確認(rèn)的),則會攜帶一個(gè)確認(rèn)號,表示接收方想要接收的下一個(gè)報(bào)文的序號

4.數(shù)據(jù)偏移(占4字位):數(shù)據(jù)部分的起始位置離報(bào)文段起始位置的距離,就是報(bào)文首部的長度,單位是4字節(jié),所以4位能表示最大值是十進(jìn)制的15,就是15 x 4字節(jié) = 60字節(jié),TCP報(bào)文首部最大長度為60字節(jié)

5.保留(占6位):未被使用,全置為0

6.緊急URG:當(dāng)URG=1時(shí)緊急數(shù)據(jù)才有效。注意,這里URG并不是緊急數(shù)據(jù),只是一個(gè)標(biāo)志,標(biāo)志著緊急數(shù)據(jù)是否有效

7.確認(rèn)ACK:當(dāng)ACK=1時(shí)確認(rèn)號才有效,當(dāng)建立連接后全部傳輸?shù)膱?bào)文都要把ACK設(shè)置為1

8.推送PSH:接收方機(jī)器會有一個(gè)接收,當(dāng)接收緩存慢了才回把接收到的數(shù)據(jù)交付到接收應(yīng)用進(jìn)程中,而如果發(fā)送端把報(bào)文的PSH設(shè)為1,接收方接收到該報(bào)文會立即交付到應(yīng)用的進(jìn)程中9.復(fù)位RST:兩個(gè)作用,1、當(dāng)RST=1時(shí),表示TCP連接中出現(xiàn)嚴(yán)重差錯(cuò),必須釋放連接,然后重新建立運(yùn)輸連接。2、當(dāng)RST=1時(shí),拒絕一個(gè)非法的報(bào)文段或拒絕打開一個(gè)連接。

10.同步SYN:用于同步序號(告訴另外一方,他們之間從該序號開始傳輸報(bào)文段),當(dāng)SYN=1,ACK=0表示這時(shí)一個(gè)連接請求報(bào)文。

11.終止FIN:用于釋放一個(gè)連接。當(dāng)FIN=1時(shí),表明此報(bào)文的發(fā)送方的數(shù)據(jù)已經(jīng)發(fā)送完畢,并要求釋放運(yùn)輸連接。

12.窗口(占2字節(jié)),是一個(gè)接收窗口,接收方允許發(fā)送方發(fā)送的數(shù)據(jù)量

13.檢驗(yàn)和(占2字節(jié)):檢驗(yàn)接收過來的報(bào)文段(報(bào)文首部和用戶數(shù)據(jù))是否有誤

14.緊急指針(占2字節(jié)):當(dāng)URG=1時(shí)才有效,指出緊急數(shù)據(jù)未尾位置(開始位置是整個(gè)報(bào)文段中用戶數(shù)據(jù)的開頭)

15.選項(xiàng),長度可變,最長40字節(jié)

那到底TCP是如何實(shí)現(xiàn)可靠傳輸?shù)哪兀?/strong>

TCP可靠傳輸?shù)膶?shí)現(xiàn)

一、通過滑動窗口來發(fā)送數(shù)據(jù)

  • 發(fā)送窗口有兩部分組成,已發(fā)送的報(bào)文段 和 能夠發(fā)送但未發(fā)送的報(bào)文段(等待已發(fā)報(bào)文 段全部接收完發(fā)回來的確認(rèn)就可以發(fā)送了)
  • 當(dāng)收到確認(rèn)后發(fā)送窗口會向右移動到7位置,作為窗口的起始位置。
  • 發(fā)送窗口,發(fā)送窗口有可能會收縮(因?yàn)榻邮沾翱谟锌赡芤驗(yàn)榻邮站彺娌粔蚨冃。?/span>

二、超時(shí)重傳時(shí)間的選擇

采用一個(gè)根據(jù)RTT動態(tài)計(jì)算的時(shí)間,并不是直接采用一個(gè)固定的時(shí)間

RTT:發(fā)送一個(gè)報(bào)文段到收到對應(yīng)的ACK所花費(fèi)的時(shí)間

RTO:超時(shí)重傳時(shí)間

RTTs是一個(gè)加權(quán)平均RTT時(shí)間

RTTd是RTTs偏差的加權(quán)平均

RTO = RTTs + 4 * RTTd

如果發(fā)生了重傳 ,這次的RTT會讓RTTs會變大,此時(shí)是不會用該RTT來計(jì)算RTTs的

三、確認(rèn)SACK是一個(gè)TCP報(bào)文首部的選項(xiàng)。當(dāng)數(shù)據(jù)傳輸過程中,接收方可能會未按順收到部分報(bào)文段,此時(shí)序號告訴發(fā)送方從新傳輸這些報(bào)文段,SACK選項(xiàng)就是用于告訴發(fā)送方需要傳輸那些報(bào)文段的

TCP傳輸連接管理

連接的三個(gè)階段:建立連接、數(shù)據(jù)傳輸、連接釋放

在建立連接的過程中要解決三個(gè)問題:

1、使每一方都知道對方的存在

2、協(xié)商一些參數(shù)

3、能夠運(yùn)輸實(shí)體資源

主動建立連接的一端叫客戶端,被動等待連接建立的一方叫服務(wù)器

連接建立(三次握手)

每次發(fā)送一個(gè)seq時(shí),都會消耗一個(gè)序號,所以會發(fā)現(xiàn)在確認(rèn)時(shí),ack總等于另一端請求的seq+1

為何需要第三次握手?

假設(shè)沒有第三次握手(即A再次確認(rèn))在很久很久以前,A發(fā)了一個(gè)連接請求給B,但是網(wǎng)絡(luò)滯留的原因,請求沒有到達(dá)B,所以B也沒有確認(rèn)返回給A,所以A右發(fā)送了一個(gè)連接請求給B,此時(shí)B收到了連接請求并返回了一個(gè)確認(rèn)給A,此時(shí)連端開始愉快的數(shù)據(jù)傳輸之旅。當(dāng)傳輸結(jié)束時(shí),分別斷開連接,各自干各自的活兒。但是過了一段時(shí)間,之間滯留在網(wǎng)絡(luò)中的A發(fā)出的連接請求到達(dá)了B中,B以為A又要傳輸數(shù)據(jù),便右回了一個(gè)確認(rèn)給A,但是A并不需要輸出傳輸,也沒有理會這個(gè)確認(rèn),而B卻在傻傻等待A傳輸數(shù)據(jù),這個(gè)就會浪費(fèi)B的資源。但是如果有第三次A的確認(rèn),A這個(gè)滯留的連接傳給B,B返回一個(gè)確認(rèn),但是A不想傳輸數(shù)據(jù)了,便沒有回一個(gè)確認(rèn)給B(第三次握手),B沒有收到該確認(rèn)也不會等待A傳輸數(shù)據(jù)。

連接釋放(四次揮手)

第一次揮手:客戶端發(fā)送連接,F(xiàn)IN=1標(biāo)志著A已經(jīng)完成了數(shù)據(jù)的發(fā)送。

第二次揮手:B回了一個(gè)確認(rèn),此時(shí)A與B的發(fā)送連接就斷開了。

第三次揮手:因?yàn)門CP連接是全雙工通信的,B還保留著一個(gè)對A大發(fā)送連接,如果等到B也不需要發(fā)送數(shù)據(jù)給A時(shí),B會發(fā)送一個(gè)連接給A,seq等于一個(gè)大于或等于v的值(因?yàn)锳與B斷開發(fā)送連接到B與A斷開發(fā)送連接期間有可能B向A發(fā)送了數(shù)據(jù),就是消耗序號)。

第四次揮手:當(dāng)A收到B的連接時(shí),要回一個(gè)響應(yīng)給B,但是此時(shí)會有一個(gè)2MSL長的等待時(shí)間,時(shí)間一過,就真正的斷開與B的全部連接了。

為什么需要2MSL的等待時(shí)間?

MSL:最長報(bào)文壽命

當(dāng)A發(fā)送確認(rèn)給A后,如果此時(shí)出現(xiàn)了一些狀況(連接被丟棄等),確認(rèn)無法到達(dá)B中,B會重新發(fā)送一個(gè)連接給A,但是A就停止了,B就一直等待(其實(shí)有一個(gè)?;顣r(shí)間)。

如果有了這個(gè)等待時(shí)間,就算A的ACK確認(rèn)丟失了,B也會再從新發(fā)送一個(gè)連接給A,A接收到該連接后,會從新計(jì)算等待時(shí)間。A會再確認(rèn)一次

應(yīng)用層

一、HTTP協(xié)議特點(diǎn):

  • 支持客戶端 / 服務(wù)器模式
  • 簡單快速
  • 靈活
  • 無連接,在完成一次請求獲得響應(yīng)后就會斷開
  • 無狀態(tài),沒有記憶的,請求完一次后,就結(jié)束了,后面如果要再獲得數(shù)據(jù)必須從新請求

請求報(bào)文的結(jié)構(gòu)

請求頭部:用于設(shè)置請求的的一些參數(shù)如:ContentType

請求空行:就算請求數(shù)據(jù)為空,都要有空行,表示請求首部的結(jié)束

從瀏覽器地址欄鍵入U(xiǎn)RL,回車后會盡力的流程:

  • DNS解析
  • TCP連接
  • 發(fā)送HTTP請求
  • 服務(wù)器處理請求,并返回HTTP報(bào)文
  • 瀏覽器解析渲染頁面
  • 連接結(jié)束
  • GET請求與POST請求的區(qū)別

HTTP報(bào)文層面:GET請求信息放在URL中,POST放在報(bào)文體中

數(shù)據(jù)庫層面:GET符合冪等性和安全性,POST不符合

其他層面:GET可以被緩存、儲存,而POST不行

Cookie和Session的區(qū)別

為什么會有這兩種技術(shù)?

  • 在使用一些需要登錄的網(wǎng)站時(shí),每次訪問,都會需要驗(yàn)證個(gè)人信息,即登錄。這樣做比較繁瑣,能否將個(gè)人的賬號和密碼存起來,訪問的時(shí)候直接用存取來的個(gè)人信息進(jìn)行驗(yàn)證呢?解決這個(gè)問題的就是Cookie和Session
  • Cookie:通過客戶端(瀏覽器)來緩存?zhèn)€人信息。當(dāng)用戶第一次登錄時(shí),服務(wù)器會將個(gè)人信息放在了響應(yīng)中, 瀏覽器接收到響應(yīng)時(shí)候會將個(gè)人信息以Cookie的形式訪問瀏覽器中保存起來,在下一次訪問服務(wù)器的時(shí)候會帶上該Cookie,Cookie中有個(gè)人信息,服務(wù)器能解析出來,所以不同再次登錄驗(yàn)證了。(不夠安全,對服務(wù)器的開銷?。?/span>

  • Session通過服務(wù)端來緩存信息,根據(jù)請求中是否包含Session id的字段,如果不存在則創(chuàng)建一個(gè),并返回給瀏覽器緩存起來。如果存在則通過該Session id在服務(wù)器存儲中獲得對應(yīng)的Session信息,直接驗(yàn)證。(安全,服務(wù)器的開銷變大)

HTTP與HTTPS的區(qū)別:

1、HTTPS需要到CA申請證書,HTTP不需要

2、HTTPS密文傳輸、HTTP明文傳輸

3、連接方式不同,HTTPS默認(rèn)使用443端口,HTTP使用80端口

4、HTTPS = HTTP + 加密+認(rèn)證+完整性保護(hù),較HTTP安全

其實(shí)也不一定就安全,原因是用戶不會再訪問時(shí)候加上http:// 或 https://, 瀏覽器就默認(rèn)會加上http://,然后通過轉(zhuǎn)發(fā)的方式轉(zhuǎn)成https:// 這個(gè)過程http就有可能會被劫持了。

此時(shí)會用到一個(gè)技術(shù) HSTS(HTTP Strict Transort Security)

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 1
收藏 2
關(guān)注 36
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧