HTTP學習之網路基礎篇

2021-09-11 07:21:45 字數 3625 閱讀 8117

第一章 了解web及網路基礎

使用http協議訪問web

web頁面顯示原理:當我們在瀏覽器的位址列輸入url後,web瀏覽器會根據我們所輸入的url從web伺服器中獲取相應的檔案資源等資訊,從而顯示出整個web頁面。

那麼像這種,通過傳送請求獲取伺服器端的資源的web瀏覽器等,稱為客戶端。

web是使用一種http協議 (超文字傳輸協議) 作為規範,完成從客戶端到伺服器等一系列運作過程。因此,可以說,web是建立在http協議上通訊的。

網路基礎tcp/ip

tcp/ip協議族

通常我們使用的網路是在tcp/ip協議族的基礎上運作的。http是其的乙個子集。

書中介紹,「計算機與網路裝置要互相通訊,雙方就必須基於相同的方法。比如由那一邊先發起通訊,用什麼語言等。」正如我們在日常生活中的一樣,如果兩個人想要暢通的交流,那麼這兩個人至少應該會一種共同的語言。不同的硬體、作業系統之間的通訊,所有的這一切都需要一種規則。那麼這種規則稱為協議。

我們通常把與網際網路有關的協議集合起來總稱為tcp/ip。

tcp/ip的分層管理

tcp/ip協議族按層次可分為4層:應用層、傳輸層、網路層和資料鏈路層。那麼,把它層次化是有好處的。假設網際網路中只有乙個協議統籌且該協議未分層,如果在某個地方需要改變時,我們需要把所有部分都進行修改。那麼分層之後,我們只需要更改需要更改的地方,其他部分不變。這樣會節省很多時間。

各層作用如下:

應用層:決定向使用者提**用服務時通訊的活動。

傳輸層:提供處於網路連線中的兩台計算機之間的資料傳輸。

網路層:處理在網路上流動的資料報。該層規定了通過怎樣的路徑到達對方計算機,並把資料報傳給對方。 當與對方計算機之間通過多台計算機或者是網路裝置進行傳輸時,網路層所起的作用是在眾多選項中選擇一條傳輸路線。

tcp協議的功能是:(簡單來說)

客戶端:把原始檔案分割成資料報。

伺服器端: 把資料報還原成原始檔案。

鏈路層: 用來處理連線網路的硬體部分。包括控制作業系統、硬體的裝置驅動等。

為什麼要分割成資料報?

當不同計算機之間傳輸資料檔案時,由於傳輸整個檔案的速度比較慢,如果把檔案分割成乙個個資料報,傳輸速度會有所增加。就如一口吃掉乙個大饅頭和把饅頭一小塊一小塊的吃的區別。而且,若是以整個檔案的方式傳輸,當出現錯誤時,我們就必須要把整個檔案重新傳輸,而當以資料報的形式傳輸時,哪乙個資料報出錯,只需重新傳送該資料報即可。

利用tcp/ip協議族進行通訊時,會通過分層順序與對方通訊。傳送端從應用層往下走,而接收端往上走到應用層。即,

客戶端 —————————————————————> 伺服器

應用層->傳輸層->網路層->資料鏈路層- - - ->資料鏈路層->網路層->傳輸層->應用層

以http為例:

在應用層,客戶端發出乙個請求某個web頁面的http請求。

為傳輸方便,在傳輸層(tcp協議)把從應用層收到的資料(http請求報文)分割成資料報,並在各個報文上打上標記序號和埠號後**給網路層。

打上標記序號: 打標記序號是為了能夠讓伺服器端的tcp協議把這些資料報按順序重組還原成原始請求檔案。

打上埠號: 網路層的作用是處理網路上流動的資料報,那麼,打上埠號後,ip協議就會把資料報運送到指定埠位置。

接收端的伺服器在鏈路層接收到資料,按順序往上傳送,一直到應用層。 此時才算真正接收到客戶端發來的請求。

與http關係密切的協議: ip 、 tcp 和 dns

ip協議

ip (internet protocol ) 協議按層次分在網路層,其作用是把各種資料報傳送給對方。

確保傳送到對方需要滿足各類條件,其中兩個最重要的是:ip位址 和 mac位址。

ip位址指明了節點被分配到的位址,mac位址是網絡卡所屬的固定位址。 ip位址可以和mac位址進行配對。 ip位址可變,但mac位址基本不會更改。

