成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

計算機網絡應用層之HTTP協議

網絡 網絡管理
HTTP協議由兩部分程序實現:一個客戶機程序和一個服務器程序,它們運行在不同的端系統中,通過交換HTTP報文運行會話。HTTP定義了Web客戶機是如何向Web服務器請求Web頁面,以及服務器如何將Web頁面傳送給客戶機的。

一、什么是HTTP協議

HTTP是HyperText Transfer Protocol即超文本傳輸協議的縮寫,是Web應用層協議之一。

HTTP協議由兩部分程序實現:一個客戶機程序和一個服務器程序,它們運行在不同的端系統中,通過交換HTTP報文運行會話。HTTP定義了Web客戶機是如何向Web服務器請求Web頁面,以及服務器如何將Web頁面傳送給客戶機的。

HTTP使用 TCP作為它的支撐運輸協議。HTTP客戶機發起一個與服務器的TCP連接,一旦連接建立,瀏覽器(客戶機)和服務器進程就可以通過套接字接口訪問 TCP。至于TCP是什么,在后面的文章中,會詳細介紹,這里讀者只需要知道,TCP是面向連接的,提供可靠的數據傳輸服務,可以無差錯、按順序地交付要發送的數據。即使用TCP作為其支撐的HTTP協議不用擔心數據丟失,也不用擔心TCP是如何從網絡的數據丟失和亂序故障中恢復的,因為那是TCP以及協議棧底層協議的工作。

HTTP是一個無狀態協議,所以服務器向客戶機發送被請求的文件時,并不存儲任何關于該客戶機的狀態信息。舉個例子來說,就是假如某個特定的客戶機在短短幾秒內兩次請求同一個對象,服務器并不會因為剛剛為該用戶提供了該對象而不做出反應,而是重新發送該對象,就好像服務器已經完全忘記了之前所做的事一樣。

最后補充一下,我們平時上網請求的Web頁面是由對象組成的。對象,簡單點來說就是文件,如HTML文件、jpg圖片、視頻等文件,這些文件可通過一個URL地址尋址。當我們請求一個頁面時,我們通常會得到一個HTML文件和幾個引用對象,然后再根據HTML文件中對象的URL地址來加載對象。

二、非持久連接和持久連接

當客戶機/服務器的交互運行于TCP協議上時,應用程序的每個請求/響應對是經一個單獨的TCP連接,則該應用程序使用非持久連接,而當應用程序的每個請求/響應對是經相同的TCP連接發送,則該應用程序使用持久連接。

1、首先,我們來研究一下非持久連接。

在非持久連接的情況下,服務器在發送響應后,關閉TCP連接。我們定義往返時間RTT為一個小分組從客戶機到服務器再回到客戶所花費的時間。所以RTT包括分組傳播時延、排列時延以及分組處理時延。

我們知道 HTTP協議基于TCP協議作為運輸層,所以使用HTTP與服務器之間建立一個連接,則要發起一個到服務器的TCP連接,而TCP建立連接涉及一個“三次握手”的過程。關于“三次握手”在后面介紹TCP的文章中會詳細介紹,這里我們只需要知道,它就是客戶機向服務器發送一個小TCP報文段,服務器用一個小的報文段做出確認和響應,最后,客戶機向服務器返回確認。注意,完成了三次握手的前兩部分后,客戶機將三次握手的第三部分(確認)與一個HTTP請求報文結合起來發送到該TCP連接。一旦請求報文到達服務器,服務器向該TCP連接發送HTML文件。從上面的描述,我們可以知道,對于一個非持久連接,請求一個HTTP請求/響應需要的總時間為兩個RTT+服務器傳輸HTML文件的時間。

2、再來看看持久連接。

在持久連接的情況下,服務器在發送響應后,保持該TCP連接打開。在相同的客戶機與服務器之間的后續請求和響應報文通過相同的連接進行傳送。特別是一個完整的Web頁面(包括多個對象)可以使用單個持久TCP連接進行傳送。如果一個連接經過一定時間間隔仍未被使用,HTTP服務器就關閉該連接。

位于同一臺服務器的多個Web頁面在從該服務器發送給同一個客戶機時,可以在單個持久TCP連接上進行,這睦對象請求可一個接一個地發出,而不必等待未決請求的回答,這種方式叫做流水線式的持久連接,它是HTTP默認使用的持久連接。

3、非持久連接的缺點

首先,非持久連接必須為每一個請求的對象建立和維護一個全新的連接。對于每個這樣的連接,在客戶機和服務器都要分配TCP的緩沖區和變量,從而給服務器帶來了嚴重的負擔。其次,每一個對象的傳輸時延為兩個RTT,即一個RTT用于建立TCP,另一個RTT用于請求和接收一個對象。

三、HTTP報文格式

1、HTTP的請求報文格式

首先,來看看HTTP的請求報文的報文格式,如下圖所示:

第一行是請求行,請求行有3個字段,方法字段、URL字段和HTTP版本字段。方法字段可以取值GET、POST、HEAD、PUT和DELETE等,絕大多數請求使用GET方法。其后繼行叫做首部行。當使用GET方法時,實體主體通常為空,而當使用POST方法時,實體主體通常為需要POST給服務器的內容,例如,我們在網頁上輸入的數據。

下面,給出一個真正的HTTP請求報文,如下:

GET /xxx/page.html HTTP/1.1

Host: www.xxx.com

Connection: close

