HTTP讀書筆記——瞭解Web及網路基礎

大豬熬藥發表於2019-02-16

使用HTTP協議訪問Web

  1. 在瀏覽器位址列內輸入URL之後,資訊會被髮送往某處,然後從某處獲得回覆,內容就會顯示在Web頁面上。像這種通過傳送請求獲取伺服器資源的Web瀏覽器,都可稱為客戶端。(client)

  2. Web使用一種名為HTTP(即超文字傳輸協議)的協議作為規範,完成從客戶端到伺服器端等一系列運作流程。而協議是指規則的約定。可以說,Web是建立在HTTP協議上通訊的。

HTTP的誕生

為知識共享而規劃Web

  1. 最初設想的基本理念是:藉助多文件之間相互關聯形成的超文字,連成可相互參閱的WWW(World Wide Web,全球資訊網)

  2. 現在已提出了3項WWW構建技術:1)把SGML(標準通用標記語言)作為頁面的文字標記語言的HTML。 2)作為文件傳遞協議的HTTP。3)指定文件所在地址的URL(統一資源定位符)

  3. WWW這一名稱,是Web瀏覽器當年用來瀏覽超文字的客戶端應用程式時的名稱。現在則用來表示這一系列的集合,也可以簡稱為Web。

Web成長時代

  1. 1990年11月,CERN(歐洲核子研究組織)成功研發了世界上第一臺Web伺服器和Web瀏覽器。

  2. 1992年9月,日本第一個網站的主頁上線了。

  3. 1993年1月,現代瀏覽器的祖先NCSA(美國國家超級計算機應用中心)研發的Mosaic問世了。它以in-line(內聯)等形式顯示HTML的影像,在影像方面出色的表現使它迅速在世界範圍內流行開來。

  4. 1994年12月,網景通訊公司釋出了Netscape Navigator 1.0

  5. 1995年微軟公司釋出Internet 1.0和2.0 。緊隨其後的是現在已然成為Web伺服器標準之一的Apache,當時它以Apache0.2的姿態出現在世人面前。

  6. 1995年左右,微軟公司和網景通訊公司之間爆發的瀏覽器大戰愈演愈烈。兩家公司都各自對HTML做了擴充,於是導致在書寫HTML頁面時,必須考慮相容它們兩家公司的瀏覽器。時至今日,這個問題仍令那些寫前端頁面的工程師感到棘手。

  7. 2000年前後,這場瀏覽器戰爭隨著隨著網景通訊公司的衰落而暫告一段落。

  8. 2004年,Mozilla基金會發布了Firefox瀏覽器,第二次瀏覽器大戰隨即爆發。

駐足不前的HTTP

HTTP/0.9

  1. HTTP於1990年問世。那時的HTTP並沒有作為正式的標準被建立。這時的HTTP其實含有HTTP/1.0之前版本的意思因此被稱為HTTP/0.9。

HTTP/1.0

HTTP正式作為標準被公佈是在1996年的5月,版本被命名為HTTP/1.0。雖說是初期標準,但該協議標準至今仍被廣泛使用在伺服器端。

HTTP/1.1

1997年1月公佈的HTTP/1.1是目前主流的HTTP協議版本。

網路基礎TCP/IP

通常使用的網路(包括網際網路)是在TCP/IP協議族的基礎上運作的。而HTTP屬於它內部的一個子集。

TCP/IP協議族

  1. 計算機與網路裝置要相互通訊,雙方就必須基於相同的方法,我們把這些規則稱之為協議。

  2. 協議中存在各式各樣的內容。從電纜的規格到IP地址的選定方法、尋找異地使用者的方法、雙方建立通訊的順序,以及Web頁面顯示需要處理的步驟,等等。

  3. 像這樣把與網際網路相關聯的協議集合起來總稱為TCP/IP。

TCP/IP的分層管理

1.TCP/IP協議族裡重要的一點就是分層。TCP/IP協議族按層次分別分為以下4層:應用層、傳輸層、網路層和資料鏈路層。

應用層

  1. 應用層決定了向使用者提供應用服務時通訊的活動。

  2. TCP/IP協議族內預存了各類通用的應用服務。比如,FTP(檔案傳輸協議)和DNS(域名系統)服務就是其中兩類。

  3. HTTP協議也處於該層。

傳輸層

  1. 傳輸層對上層應用層,提供處於網路連線中的兩臺計算機之間的資料傳輸。

  2. 在傳輸層有兩個性質不同的協議:TCP(傳輸控制協議)和UDP(使用者資料包協議)。

網路層(又名網路互連層)

  1. 網路層用來處理在網路上流動的資料包。

  2. 資料包是網路傳輸的最小資料單位。

  3. 該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把資料包傳送給對方。

  4. 與對方計算機之間通過多臺計算機或網路裝置進行傳輸時,網路層所起的作用就是在眾多的選項中選擇一條傳輸路線。

