網絡之旅(一)

我們以一張圖片來開始我們的網絡之旅。

開場白

當我們要訪問一個服務器時,需要知道這個服務器的IP地址。否則是沒有辦法訪問的。
但是我們日常訪問Web服務器時,也沒有輸入IP地址呀,怎麼也可以訪問?
我們以在遊覽器中輸入 https://www.csdn.net/ 爲例。

其實計算機是不認識 https://www.csdn.net/ 的。沒有關係,計算機不知道它可以問知道的人。
誰知道呢? —DNS服務器

每當你要查看一個網址的時候,計算機會向DNS服務器查詢,這個域名對應的 IP 地址是什麼。然後DNS 返回一個響應信息,裏面就包含着 這個域名對應的IP地址。

有人問了,爲什麼不直接輸入IP地址,這樣不更快?
直接輸入IP地址是快,但是太麻煩了。每個人每天訪問的網址特別多,總不能把所有網址的IP地址背下來。
然後計算機得到了 IP地址,它就會去訪問該IP地址對應的Web服務器,Web服務器在通過響應信息將數據返回給計算機,再顯示在顯示屏上。
而且:如果服務器設置的虛擬主機,是不能夠通過IP地址訪問到的。

其中:
http:http代表了訪問Web服務器時使用http協議。
ftp:ftp 代表訪問FTP服務器時使用了FTP協議。

然後我們再來講一下DNS服務器。

因爲現在的域名越來越多,一臺服務器不可能將所有數據存儲起來,這樣不僅存儲跟不上,而且搜索起來也更加耗時。
然後就有人研究出 利用域名的級別來進行管理,即用上級管理下級。
例如:www.csdn.net
越靠右的域名等級越高。最高的域名爲 / 域名。
在這裏插入圖片描述
因爲根域只有一個,所以所有的DNS服務器都保存着 / 域(根域)的IP地址。而且大部分的DNS 也保存着頂級域名的DNS服務器的地址(頂級域名)也不多。

遊覽器如何訪問DNS服務器

當遊覽器要開始查詢一個域名的時候(以www.csdn.net 爲例),首先向最近的一臺DNS服務器發送請求,假如這個DNS服務器不知道,它會返回根域的 IP 地址,然後遊覽器又去訪問 根域,根域說我不知道你要找的,但是我知道.net的 IP 地址,然後返回.net的IP地址,遊覽器又去訪問 .net的 IP地址,依次進行,直到找到目的域名時返回該域名的IP地址。
下面是圖示:
在這裏插入圖片描述

至此,我們已經獲得了Web服務器的IP 地址了。下一步就是訪問它了。

訪問Web服務器

知道了IP地址之後,直接可以委託操作系統內部的協議棧向這個目標IP地址發送請求了。
客戶端訪問Web服務器時,首先會發送頭字段,然後在發送數據。
如果Web服務器沒有找到你所需要的信息,則會返回404 NOT Found。
如果找到返回所需要的信息,然後遊覽器將數據提取,顯示在網頁上。
當網頁中包含圖片時,會在網頁上佔據一塊空間,然後當所有文字信息填充後,在向Web服務器請求圖片。

注:
1.因爲遊覽器一次只能向Web服務器發起一個請求,所以服務器一次只能做出一次相應。
如果需要獲取多個文件,必須對每個文件單獨發送一條請求。
2.爲了加快DNS服務器的相應,通過給DNS服務器增加緩存來實現的 —保存你之前訪問過的域名。
但是每一條信息會有一個保存期。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章