路由選擇

在到達通訊目標前的中轉過程中,那些計算機和路由器等網路裝置只能獲悉很粗略的傳輸路線。這種機制稱為路由選擇。

舉個例子

> 當你寄快遞時,只有你到了集散中心才能知道快遞公式是否肯收件發貨,該快遞 >公司的集散中心檢查貨物的送達位址,明確下一站該送往哪乙個地區的集散中心。 >接著,那個集散中心自會判斷是否能送到對方的家中。

tcp協議

按層次分,tcp協議位於傳輸層,且提供可靠的位元組流服務。所謂的位元組流服務是指,為了傳輸方便將大塊資料分割成以報文段為單位的資料報進行管理。

為了準確無誤地將資料送至目標處,tcp協議採用了三次握手(three-way handshaking ) 策略。 握手過程採用了tcp協議的標誌——syn (synchronize) 和 ack (acknowledgement) 。

傳送端會首先傳送乙個帶有syn標記的資料報給對方。接收端接手後,會返回乙個帶有syn/ack標記的資料報以表示傳達確認資訊。傳送端收到後,再回傳乙個帶有ack標誌的資料報,代表握手結束。

如果握手在某個階段莫莫名中斷,tcp協議會再次以相同的順序傳送相同的資料報。

###負責網域名稱解析的dns服務

dns(domain name system) 服務是和http協議一樣位於應用層的協議。它提供網域名稱到ip位址之間的解析服務。

計算機可以被賦予ip位址,也可被賦予主機名和網域名稱。比如,www.hacker.jp

我們日常使用瀏覽器時,輸入的常是主機名和網域名稱。然而,計算機終究是只能處理數字的,那麼,怎麼樣能使我們輸入的字母加數字的**被計算機理解呢?

為解決此問題,dns服務應運而生。dns協議提供通過網域名稱查詢ip位址, 或逆向從ip位址反查網域名稱的服務。

假如我們想要訪問 www.shandamengcheng666.jp 該網頁, 傳送端首先會通過dns協議獲取到該**對應的ip位址,然後在根據該ip位址找到對應的伺服器,從而獲得網頁。

uri 和 url

url (uniform resource locator, 統一資源定位符)正是我們在瀏覽器位址列所輸入的網頁位址。比如: www.baidu.com

uri (uniform resource identifier, 統一資源識別符號).

uri 用字串標識某一網際網路資源。url 表示資源的地點(網際網路上所處的位置)。顯然,url是 uri 的子集。

那麼詳細的兩者區別是什麼呢?

在看了別人的解釋後,我的理解是:

假設你認識乙個大官,那麼如果有一天你和朋友吹噓說,你認識王五這位大官,顯然王五是他的名字,那麼對應到網路中,王五這個人就是資源, uri就是資源的標識。

只有名字是不行的是吧,別人以為你說假話呢,那麼你說出王五他是具體的**的大官,辦公室在哪,別人就相信了吧。 那麼王五在哪當官,具體辦公室的位置對應於網路中就是資源的位置,即url。

(以上是我個人學習筆記,多摘錄自《**http》一書中,歡迎交流** : ) )

網路基礎之網路協議篇

1 c s b s clientserver browserserver server端必須滿足的條件 1 穩定執行 網路 硬體 作業系統 服務端應用軟體 對外一直提供服務 2 服務端必須繫結乙個固定的位址 2 什麼是網際網路 兩大要素 1 底層的物理連線介質,是為通訊鋪好道路的 2 一套統一的通訊...

網路基礎之網路協議篇

我們知道兩個程序如果需要進行通訊最基本的乙個前提能能夠唯一的標示乙個程序,在本地程序通訊中我們可以使用pid來唯一標示乙個程序,但pid只在本地唯一,網路中的兩個程序pid衝突機率很大,這時候我們需要另闢它徑了,我們知道ip層的ip位址可以唯一標示主機,而tcp層協議和埠號可以唯一標示主機的乙個程序...

http協議總結 網路基礎篇

tcp ip是網際網路相關的各類協議族的總稱。協議中存在各種各樣的內容,從電纜的規格到ip位址的選定方法。尋找異地使用者的方法。雙發建立通訊的順序,以及web頁面顯示需求的處理 如上圖,是對tcp ip協議的一種描述。分層管理 tcp,ip協議按層次分分為 應用層 傳輸層 網路層 資料鏈層 應用層 ...