User-agent:Mozilla/4.0

Accept-language: fr

跟上圖對應,這個報文第一行表示請求行,瀏覽器向服務器請求一個對象,使用了GET方法,它的地址在URL字段中,為/xxx/page.html,所使用的HTTP版本為1.1。

其余的行為首部行,冒號前的是首部字段名,后面是字段的值。

Host: www.xxx.com 定義了目標所在的主機,首部行提供的信息是Web代理高速緩存所要求的。

Connection: close 它告訴服務器不希望使用持久連接,它要求服務器在發送完被請求的對象后就關閉連接。

User-agent:Mozilla/4.0 用來定義用戶代理,即向服務器發送請求的瀏覽器類型,這里為Netscape瀏覽器。

Accept-language: fr 表示用戶想得到該對象的法語版本。

2、HTTP響應報文格式

HTTP響應報文格式與HTTP請求報文有點不同,HTTP的響應報文格式如下圖所示:

我們可以看到它同樣由三部分組成,第一行為狀態行,其后的為首部行,最后的為要發送的實體主體。實體主體部分是報文的主體,即它包含了所請求的對象本身。

下面來看看一個真實的HTTP響應報文,如下:

HTTP/1.1 200 OK

Connection: close

Data: Thu, 03, Jul, 2013 00:00:00 GMT

Server: Apache/1.3.0 (Unix)

Last-Modified: Sun, 6, May 2007 09:23:24 GMT

Content-Type: text/html

(data ... data ...)

首先看一看第一行,它對應上圖中的狀態行,在該報文中,狀態行指示服務器使用的協議是HTTP/1.1,狀態碼為200,短語為OK,表示一切正常,信息包含在返回的響應報文中。

第2到5行為首部行,

Connection: close 告訴客戶機在報文發送完后關閉該TCP連接。

Data 首部行指示服務器產生并發送該響應報文的日期和時間,它是服務器從它的文件系統中檢索到該對象,插入到響應報文的時間。

Server 首部行表明該報文是由一個Apache Web服務器產生的,它類似于請求報文中的User-agent首部行。

Last-Modified 首部行指示了該對象創建或者最后修改的時間和日期。

Content-Type 首部行指示了實體主體中的對象的文件類型,對象類型應該正式地使用該首部行而不是用文件擴展名來指示,因為在某些系統(如Linux),文件的類型并不是用擴展名為區分的。

Content-Length 首部行表明了被發送對象的字節數。

3、常見的HTTP狀態碼和短語

200 OK:請求成功,信息包含在返回的響應報文中。

301 Moved Permanently:請求的對象已經被永久轉移了,新的URL定義在響應報文的Location 首部行中指定。客戶機可自動用新的URL獲取該對象。

400 Bad Repuest:一個通用差錯代碼,指示該請求不能被服務器所理解。

404 Not Found:被請求的文檔不在服務器上。

505 HTTP Version Not Supported:服務器不支持請求報文使用的HTTP協議版本。

博客原文:http://blog.csdn.net/ljianhui/article/details/13087145

責任編輯:張存 來源: 博客
相關推薦

2013-11-25 10:07:31

P2P對等網絡

2010-06-12 16:56:37

2010-09-08 20:45:31

計算機網絡協議

2010-09-08 20:42:09

計算機網絡協議

2013-03-08 12:51:03

計算機網絡基礎協議DHCP

2013-05-14 13:02:17

計算機網絡基礎協議

2010-09-02 16:02:45

計算機網絡協議

2015-05-28 11:09:00

2010-06-14 18:54:57

計算機網絡協議

2010-09-08 21:01:44

計算機網絡協議

2010-06-13 15:08:07

計算機網絡協議

2010-06-14 18:58:52

VoIP計算機網絡協議

2010-09-08 20:53:14

WinPCap計算機網絡協議

2025-02-25 08:16:43

2010-09-02 16:56:10

計算機網絡協議

2010-06-14 18:51:05

計算機網絡協議

2010-06-13 13:35:54

計算機網絡協議

2010-06-12 16:51:54

計算機網絡通信協議

2010-06-09 11:00:56

2010-06-29 10:29:19

計算機網絡協議
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品中文字幕 | 国产精品美女www爽爽爽视频 | 精品中文字幕一区二区 | 欧美一区二区网站 | 日韩一级免费观看 | 国产小视频在线 | 日本爱爱视频 | 色偷偷888欧美精品久久久 | 亚洲一区二区三区在线观看免费 | 免费黄色网址视频 | 手机av在线 | 国产精品高潮呻吟久久av野狼 | 欧美精品在线一区 | 久久久久久久久国产成人免费 | 国产精品久久久久久久久久久久冷 | 久久一区二区三区免费 | 国产精品久久国产精品久久 | 美女在线国产 | 中文字幕国产一区 | 国产精品免费一区二区三区 | 国产一区二区三区在线看 | 欧美成人一区二区 | 午夜视频免费在线 | aaaaaaa片毛片免费观看 | 中文精品视频 | 激情影院久久 | 日韩成人一区 | 国产精品自产拍在线观看蜜 | 日韩一级免费 | 国产精品久久精品 | 久久久久久中文字幕 | 成人av播放 | av第一页 | 亚洲麻豆| 国产十日韩十欧美 | 欧美女优在线观看 | 亚洲天堂av网 | 嫩草视频免费 | 亚洲欧美视频一区 | 国产99精品| 日本电影网站 |