CERN(歐洲核子研究組織)的蒂姆 • 伯納斯 - 李(Tim BernersLee) 博士提出了一種能讓遠隔兩地的研究者們共享知識的設想。javascript
最初設想的基本理念是:藉助多文檔之間相互關聯造成的超文本 (HyperText),連成可相互參閱的 WWW(World Wide Web,萬維 網)。java
如今已提出了 3 項 WWW 構建技術,分別是:把 SGML(Standard Generalized Markup Language,標準通用標記語言)做爲頁面的文本標 記語言的 HTML(HyperText Markup Language,超文本標記語言); 做爲文檔傳遞協議的 HTTP ;指定文檔所在地址的 URL(UniformResource Locator,統一資源定位符)。 WWW 這一名稱,是 Web 瀏覽器當年用來瀏覽超文本的客戶端應用 程序時的名稱。如今則用來表示這一系列的集合,也可簡稱爲 Web。web
應用層
應用層決定了向用戶提供應用服務時通訊的活動。
TCP/IP 協議族內預存了各種通用的應用服務。好比,FTP(File Transfer Protocol,文件傳輸協議)和 DNS(Domain Name System,域名系統)服務就是其中兩類。HTTP(Hypertext Transfer Protocol,超文本傳輸協議) 協議也處於該層。瀏覽器
傳輸層服務器
傳輸層對上層應用層,提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。
在傳輸層有兩個性質不一樣的協議:TCP(Transmission Control Protocol,傳輸控制協議)和 UDP(User Data Protocol,用戶數據報 協議)。網絡
網絡層(又名網絡互連層)
網絡層用來處理在網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了經過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把數據包傳送給對方。與對方計算機之間經過多臺計算機或網絡設備進行傳輸時,網絡層所起的做用就是在衆多的選項內選擇一條傳輸路線。ide
鏈路層(又名數據鏈路層,網絡接口層)
用來處理鏈接網絡的硬件部分。包括控制操做系統、硬件的設備驅動、NIC(Network Interface Card,網絡適配器,即網卡),及光纖等物理可見部分(還包括鏈接器等一切傳輸媒介)。硬件上的範疇均在鏈路層的做用範圍以內。大數據
3.通訊傳輸流:spa
利用 TCP/IP 協議族進行網絡通訊時,會經過分層順序與對方進行通訊。發送端從應用層往下走,接收端則往應用層往上走。接收端的服務器在鏈路層接收到數據,按序往上層發送,一直到應用 層。當傳輸到應用層,才能算真正接收到由客戶端發送過來的 HTTP 請求。
發送端在層與層之間傳輸數據時,每通過一層時一定會被打上一個該 層所屬的首部信息。反之,接收端在層與層傳輸數據時,每通過一層 時會把對應的首部消去。這種把數據信息包裝起來的作法稱爲封裝(encapsulate)。
1.負責傳輸的 IP 協議操作系統
IP(Internet Protocol)網際協議位於網絡層。Internet Protocol 這個名稱可能聽起來有點誇張,但事實正是如此,由於幾乎 全部使用網絡的系統都會用到 IP 協議。
IP 協議的做用是把各類數據包傳送給對方。而要保證確實傳送到對方那裏,則須要知足各種條件。其中兩個重要的條件是 IP 地址和 MAC 地址(Media Access Control Address)。
IP 地址指明瞭節點被分配到的地址,MAC 地址是指網卡所屬的固定地址。IP 地址能夠和 MAC 地址進行配對。IP 地址可變換,但 MAC 地址基本上不會更改。
使用 ARP 協議(Address Resolution Protocol,地址解析協議)憑藉 MAC 地址進行通訊,根據通訊方的 IP 地址就能夠反查出對應的 MAC 地址。
在到達通訊目標前的中轉過程當中,那些計算機和路由器等網絡設備只能獲悉很粗略的傳輸路線。這種機制稱爲路由選擇(routing),機制如圖所示:
2.確保可靠性的 TCP 協議 :
TCP 位於傳輸層,提供可靠的字節流服務。 所謂的字節流服務(Byte Stream Service)是指,爲了方便傳輸,將大塊數據分割成以報文段(segment)爲單位的數據包進行管理。
可靠的傳輸服務是指,可以把數據準確可靠地傳給對方。一言以蔽之, TCP 協議爲了更容易傳送大數據才把數據分割,並且 TCP 協議可以確認數據最終是否送達到對方。TCP 協議採用了三次握手 (three-way handshaking)策略,該過程使用了 TCP 的標誌(flag) —— SYN(synchronize) 和 ACK(acknowledgement)。發送端首先發送一個帶 SYN 標誌的數據包給對方。接收端收到後, 回傳一個帶有 SYN/ACK 標誌的數據包以示傳達確認信息。最後,發 送端再回傳一個帶 ACK 標誌的數據包,表明「握手」結束。 若在握手過程當中某個階段莫名中斷,TCP 協議會再次以相同的順序發 送相同的數據包。附上圖片更容易理解噢:
3.負責域名解析的 DNS 服務:
用戶一般使用主機名或域名來訪問對方的計算機,而不是直接經過 IP 地址訪問。DNS 協議提供經過域名查找 IP 地址,或逆向從 IP 地址反查域名的服務。
經過下面這張圖來了解下 IP 協議、TCP 協議和 DNS 服務在使用 HTTP 協議的通訊過程當中各自發揮了哪些做用
1.定義:
URI(Uniform Resource Identifier,統一資源標識符),URI 就是由某個協議方案
表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。採用 HTTP協議時,協議方案就是 http。除此以外,還有 ftp、mailto、telnet、file 等。
URL(Uniform Resource Locator,統一資源定位符),URL 正是使用 Web 瀏覽器等訪問 Web 頁面時須要輸入的網頁地址。
2.關係:URI 用字符串標識某一互聯網資源,而URL表示資源的地點(互聯網上所處的位置)。 可見 URL 是 URI 的子集。
3.URI 格式
絕對 URI 的格式
使用 http: 或 https:等協議方案名獲取訪問資源時要指定協議類型。不區分字母大小寫,最後附一個冒號(:)。也可以使用 data: 或 javascript: 這類指定數據或腳本程序的方案名。登陸信息(認證):指定用戶名和密碼做爲從服務器端獲取資源時必要的登陸信息(身份認證)。此項是可選項。服務器地址:使用絕對 URI 必須指定待訪問的服務器地址。地址能夠是相似 hackr.jp 這種 DNS 可解析的名稱,或是 192.168.1.1 這類 IPv4 地址 名,還能夠是 [0:0:0:0:0:0:0:1] 這樣用方括號括起來的 IPv6 地址名。服務器端口號:指定服務器鏈接的網絡端口號。此項也是可選項,若用戶省略則自動 使用默認端口號。帶層次的文件路徑:指定服務器上的文件路徑來定位特指的資源。這與 UNIX 系統的文件 目錄結構類似。查詢字符串:針對已指定的文件路徑內的資源,可使用查詢字符串傳入任意參 數。此項可選。片斷標識符:使用片斷標識符一般可標記出已獲取資源中的子資源(文檔內的某個 位置)。但在 RFC 中並無明確規定其使用方法。該項也爲可選項。