Http使用的是可靠的數據傳輸協議,所以即便數據來自地球的另外一端,也可以確保數據在傳輸過程當中不會被損壞或產生混亂。html
這樣用戶在訪問信息時就不用擔憂其完整性了。java
Web內容都是存儲在web服務器上的,web服務器所使用的是http協議,因些常常會被稱爲Http服務器,http客戶端發出請web
求會話,它們會提供數據,客戶端向服務器發送HTTP請求,服務器會在HTTP響應中回送請求的數據。如圖小程序
web服務器是web資源(web resource)的宿主,web資源的web內容的源頭。最簡單的web資源是web服務器瀏覽器
文件系統中的靜態文件。這些文件能夠包含任意內容:文本內容,HTML文件,圖片等。服務器
因特網上有數千種不一樣的數據類型,HTTP仔細地給每種要經過WEB傳輸的對象都打上了名爲MIME類型(mime type)網絡
的數據格式標籤。當web瀏覽器從服務器中取回一個對象時,會去查看相關的MIME類型,看看它是否知道oracle
應該如何處理這個對象。大多數瀏覽器能夠處理數百種覺的對象類型:顯示圖片文件、解析並格式化HTML文件、框架
經過計算機聲卡插入音頻文件,或者運行外部插件軟件來處理特殊格式的數據。佈局
MIME類型是一種文本標記,表示一種主要的對象類型和一個我寫的子類型,中間由一條斜槓來分隔。如
常見的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都遵循一種標準格式,這種格式包含三個部分
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