一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

HTTP協(xié)議詳解,以用戶角度看互聯(lián)網協(xié)議是如何工作的(圖)

 wlj2004 2013-12-23

版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www./antiblood-logs/217196206.html

2012-6-14 SamZhang

最近一直在做關于互聯(lián)網的一些事情,所以今天我想以互聯(lián)網用戶的角度看看互聯(lián)網協(xié)議是如何工作的,并對 HTTP 協(xié)議進行詳解,以便更好的理解網絡通信,為自己的互聯(lián)網小事業(yè)盡一份心意。

一、網絡通信依靠數(shù)據(jù)包的傳遞

數(shù)據(jù)傳遞是這樣的,一般由一臺電腦向另一臺遠程電腦發(fā)出請求數(shù)據(jù)包,而另一端的遠程電腦返回給這臺所請求的數(shù)據(jù)包,這樣就完成了一次網絡通信,網絡通信發(fā)送的數(shù)據(jù)包一般為如圖所示的格式。

http 協(xié)議詳解之 網絡通信數(shù)據(jù)包格式

我們先不管它是如何發(fā)送出去的,先讓我看看以太網表頭、 IP 標頭、 TCP 標頭以及應用層數(shù)據(jù)包(主要進行 HTTP 協(xié)議的詳解)里面到底是什么東西,下面我將使用 visual sniffer 工具解析下各個數(shù)據(jù)段的內容。下面開始訪問一個 www. 的網站,獲得了以下信息:

GET / HTTP/1.1

Host: www.

User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-cn,zh;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7

Connection: keep-alive

Cookie: CNZZDATA4158082=cnzz_eid=32769983-1337692276-&ntime=1339403774&cnzz_a=11&retime=1339403808613&sin=none

……

詳細解釋下:

1. 應用層數(shù)據(jù)包內容:

這個信息是 HTTP 協(xié)議部分的內容, HTTP 協(xié)議屬于應用層協(xié)議,即下圖所示部分內容;

http 協(xié)議詳解之應用層數(shù)據(jù)包內容

HTTP 是一個屬于應用層的面向對象的協(xié)議,由于它的簡單快速,被互聯(lián)網廣泛采用,目前使用的是 HTTP1.1 協(xié)議版本。

HTTP 協(xié)議詳解之 HTTP URL

  HTTP URL (URL 是一種特殊類型的 URI Uniform Resource Identifier ,通用資源標志符,包含了用于查找某個資源的足夠的信息 ) 的格式如下:

http://host[":"port][abs_path]

http 表明用 HTTP 協(xié)議定位網絡資源; host 表明需要訪問的遠程 Internet 主機域名或者 IP 地址; port 是所訪問遠程主機的端口號,沒顯示的話則表明使用缺省端口 80 abs_path 指定了所要請求資源的 URI ;如果 URL 中沒有給出 abs_path ,那么當它作為請求 URI 時,必須以“ / ”的形式給出,通常這個工作瀏覽器自動幫我們完成。

eg:

1 )輸入: www.

瀏覽器自動轉換成: http://www./

2 http:192.168.0.116:8080/default.asp

HTTP 協(xié)議詳解之 HTTP 請求

http 請求有三部分組成:請求行、消息報頭、請求的正文

1 )“請求行”格式

Method (請求方法)— Request URI (請求的地址)— HTTP Version http 協(xié)議版本)— CRLF (回車換行);

請求方法很多,列舉常用方法的解釋如下:

GET :請求獲取 Request-URI 所標識的資源

POST :在 Request-URI 所標識的資源后附加新的數(shù)據(jù)

HEAD :請求獲取由 Request-URI 所標識的資源的響應消息報頭

應用舉例:

GET 方法:在瀏覽器的地址欄中輸入網址的方式訪問網頁時,瀏覽器采用 GET 方法向服務器獲取資源, eg: GET /themes/Discuz7/source/style.css.asp HTTP/1.1 (CRLF)

POST 方法要求被請求服務器接受附在請求后面的數(shù)據(jù),常用于提交表單。

eg POST /reg.asp HTTP/ (CRLF)

Accept:image/gif,image/x-xbit,... (CRLF)

...

HOST:www. (CRLF)

Content-Length:22 (CRLF)

Connection:Keep-Alive (CRLF)

Cache-Control:no-cache (CRLF)

(CRLF)         // CRLF 表示消息報頭已經結束,在此之前為消息報頭

user=jeffrey&pwd=1234  // 此行以下為提交的數(shù)據(jù)

HEAD 方法與 GET 方法幾乎是一樣的,對于 HEAD 請求的回應部分來說,它的 HTTP 頭部中包含的信息與通過 GET 請求所得到的信息是相同的。

2 )“消息報頭”格式:

HTTP 消息由客戶端到服務器的請求和服務器到客戶端的響應組成。請求消息和響應消息都是由開始行(對于請求消息,開始行就是請求行,對于響應消息,開始行就是狀態(tài)行),消息報頭(可選),空行(只有 CRLF 的行),消息正文(可選)組成。

HTTP 消息報頭包括普通報頭、請求報頭、響應報頭、實體報頭。

每一個報頭域都是由名字 + “:” + 空格 + 組成,消息報頭域的名字是大小寫無關的。

i .普通報頭

在普通報頭中,有少數(shù)報頭域用于所有的請求和響應消息,但并不用于被傳輸?shù)膶嶓w,只用于傳輸?shù)南ⅰ?/span>

