Http概述(一)


Http使用的是可靠的數據傳輸協議,因此即使數據來自地球的另一端,也能夠確保數據在傳輸過程中不會被損壞或產生混亂。

這樣用戶在訪問信息時就不用擔心其完整性了。

web服務端與服務器是如何通信的


Web內容都是存儲在web服務器上的,web服務器所使用的是http協議,因些經常會被稱為Http服務器,http客戶端發出請

求會話,它們會提供數據,客戶端向服務器發送HTTP請求,服務器會在HTTP響應中回送請求的數據。如圖

 

 

web資源


web服務器是web資源(web resource)的宿主,web資源的web內容的源頭。最簡單的web資源是web服務器

文件系統中的靜態文件。這些文件可以包含任意內容:文本內容,HTML文件,圖片等。

因特網上有數千種不同的數據類型,HTTP仔細地給每種要通過WEB傳輸的對象都打上了名為MIME類型(mime type)

的數據格式標簽。當web瀏覽器從服務器中取回一個對象時,會去查看相關的MIME類型,看看它是否知道

應該如何處理這個對象。大多數瀏覽器可以處理數百種覺的對象類型:顯示圖片文件、解析並格式化HTML文件、

通過計算機聲卡插入音頻文件,或者運行外部插件軟件來處理特殊格式的數據。

 

 MIME類型是一種文本標記,表示一種主要的對象類型和一個我寫的子類型,中間由一條斜杠來分隔。如

  • HTML格式的文本文檔由text/html類型來標記
  • 普通的ASCII文本由text/plain類型來標記
  • JPEG版本的圖片為image/gpeg類型
  • GIF格式的圖片為image/gif類型

常見的MIME類型有數百個,更多類型請查看 w3school

http://www.w3school.com.cn/media/media_mimeref.asp

每個web服務器資源都有一個名字,這樣客戶端就可以說明它們要找的資源是什么了,服務器資源名稱被稱為

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

URI就像因特網上的身份證一樣,在世界范圍內唯一標識並定位信息資源

這個是是我博客上的一個圖片資源URI

http://images.cnblogs.com/cnblogs_com/li-peng/578271/o_china.jpg

給出了URI,HTTP就可以解析出對象,URI有兩種形式,分別稱為URL和URN,

URL統一資源定位符是資源標識符最常見的形式。URL描述了一台特定服務器上某資源的特定位置。它們可以明確說明如何從一個

精確、固定的位置獲取資源。

大部分URL都遵循一種標准格式,這種格式包含三個部分

  • URL的第一部分被稱為方案(scheme)說明了訪問資源所使用的協議類型。這部分通常就是HTTP協議(http://).
  • 第二部分給出了服務器的因特網地址(如:www.images.cnblogs.com)
  • 其余部分指定了Web服務器上的某個資源(如:cnblogs_com/li-peng/578271/o_china.jpg)

URN統一資源名。URN是作為特定內容的唯一名稱使用的。它與當前的資源所在地無關。使用這些與位置無關的URN,就可以將資源四處搬移。通過URN,還可以用同一個名稱能過多種網絡協議來訪問資源。

Urn還處於試驗階段,這里不詳細介紹了

事務


一個http事務由一條請求命令和一個(從服務器發回客戶端的)響應結果組成。這種通信是通過名為HTTP報文(http message)的格式化數據進行的

方法

HTTP支持幾種不同的請求命令,這些命令被稱為HTTP方法。每條HTTP請求報文都包含一個方法。這個方法會告訴服務器要執行什么動作(獲取一個web頁面、運行一個網關程序、刪除一個文件等)。下面列出了五種常見的HTTP方法

GET 從服務器向客戶端發送發送命名資源
PUT 將來自客戶端的數據存儲到一個命名的服務器資源中去
DELETE 從服務器中刪除命名資源
POST 將客戶端數據發送到一個服務器網關應用程序
HEAD 僅發送命名資源響應中的HTTP首部

這些方法在以后會詳細討論。

狀態碼


每條HTTP響應報文返加時都會攜帶一個狀態碼,狀態碼是一個三們數字的代碼告知客戶端請求是否成功,或者是否需要采取其他動作

下表列出了幾種常用的狀態碼

200 OK,文檔正確返回
302 Redirect(重定向),到其他地方去獲取資源
404 Not Found(沒找到)。無法找到這個資源

 詳細http://www.w3school.com.cn/tags/html_ref_httpmessages.asp

Web頁面中可以包含多個對象

應用程序完成一項任務時通常會發布多個HTTP事件。比如,Web瀏覽器會發布一系列HTTP事務來獲取並顯示一個包含了豐富圖片的WEB頁面。

瀏覽器會執行一個事務來獲取描述頁面布局的HTML“框架”,然后發布另外的HTTP事務來獲取每個嵌入式圖片、圖像面板、java小程序,這些嵌入式資源甚至可能位於不同的服務器上。

復全Web頁面要為每個嵌入式資源使用一個單獨的事務

報文


先簡單說一個HTTP請求和響應報文結構,以扣會深入研究HTTP報文

HTTP報文是由一行一行的簡單字符串組成。HTTP報文都是純文本,不是二進制代碼,所以人們可以

很方便地對其進行讀寫。

從WEB客戶端發往WEB服務器的HTTP報文稱為請求報文(request message)從服務器發客戶端的報文稱為響應報文

(response message) ,此外沒有其他類型的HTTP報文。HTTP請求和響應報文的格式很類似

HTTP報文包含以下三個部分

  • 起始行

報文的第一行就是起始行,在請求報文中用來說明要做什么,在響應報文中說明出現了什么情況

  • 首部字段

起始行后面有零個或多個首部字段。每個首部字段都包含一個名字和一個值,為了便於解析,兩者之間用冒號(:)分隔。首部以一個空行結束。添加一個首部字段和添加新行一樣簡單

  • 主體

空行之后就是可選的報文主體了,其中包含了所有類型的數據。請求主體中包括了要發送給Web服務器的數據;響應主體中裝載了要返回給客戶端的數據。起始行和首部都是文本形式且都是結構化的而主休則不同,主休中可以 包含任意的二進制數據(比如圖片、視頻、軟件程序)。當然,主體中也可以包含文本

請求的一個實例 

我們就打開ORACLE的主頁http://www.oracle.com/cn/index.html

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM