Http概述(一)

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

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

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


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

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

 

 

web資源


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

文件系統中的靜態文件。這些文件能夠包含任意內容:文本內容,HTML文件,圖片等。服務器

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

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

應該如何處理這個對象。大多數瀏覽器能夠處理數百種覺的對象類型:顯示圖片文件、解析並格式化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

相關文章
相關標籤/搜索