標籤:tle 認證 接收 source 使用者數 指令碼 指派 str lag
一、第一章:瞭解Web及網路基礎
1.基礎知識 HTTP:(HyperText Transfer Protocol ,超文字傳輸通訊協定 (HTTP)) 用戶端:發送請求擷取伺服器資源的web瀏覽器等都可以稱為用戶端 www : World Wide Web 全球資訊網 URL :Uniform Resource Locator ,統一資源定位器 URI :Uniform Resource Identifier 統一資源識別項 HTML : HyperText Markup Language 超文字標記語言 (HTML)
2.Web訪問瀏覽器的過程 根據web瀏覽器地址中指定的URL,web瀏覽器從web伺服器端擷取檔案資源等資訊並在web頁面上顯示 出來
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/32/wKioL1gMHu3he3MqAADszZ1r4QU397.png-wh_500x0-wm_3-wmp_4-s_3026861466.png" title="01-01.png" alt="wKioL1gMHu3he3MqAADszZ1r4QU397.png-wh_50" />
3.網路基礎TCP/IP協議
3.1通常使用網路(互連網)都是在TCP/IP協議的基礎上運作的,而HTTP屬於它內部的一個子集。本書僅介紹理解HTTP所需掌握的TCP/IP協議概要。3.2 TCP/IP協議: 電腦與網路裝置要互相通訊,雙方就必須基於相同的方法。比如如何探測到通訊目標、由哪一邊先發起通訊、使用哪種語言進行通訊、怎樣結束通訊等規則都需要事先確定。不同的硬體、作業系統之間的通訊,所有的這一切都需要一種規則。而我們把這種規則稱為協議protocol. TCP/IP就是把互連網相關聯的協議集合起來的總稱。TCP/IP是在IP協議的通訊過程中,使用到協議的統稱。3.3 TCP/IP的分層管理 TCP/IP協議裡最重要的一點就是分層。TCP/IP協議按層次分別為以下4層:應用程式層、傳輸層、網路層和資料連結層。 分層的優點:如果互連網只由一個協議統籌,某個地方需要改變設計時,就必須把所有部分整體替換掉。而分層之後只需把變動的層替換掉即可。值得一提的是層次化後,設計也變的相對簡單了。處於應用程式層的應用可以只考慮指派給自己的任務,而不需要弄清對方在地球上的哪個地方、對方的傳輸線路是怎樣的、能否確保傳輸送達等問題。 TCP/IP協議各層的作用如下: 應用程式層: 應用程式層決定了系那個使用者提供應用服務時通訊的活動。 TCP/IP 協議內預存了各類通用的應用服務。比如FTP(File TransferProtocol 檔案傳輸通訊協定)、DNS(Domain Name System 網域名稱系統) ,HTTP協議也處於應用程式層中。 傳輸層: 傳輸層是對上層應用程式層,提供處於網路連接中的兩台電腦之間的資料轉送。 在傳輸層有兩個性質不同的協議:TCP (Transmission Control Protocol , 傳輸控制通訊協定),和UDP(User Data Protocol , 使用者資料包通訊協定). 網路層: (又名網路互連層) 網路層用來處理在網路上流動的資料包。資料包是網路傳輸的最小資料單位。該層 規定了通過怎樣的路徑到達對方電腦,並把資料包傳送給對方 資料連結層: (又名鏈路層,網路介面層) 用來處理串連網路的硬體部分。包括控制作業系統、硬體的裝置驅動、NIC (Network Interface Card ,網路介面卡,即網卡)及光纖等物理可見部分。硬體上的 範疇均在鏈路層的作用範圍之內。3.4 TCP/IP 通訊傳輸串流 傳輸圖解如下:
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/89/36/wKiom1gMT3KhuVnyAAAdz54t75I921.png-wh_500x0-wm_3-wmp_4-s_3794158363.png" title="01-02.png" alt="wKiom1gMT3KhuVnyAAAdz54t75I921.png-wh_50" />
利用TCP/IP協議進行網路通訊時,會通過分層順序與對方進行通訊。發送端從應用程式層往下走,接收端則往應用程式層網上走。 用HTTP舉例說明: 一、發送端 1.首先作為發送端的用戶端在應用程式層(HTTP協議)發出某個想看的web頁面的HTTP請求; 2.接著為了傳輸方便,在傳輸層(TCP協議)把應用程式層處收到的資料(HTTP請求報文)進行分割,並在各個報文上打上標記序號及連接埠號碼後轉寄給網路層; 3.在網路層(IP協議),增加作為通訊目的地的MAC地址後轉寄給鏈路層。這樣一來,發送網路的通訊請求就準備齊全了。 二、接收端 4.在服務端的伺服器在鏈路層收到資料,按順序往上層發送,一直到應用程式層。當傳輸到 應用程式層,才能算真正接收到由用戶端發送過來的HTTP請求。 總結:發送端在層與層之間傳輸資料時,沒經過一層時必備打上一個該層所屬的首部資訊。反之,接收端在層與層傳輸資料時,沒經過一層時會把對應的首部消去。 這種把資料資訊封裝起來的做法稱為封裝。
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M02/89/37/wKiom1gMctOBoC6gAABMFOfwHXA519.png-wh_500x0-wm_3-wmp_4-s_25578926.png" title="01-03.png" alt="wKiom1gMctOBoC6gAABMFOfwHXA519.png-wh_50" />
4. 與HTTP關係密切的協議:IP、TCP和DNS
4.1 IP協議4.1.1負責傳輸的IP協議 按層次分,IP(Internet Protocol)網際協議位於網路層。幾乎所有使用網路的系統都會使用到IP協議。TCP/IP協議中的IP指的就是網際協議,協議名稱中佔據了一半位置,其重要性可見一斑。 IP協議的作用就是把各種資料包傳送給對方,而要保證確實傳送到對方那裡,則需要滿足各類條件。其中兩個重要的條件就是IP地址和MAC地址(Media Aceess Contral Address) 4.1.2. IP地址與MAC地址關係: IP地址指明了節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址可以和MAC地址進行配對。IP地址可變,但MAC地址基本上不會更改。 4.1.3 IP地址間使用ARP協議憑藉MAC地址進行通訊 IP間的通訊依賴MAC地址。在網路上,通訊的雙方在同一區域網路(LAN)內的情況很少,通常是經過多台電腦和網路裝置中轉才能串連到對方。而在進行中轉時,會利用下一站中轉裝置的MAC地址來搜尋下一個中轉目標。這時會採用ARP協議(Address Resolution Protocol).ARP是一種用以解析地址的協議,根據通訊方的IP地址就可以反查處對應的MAC地址。
4.2 確保可靠性的TCP協議4.2.1 按層次分,TCP位於傳輸層,提供可靠的位元組流服務。 所謂的位元組流服務(Byte Stream Service)是指,為了方便傳輸,將大塊資料分割成以報文段為單位的資料包進行管理,而可靠的傳輸服務是指,能夠把資料準確可靠的傳給對方。簡而言之,TCP協議為了更容易傳送大資料才把資料分割,而且TCP協議能夠確認資料最終是否送達對方。4.2.2 確保資料能到達目標 為了能夠準確無誤的將資料送達目標處,TCP協議採用了三向交握策略。用TCP協議把資料包送出去後,TCP不會對傳送後的情況置之不理,它一定會向對方確認是否成功送達。握手過程中使用了TCP的標誌(flag) ---SYN (synchronize) 和ACK (acknowledgement)
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/35/wKioL1gMhmvAfHwLAAA_VRlyOuE098.png-wh_500x0-wm_3-wmp_4-s_3846835316.png" title="01-04.png" alt="wKioL1gMhmvAfHwLAAA_VRlyOuE098.png-wh_50" />
發送端首先發送一個帶SYN標誌的資料包給對方。接收端收到後,回傳一個帶有SYN/ACK標誌的資料包 以示傳達確認資訊。最後發送端再回傳一個帶ACK標誌的資料包,代表"握手"結束。 若在握手過程中某個階段莫名中斷,TCP協議會再次以相同的順序發送相同的資料包。(除了三次 握手以外,TCP協議還有其他手段來保證通訊的可靠性)
4.3 負責網域名稱解析的DNS服務
DNS (Domain Name System )服務是和HTTP協議一樣位於應用程式層的協議。它提供網域名稱到IP地址之間 的解析服務.DNS分為正向解析(網域名稱--->IP)和逆向解析(IP ---->DNS ).
4.4 各種協議與HTTP協議的關係()
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/35/wKioL1gMjBCjtKkoAAIRJ7FiqLo255.jpg-wh_500x0-wm_3-wmp_4-s_1590520987.jpg" title="301157290582869607.jpg" alt="wKioL1gMjBCjtKkoAAIRJ7FiqLo255.jpg-wh_50" />
5.URI 和URL
與URI(統一資源識別項)相比,我們更熟悉URL(Uniform Resource Locator ,統一資源定位器)。 5.1 統一資源識別項 URI URI : Uniform Resource Identifer 統一資源識別項 Uniform :規定統一格式可方便處理多種不同類型的資源,而不用根據上下文環境來識別資源指 定的訪問方式。另外,加入新增的協議方案(如http:或ftp:)也更容易。 Resource :資源的定義是"可標識的任何東西"。除了文檔檔案、映像或服務(例如當天的天氣 預報)等能夠區別於其它類型的,全部可作為資源。另外資源可以是單一的,也可以是多數的集合體。 Indentifer :表示可標識對象。也成為標識符。 綜上所述,URI就是由某個協議方案表示的資源定位標識符。協議方案是直接存取資源所使用的協議類型名稱。採用HTTP協議時,協議方案就是http。除此之外,還有ftp、mailto、telnet、file等。 URI用字串標識某一互連網資源,而URL表示資源的地點(互連網上所處的位置)。可見URL是URI的子集
5.2 URI格式 表示指定的URI,要使用涵蓋全部必要資訊的絕對URI、絕對URL以及相對URL。 相對URL:是指從瀏覽器中基本URI處指定的URL,形如/image/logo.gif 絕對URL格式:
650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/35/wKioL1gMmgeydEGUAAAyvAAXh5E506.png-wh_500x0-wm_3-wmp_4-s_571377936.png" title="01-05.png" alt="wKioL1gMmgeydEGUAAAyvAAXh5E506.png-wh_50" />
5.2.1 協議(方案名) 使用http:或https: 等協議方案名擷取訪問資源時要指定協議類型。(不區分大小寫,最後加冒號(:)) 也可以使用data:或者javascript:這類指定資料或指令碼程式的方案名
5.2.2 登入資訊(認證) 此項為可選項。指定使用者名稱和密碼作為伺服器端擷取資源時必要的登入資訊。(身份認證) 5.2.3 伺服器位址 使用絕對的URI必須指定待訪問的伺服器位址。地址可以是ip(IPV4、IPV6)或者可解析的網域名稱 5.2.4 伺服器連接埠號碼 指定伺服器串連的網路連接埠號碼。此項也是可選項。若使用者省略則自動使用預設連接埠號碼。 5.2.5 帶層次的檔案路徑 指定伺服器上的檔案路徑來定位特指的資源。這與Unix系統的檔案目錄結構類似。 5.2.6 查詢字串 (可選項)針對已制定的檔案路徑內的資源,可以使用查詢字串傳入任意參數。 5.2.7 片段標識符 (可選項)使用片段標識符通常可標記出已擷取資源中的子資源(文檔內的某個位置)。但是在RFC中並沒 有明確規定其使用方法。
讀《圖解HTTP》總結--第一章