網路是怎樣連線的,第一章筆記

徹恩發表於2018-02-02

前言

網路是怎樣連線的,來自於日本的一位作者,本書主要以web互動,從客戶端訪問伺服器以及伺服器應答的過程來講解的。接下來一段時間將以書本上涉及知識的總結以供後期自行查閱。

大體的流程:1)瀏覽器委託資料的傳送,傳遞訊息的是搬運數字(訊息對應著就是資料,資料是0和1組成的);
2)協議棧:給訊息打包,新增地址等接著交給網路卡最後通過電訊號轉發出去;
3) 通過交換機到達路由器,路由器的後面你就是網際網路部分,接下來網路運營商所需要解決的;
4)由接入網到接入點(接入點後面是網際網路的骨幹部分) 到達web伺服器大體需要經過 web 伺服器所在的區域網 --> 防火牆 --> 快取服務 --> WEB服務

第一章 關於HTTP

1.1 HTTP 訊息

Ⅰ關於訪問web伺服器格式:使用者名稱\密碼\伺服器域名\埠號\檔案路徑名;

Ⅱ埠是識別伺服器中要連線服務的編號;

Ⅲ省略預設檔案很多比如 index.html 等;

Ⅳ因為不能產生同名的檔案/目錄,所以在瀏覽的時候如果是沒有副檔名預設的先按目錄來處理,目錄找不到就按檔案來查詢,檔案也查詢不到就返回 404;

Ⅴ基本思路:客戶端傳送請求訊息(URL 和 方法)到伺服器,伺服器返回狀態碼到客戶端 ;

Ⅵ 在訊息體中,URL是域名的部分,方法是 post、get、delete、head、trace 等;

Ⅶ 生成HTTP 請求訊息 格式:第1行是請求行;第 2-N 行是訊息頭;空行;訊息體(傳送的資料);響應訊息 格式:第一行 狀態行;第 2-N 行是訊息頭; 空行; 訊息體(二進位制);

Ⅷ 請求訊息的第一行: <方法> <空> < URL> <空> <HTTP版本>
響應訊息第一行: <HTTP> <狀態碼> <空> <響應短語>;

Ⅸ GET 不能傳送幾百個位元組,對於表單資料過長時候使用post,表單中的資料存在訊息體中;

Ⅹ 服務端響應狀態碼:第一位表示的是型別 1-5分別表示: 告知請求的進度、成功、需要進一步操作、發生客戶端錯誤、發生服務端錯誤。
舉個例子: 200:代表著成功;304 代表著是快取的;404 代表著網頁找不到。

1.2 DNS伺服器查詢web服務的IP地址

Ⅰ 從客戶端到服務端中間有很多個路由,客戶端不停地尋找下一個目標地址。(根據訊息的目的地址判斷下一個路由器的位置)

Ⅱ IPv4 地址的內部結構: 192。168.1.100/24 ,其中 192.168.1.0 代表著整個子網,192.168.1.255 代表著廣播地址。

Ⅱ DNS 為何存在 IP 地址相當於電話號碼,但實在是太多了不容易記住;

Ⅲ 那為何不直接把域名當作IP地址。技術上是可行的,但域名十幾個位元組到 255 個位元組,IP 僅有 四個位元組。域名的長度不固定,但IP 的長度是固定的。

Ⅳ 大體過程: ① 瀏覽器輸入 URL;② 傳送到DNS伺服器中查詢對應的IP;③ 將伺服器中查詢的結果返回到本地;④ 本地生成訊息體委託給作業系統。

Ⅴ DNS 客戶端主要是 DNS 解析器,有提供查詢IP的功能,解析器在 Socket 庫裡,庫中有大量的網路元件(傳送、接收、解析器等)。

Ⅵ 實現過程:呼叫解析器 --> DNS 服務響應 --> 返回地址到記憶體 --> 瀏覽器讀取記憶體 --> 將地址和請求訊息傳送給作業系統。

Ⅶ 那DNS 伺服器是怎麼知道的? 最開始上網的時候就配置好了。(檢測是否配置成功?打不開網頁還照樣掛著QQ )

Ⅷ 整體過程: 應用程式 傳送給 Socket 套接字 請求 作業系統,根據內部協議棧到網路卡把對應的host 傳遞給 DNS Server ,返回IP地址到網路卡,網路卡到內部協議棧 返給作業系統,作業系統返給 Socket ,Socket 最後給相對應的應用程式。 1.3 域名 DNS 基本服務

大體過程: ① 查詢訊息;② 從儲存的記錄中查詢;③返回

Ⅰ 域名對應響應資料型別: A、MX、PTR 、CNAME

Ⅱ 域名的層次結構,13個IP地址組成根域名,其下有很多的域。

Ⅲ 根據域名尋找IP的時候 ① 先找最先接近的DNS伺服器;②如果沒有找到就直接到根域名查詢,如果還未找到就返回域名的下級域到客戶端,客戶端再次根據返回的新的域IP繼續查詢,直到找到為止。在這裡注意的是,每一次找不到的時候不是直接向下級域查詢而是先返回到客戶端然後客戶端再次到指定新的DNS伺服器。

1.4 委託協議棧傳送訊息

Ⅰ向作業系統的協議棧中傳送訊息會呼叫Socket庫中的元件;大體過程是:① 服務端建立套接字;② 客戶端建立套接字;③ 客戶端連線到服務端的套接字;④開始進行收發資料;⑤斷開管道並且刪除套接字。

Ⅱ 建立套接字階段 服務端會直接呼叫網路元件Socket。為了區別不同的套接字,會返回一個描述符到記憶體中。(這裡是伺服器的記憶體還是客戶端的記憶體?)。此時的大體過程如下:① 準備 Socket;② 連線 Connect;③ 傳送 write 和接收 read; ④ 斷開 close

Ⅲ 連線所需要的準備:① 描述符:與本地計算機相關;②埠 與服務端相關;③IP地址:與網路卡有關(一臺電腦多個網路卡,就有多個IP地址,所以IP地址是與網路卡有關,是網路卡的邏輯地址。MAC地址是網路卡的實體地址)

Ⅳ 通訊階段:客戶端與服務端互傳資料的階段。呼叫 read 和 write 方法。同時把訊息儲存到緩衝區中。

Ⅴ 斷開階段:伺服器先呼叫close 方法。(web時預設,客戶端主動請求,伺服器傳送完資料的時候直接關閉,所以最好是一次連線收發請求和響應。)

相關文章