eg Cache-Control

用于指定緩存指令,緩存指令是單向的。

請求時的緩存指令包括: no-cache (不能緩存)、 no-store 、 max-age 、 max-stale min-fresh 、 only-if-cached;

響應時的緩存指令包括: public 、 private no-cache 、 no-store 等。

Connection 普通報頭域允許發(fā)送指定連接的選項。例如指定連接是連續(xù),或者指定“ close ”選項,通知服務器,在響應完成后,關閉連接

ii .請求報頭

請求報頭允許客戶端向服務器端傳遞請求的附加信息以及客戶端自身的信息。

常用的請求報頭詳解如下:

Host 報頭域(必需):

Host 請求報頭域主要用于指定被請求資源的 Internet 主機和端口號,它通常從 HTTP URL 中提取出來的, eg

我們在瀏覽器中輸入: http://www./

瀏覽器發(fā)送的請求消息中,就會包含 Host 請求報頭域,如下:

Host www.

此處使用缺省端口號 80 ,若指定了端口號,則變成: Host www.: 指定端口號

User-Agent 報頭域(非必需):

我們上網會看到一些歡迎信息,其中列出了你的操作系統(tǒng)的名稱和版本,你所使用的瀏覽器的名稱和版本,實際上,服務器應用程序就是從 User-Agent 這個請求報頭域中獲取到這些信息。這個報頭域是非必需的。

Accept 報頭域

Accept 請求報頭域用于指定客戶端接受哪些類型的信息。 eg Accept image/gif ,表明客戶端希望接受 GIF 圖象格式的資源; Accept text/html ,表明客戶端希望接受 html 文本。

Accept-Charset 報頭域

Accept-Charset 請求報頭域用于指定客戶端接受的字符集。 eg Accept-Charset:iso-8859-1,gb2312. 如果在請求消息中沒有設置這個域,缺省是任何字符集都可以接受。

Accept-Encoding 報頭域

Accept-Encoding 請求報頭域類似于 Accept ,但是它是用于指定可接受的內容編碼。 eg Accept-Encoding:gzip.deflate. 如果請求消息中沒有設置這個域服務器假定客戶端對各種內容編碼都可以接受。

Accept-Language 報頭域

Accept-Language 請求報頭域類似于 Accept ,但是它是用于指定一種自然語言。 eg Accept-Language:zh-cn. 如果請求消息中沒有設置這個報頭域,服務器假定客戶端對各種語言都可以接受。

iii .實體報頭(略)

3 )請求正文(略)

更深一步了解 HTTP 協(xié)議,可以查看 RFC2616 ,在 http://www./rfc 上找到該文件。

2. TCP 協(xié)議層內容:

TCP 協(xié)議層內容包含了 TCP 標頭和應用層數(shù)據(jù)包,如下圖所示。

http 協(xié)議詳解之 TCP 協(xié)議層內容

TCP 數(shù)據(jù)包主要是設置發(fā)出方和接收方的端口號,像我們訪問 www. 的時候發(fā)出方用的是 4026 端口,接收方用的是 80 端口,如圖所示。

http 協(xié)議詳解之 TCP 設置端口號

3. IP 協(xié)議層內容:

TCP 協(xié)議層內容嵌入 IP 協(xié)議層之后就是 IP 數(shù)據(jù)包了,如圖所示。

http 協(xié)議詳解之 IP 數(shù)據(jù)包

IP 數(shù)據(jù)包包含了請求發(fā)出方和接收方的 IP 地址。

4. 以太網協(xié)議層內容:

IP 數(shù)據(jù)包嵌入以太網協(xié)議層即為以太網數(shù)據(jù)包,就如本文開頭那張圖所示。因此,以太網標頭主要是設置發(fā)出方和接收方的 MAC 地址,即無力網卡地址。

現(xiàn)在終于明白了 HTTP 協(xié)議詳解的知識了。

分享到: 1

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    好吊视频一区二区在线| 成年人黄片大全在线观看| 日本欧美视频在线观看免费| 少妇一区二区三区精品| 亚洲国产精品av在线观看| 国产成人精品一区二区三区| 妻子的新妈妈中文字幕| 污污黄黄的成年亚洲毛片| 伊人久久五月天综合网| 大香蕉伊人一区二区三区| 男女午夜视频在线观看免费| 91欧美日韩一区人妻少妇| 人妻亚洲一区二区三区| 欧美一区二区在线日韩| 日本熟女中文字幕一区| 暴力性生活在线免费视频| 91欧美日韩中在线视频| 久久热这里只有精品视频| 黄片美女在线免费观看| 色哟哟哟在线观看视频| 人妻亚洲一区二区三区| 国产又粗又硬又长又爽的剧情| 亚洲国产天堂av成人在线播放| 亚洲国产成人av毛片国产| 国产又粗又深又猛又爽又黄| 国产精品亚洲一区二区| 欧洲日韩精品一区二区三区| 国产原创中文av在线播放| 日韩1区二区三区麻豆| 国产成人国产精品国产三级| 精品国自产拍天天青青草原| 亚洲国产综合久久天堂| 国产又粗又长又大的视频| 国产香蕉国产精品偷在线观看| 中日韩美一级特黄大片| 黑丝国产精品一区二区| 十八禁日本一区二区三区| 好吊日在线视频免费观看| 国产精品一区欧美二区| 亚洲丁香婷婷久久一区| 国产欧美一区二区另类精品|