鏈路層(又名資料鏈路層,網路介面層)

  1. 用來處理連線網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC(網路介面卡,即網路卡),及光纖等物理可見部分(還包括聯結器等一切傳輸媒介)。

  2. 硬體上的範疇均在鏈路層的作用範圍之內。

TCP/IP通訊傳輸流

  1. 利用TCP/IP協議族進行網路通訊時,會通過分層順序與對方進行通訊。傳送端從應用層往下走,接收端則往應用層上走。

  2. 傳送端在層與層之間傳輸資料時,每經過一層必定會被打上一個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,每經過一層時會把對應的首部消去。

  3. 這種把資料資訊包裝起來的做法稱之為封裝。

與HTTP關係密切的協議:IP、TCP和DNS

負責傳輸的IP協議

  1. 按層次,IP網際協議位於網路層,TCP/IP協議族中的IP指的就是網際協議。

  2. IP協議的作用就是把各種資料包傳送給對方。而要保證確實傳送到對方那裡,則需要滿足各類條件。其中兩個重要的條件是IP地址和MAC地址。

  3. IP地址指明瞭節點被分配到的地址,MAC地址是指網路卡所屬的固定地址。

  4. IP地址可以和MAC地址進行配對。IP地址可變換,但MAC地址基本上不會更改。

使用ARP協議憑藉MAC地址進行通訊

  1. IP間的通訊依賴MAC地址。在網路上,通訊的雙方在同一區域網(LAN)內的情況是很少見的,通常是經過多臺計算機和網路裝置中轉才能連線到對方。

  2. 在進行中轉時,會利用下一站中轉裝置的MAC地址來搜尋下一個中轉目標。這時會採用ARP協議。

  3. ARP協議是一種用以解析地址的協議,根據通訊雙方的IP地址就可以反查處對應的MAC地址。

沒有人能夠全面掌握網際網路中的傳輸狀況

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

確保可靠性的TCP協議

  1. 按層次分,TCP位於傳輸層,提供可靠的位元組流服務。

  2. 所謂的位元組流服務,是指為了方便傳輸,將大塊資料分割成以報文段為單位的資料包進行管理。

  3. 而可靠的傳輸服務是指,能夠把資料準確可靠地傳給對方。

  4. 總之,TCP協議為了更容易傳送大資料才把資料分割,而且TCP協議能夠確認資料最終是否送達到對方

確保資料能到達目標

  1. 為了準確無誤地將資料送達目標處,TCP協議採用了三次握手策略。

  2. 用TCP協議把資料包傳送出去後,TCP不會對傳送後的情況置之不理,它一定會向對方確認是否成功送達。

  3. 握手過程中使用了TCP的標識————SYN(synchronize)和ACK(acknowledgement)。

  4. 傳送端首先傳送一個帶有SYN標誌的資料包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的資料包以示傳達確認資訊。最後,傳送端再回傳一個帶有ACK標誌的資料包,代表“握手結束”。

  5. 除了上述三次握手,TCP協議還有其他各種手段來保證通訊的可靠性。

負責域名解析的DNS服務之間的解析服務

  1. DNS服務是和HTTP協議一樣位於應用層的協議,它提供域名到IP地址之間的解析服務。

  2. 計算機既可以被賦予IP地址,也可以被賦予主機名和域名。比如www.hackr.jp

  3. DNS協議提供通過域名查詢IP地址,或逆向從IP地址反查域名的服務。

URI和URL

  1. 與URI(統一資源識別符號)相比,我們更熟悉URL(統一資源定位符)。

  2. URL正是使用Web瀏覽器等訪問Web頁面時需要輸入的網頁地址。比如,http://hackr.jp就是URL。

統一資源識別符號

URI是Uniform Resource Identifier的縮寫,RFC2396分別對這三個單詞進行了如下定義。

  1. Uniform:規定統一的格式可方便處理多種不同型別的資源,而不用根據上下文環境來識別資源指定的訪問方式。另外,加入新增的協議方案(如:http:或ftp:)也更容易

  2. Resource:資源帝定義“可標識的任何東西”。不僅是文件檔案,影像或服務(例如當地天氣預報)等能夠區別於其他型別的,全部都可以作為資源。

  3. Identifier:標識可標識的物件。也稱為識別符號

  4. 綜上,URI就是由某個協議方案表示的資源的定位識別符號。協議方案是指訪問資源所使用的協議型別名稱。

  5. URI用字串標識某一網際網路資源,而URL表示資源的地點(在網際網路中所處的位置)。可見URL是URI的子集

相關文章