在瀏覽器地址欄內輸入URL以後,信息會被髮送往某處,而後從某處得到回覆,內容就會顯示在Web頁面上。像這種經過發送請求獲取服務器資源的Web瀏覽器,均可稱爲客戶端。(client)前端
Web使用一種名爲HTTP(即超文本傳輸協議)的協議做爲規範,完成從客戶端到服務器端等一系列運做流程。而協議是指規則的約定。能夠說,Web是創建在HTTP協議上通訊的。瀏覽器
最初設想的基本理念是:藉助多文檔之間相互關聯造成的超文本,連成可相互參閱的WWW(World Wide Web,萬維網)服務器
如今已提出了3項WWW構建技術:1)把SGML(標準通用標記語言)做爲頁面的文本標記語言的HTML。 2)做爲文檔傳遞協議的HTTP。3)指定文檔所在地址的URL(統一資源定位符)網絡
WWW這一名稱,是Web瀏覽器當年用來瀏覽超文本的客戶端應用程序時的名稱。如今則用來表示這一系列的集合,也能夠簡稱爲Web。ide
1990年11月,CERN(歐洲核子研究組織)成功研發了世界上第一臺Web服務器和Web瀏覽器。大數據
1992年9月,日本第一個網站的主頁上線了。網站
1993年1月,現代瀏覽器的祖先NCSA(美國國家超級計算機應用中心)研發的Mosaic問世了。它以in-line(內聯)等形式顯示HTML的圖像,在圖像方面出色的表現使它迅速在世界範圍內流行開來。操作系統
1994年12月,網景通訊公司發佈了Netscape Navigator 1.0orm
1995年微軟公司發佈Internet 1.0和2.0 。緊隨其後的是如今已然成爲Web服務器標準之一的Apache,當時它以Apache0.2的姿態出如今世人面前。對象
1995年左右,微軟公司和網景通訊公司之間爆發的瀏覽器大戰愈演愈烈。兩家公司都各自對HTML作了拓展,因而致使在書寫HTML頁面時,必須考慮兼容它們兩家公司的瀏覽器。時至今日,這個問題仍令那些寫前端頁面的工程師感到棘手。
2000年先後,這場瀏覽器戰爭隨着隨着網景通訊公司的衰落而暫告一段落。
2004年,Mozilla基金會發布了Firefox瀏覽器,第二次瀏覽器大戰隨即爆發。
HTTP於1990年問世。那時的HTTP並無做爲正式的標準被創建。這時的HTTP其實含有HTTP/1.0以前版本的意思所以被稱爲HTTP/0.9。
HTTP正式做爲標準被公佈是在1996年的5月,版本被命名爲HTTP/1.0。雖然說是初期標準,但該協議標準至今仍被普遍使用在服務器端。
1997年1月公佈的HTTP/1.1是目前主流的HTTP協議版本。
一般使用的網絡(包括互聯網)是在TCP/IP協議族的基礎上運做的。而HTTP屬於它內部的一個子集。
計算機與網絡設備要相互通訊,雙方就必須基於相同的方法,咱們把這些規則稱之爲協議。
協議中存在各式各樣的內容。從電纜的規格到IP地址的選定方法、尋找異地用戶的方法、雙方創建通訊的順序,以及Web頁面顯示須要處理的步驟,等等。
像這樣把與互聯網相關聯的協議集合起來總稱爲TCP/IP。
1.TCP/IP協議族裏重要的一點就是分層。TCP/IP協議族按層次分別分爲如下4層:應用層、傳輸層、網絡層和數據鏈路層。
應用層決定了向用戶提供應用服務時通訊的活動。
TCP/IP協議族內預存了各種通用的應用服務。好比,FTP(文件傳輸協議)和DNS(域名系統)服務就是其中兩類。
HTTP協議也處於該層。
傳輸層對上層應用層,提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。
在傳輸層有兩個性質不一樣的協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。
網絡層用來處理在網絡上流動的數據包。
數據包是網絡傳輸的最小數據單位。
該層規定了經過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把數據包傳送給對方。
與對方計算機之間經過多臺計算機或網絡設備進行傳輸時,網絡層所起的做用就是在衆多的選項中選擇一條傳輸路線。
用來處理鏈接網絡的硬件部分。包括控制操做系統、硬件的設備驅動、NIC(網絡適配器,即網卡),及光纖等物理可見部分(還包括鏈接器等一切傳輸媒介)。
硬件上的範疇均在鏈路層的做用範圍以內。
利用TCP/IP協議族進行網絡通訊時,會經過分層順序與對方進行通訊。發送端從應用層往下走,接收端則往應用層上走。
發送端在層與層之間傳輸數據時,每通過一層一定會被打上一個該層所屬的首部信息。反之,接收端在層與層傳輸數據時,每通過一層時會把對應的首部消去。
這種把數據信息包裝起來的作法稱之爲封裝。
按層次,IP網際協議位於網絡層,TCP/IP協議族中的IP指的就是網際協議。
IP協議的做用就是把各類數據包傳送給對方。而要保證確實傳送到對方那裏,則須要知足各種條件。其中兩個重要的條件是IP地址和MAC地址。
IP地址指明瞭節點被分配到的地址,MAC地址是指網卡所屬的固定地址。
IP地址能夠和MAC地址進行配對。IP地址可變換,但MAC地址基本上不會更改。
IP間的通訊依賴MAC地址。在網絡上,通訊的雙方在同一局域網(LAN)內的狀況是不多見的,一般是通過多臺計算機和網絡設備中轉才能鏈接到對方。
在進行中轉時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時會採用ARP協議。
ARP協議是一種用以解析地址的協議,根據通訊雙方的IP地址就能夠反查處對應的MAC地址。
在到達通訊目標前的中轉過程當中,那些計算機和路由器等網絡設備只能獲悉很粗略的傳輸路線。這種機制稱爲路由選擇,有點像快遞公司的送貨過程。
按層次分,TCP位於傳輸層,提供可靠的字節流服務。
所謂的字節流服務,是指爲了方便傳輸,將大塊數據分割成以報文段爲單位的數據包進行管理。
而可靠的傳輸服務是指,可以把數據準確可靠地傳給對方。
總之,TCP協議爲了更容易傳送大數據才把數據分割,並且TCP協議可以確認數據最終是否送達到對方
爲了準確無誤地將數據送達目標處,TCP協議採用了三次握手策略。
用TCP協議把數據包發送出去後,TCP不會對傳送後的狀況置之不理,它必定會向對方確認是否成功送達。
握手過程當中使用了TCP的標識————SYN(synchronize)和ACK(acknowledgement)。
發送端首先發送一個帶有SYN標誌的數據包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信息。最後,發送端再回傳一個帶有ACK標誌的數據包,表明「握手結束」。
除了上述三次握手,TCP協議還有其餘各類手段來保證通訊的可靠性。
DNS服務是和HTTP協議同樣位於應用層的協議,它提供域名到IP地址之間的解析服務。
計算機既能夠被賦予IP地址,也能夠被賦予主機名和域名。好比www.hackr.jp
DNS協議提供經過域名查找IP地址,或逆向從IP地址反查域名的服務。
與URI(統一資源標識符)相比,咱們更熟悉URL(統一資源定位符)。
URL正是使用Web瀏覽器等訪問Web頁面時須要輸入的網頁地址。好比,http://hackr.jp就是URL。
URI是Uniform Resource Identifier的縮寫,RFC2396分別對這三個單詞進行了以下定義。
Uniform:規定統一的格式可方便處理多種不一樣類型的資源,而不用根據上下文環境來識別資源指定的訪問方式。另外,加入新增的協議方案(如:http:或ftp:)也更容易
Resource:資源帝定義「可標識的任何東西」。不只是文檔文件,圖像或服務(例如當地天氣預報)等可以區別於其餘類型的,所有均可以做爲資源。
Identifier:標識可標識的對象。也稱爲標識符
綜上,URI就是由某個協議方案表示的資源的定位標識符。協議方案是指訪問資源所使用的協議類型名稱。
URI用字符串標識某一互聯網資源,而URL表示資源的地點(在互聯網中所處的位置)。可見URL是URI的子集