HTTP(1)

HTTP(HyperText Transfer Protocol)一般被翻譯爲超文本傳輸協議,但這種譯法並不嚴謹,嚴禁的譯名應該爲「超文本轉移協議」。web

最初設想的基本理念是:藉助多文檔之間相互關聯造成的超文本,連成相互參閱的WWW(World Wide Web,萬維網)。瀏覽器

3項WWW構建技術:服務器

  • 把SGML(Standard Generalized Markup Language, 標準通用標記語言)做爲頁面的文本標記語言的HTML(HyperText Markup Language, 超文本標記語言);
  • 做爲文檔傳遞協議的HTTP;
  • 指定當所在地址的URL(Uniform Resource Locator, 統一資源定位符)

Web成長時代

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

HTTP正式做爲標準被公佈是在1996年5月,版本被命名爲HTTP/1.0,並記載於RFC1945。網絡

TCP/IP協議

計算機與網絡設備要相互通訊,雙方就必須基於相同的方法。這個方法規則就稱爲協議。ide

TCP/IP協議族流重要的一點就是分層:應用層、傳輸層、網絡層和數據鏈路層。模塊化

好處:就如同模塊化開發同樣,只要各層之間的接口部分規劃好之後,每一個層次內部的設計就可以自由改動。並且層次化以後設計也更爲簡單,單個層次只考慮本身分派的任務就能夠了,不用考慮其餘部分。測試

應用層

決定了向用戶提供應用服務時的通訊的活動。FTP和DNS,HTTP協議也處於該層。ui

傳輸層

提供處於網絡鏈接中的兩臺計算機之間的數據傳輸。TCP(Transmission Control Protocol, 傳輸控制協議)和UDP(User Data Protocal, 用戶數據報協議)在這一層。spa

網絡層

用來處理網絡上流動的數據包。數據包是網絡傳輸的最小數據單位。該層規定了經過怎樣的路徑(所謂的傳輸路線)到達對方計算機,並把數據包傳送給對方。

與對方計算機之間經過多態計算機或網絡設備進行傳輸時,網絡層所起的做用就是在衆多的選項內選擇一條傳輸路線。

鏈路層

用來處理鏈接網絡的硬件部分。包括控制操做系統、硬件的設備驅動、NIC(Network Interface Card, 網絡適配器,即網卡),及光纖等物理可見部分(還包括鏈接器等一切傳輸媒介)。硬件上的範疇均在鏈路層的做用範圍內。

TCP/IP通訊傳輸流

UNszid.png

客戶端在應用層(HTTP協議)發出一個想看某個web頁面的HTTP請求;

爲了傳輸方便,在傳輸層(TCP協議)把從應用層收到的數據(HTTP請求報文)進行分割,並在各個報文上打上標記序號及端口號後轉發給網絡層;

在網絡層(IP協議),增長做爲通訊目的地的MAC地址後轉發給鏈路層,這樣,發往網絡的通訊請求就準備齊全了。

接收端的服務器在鏈路層接收到數據,按序往上層發送,一直到應用層,當傳輸到應用層,才能算真正接收到由客戶端發送過來的HTTP請求。

UN2S78.png

負責傳輸的IP協議

不要把IP和IP地址搞混,IP是一種協議,網際協議位於網絡層。做用是把各類數據包傳送給對方。

保證確實傳送到對方那裏的兩個重要條件:IP地址和MAC地址(Media Access Control Address)。

IP地址指明瞭節點被分配到的地址,MAC地址是指網卡所屬的固定地址。IP地址能夠和MAC地址進行配對,IP地址可變換,但MAC地址基本不會更改。

場景:IP之間的通訊依賴MAC地址,可是一般通訊雙方不在同一局域網下,須要通過多臺計算機和網絡設備中轉才能鏈接到對方。在中轉時,會利用下一站中轉設備的MAC地址來搜索下一個中轉目標。這時,會採用APR(Address Resolution Protocol)協議。ARP是一種用以解析地址的洗衣,根據通訊方的IP地址就能夠反查出對應的MAC地址。

確保可靠性的TCP協議

TCP位於傳輸層,提供可靠的字節流服務(Byte Stream Service),是指爲了方便傳輸,將大塊數據分割成以報文段位單位的數據包進行管理。可靠就是指準確可靠的傳輸給對方。

爲了準確無誤的將數據送達目標處,TCP協議採用了三次握手(three-way handshaking)策略。握手過程使用了TCP的標誌——SYN(synchronize)和ACK(acknowledgement)。

過程:

  • 發送端先發送一個帶SYN標誌的數據包給對方。(先測試線路通不通)
  • 接收端接收後,回傳一個帶有SYN/ACK標誌的數據包以示傳達確認信息。(接收端告訴你通了)
  • 最後發送端再回傳一個帶ACK標誌的數據包,表明握手結束。(而後才發送信息)

若是在握手過程當中某個階段莫名終端,TCP協議會再次以相同順序發送相同的數據包。

負責域名解析的DNS服務

DNS(Domain Name System)服務是和HTTP協議同樣位於應用層的協議。它提供域名到IP地址之間的解析服務。

URI和URL

URL(Uniform Resource Locator)統一資源定位符,是咱們使用web瀏覽器等訪問web頁面時須要輸入的網頁地址,例如http://www.baidu.com/就是URL。

URI(Uniform Resource Identifier)統一資源標識符。

Uniform:規定同一的格式能夠方便處理多種不一樣類型的資源,新增協議方案(如http:或ftp:)也更容易。

Resource:資源的定義是「可標誌的任何東西」。文檔文件、圖像或服務(例如當天的天氣)等可以區別於其餘的類型的,均可以做爲資源。資源不只能夠是單一的,也能夠是多數的集合體。

Identifier:表示可標識的對象,也稱爲標誌符。

綜上,URI就是由某個協議方案表示的資源的定位標誌符。協議方案是指訪問資源所使用的協議類型名稱。

URI用字符串標識某一互聯網資源,而URL標識資源的地點(互聯網上所處的位置)。可見URL是URI的子集。

URI格式

絕對URI格式:

http://user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1

http: :使用http:或https:等協議方案名獲取訪問資源時須要制定協議類型。

user:pass 登陸信息(認證),指定用戶名和密碼做爲從服務器端獲取資源時必要的登陸信息(身份認證),可選。感受有點像cookies。

www.example.jp 服務器地址。也能夠用IP地址。

80 服務器端口號,可選。省略則自動使用默認端口號。

dir/index.htm 帶層次的文件路徑,指定服務器上文件路徑來定位特質的資源。

uid=1 查詢字符串,針對已指定的文件路徑內的資源,可使用查詢字符串傳入任意參數。可選。

ch1片斷標識符,定位網頁中的具體位置。可選。

相關文章
相關標籤/搜索