User-Agent
作用:告訴HTTP服務(wù)器, 客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本.
我們上網(wǎng)登陸論壇的時(shí)候,往往會(huì)看到一些歡迎信息,其中列出了你的操作系統(tǒng)的名稱和版本,你所使用的瀏覽器的名稱和版本,這往往讓很多人感到很神奇,實(shí)際上,服務(wù)器應(yīng)用程序就是從User-Agent這個(gè)請(qǐng)求報(bào)頭域中獲取到這些信息User-Agent請(qǐng)求報(bào)頭域允許客戶端將它的操作系統(tǒng)、瀏覽器和其它屬性告訴服務(wù)器。
例如: User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; InfoPath.2; .NET4.0E)
Connection
例如:Connection: keep-alive 當(dāng)一個(gè)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接
例如: Connection: close 代表一個(gè)Request完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會(huì)關(guān)閉, 當(dāng)客戶端再次發(fā)送Request,需要重新建立TCP連接。
Content-Length
作用:發(fā)送給HTTP服務(wù)器數(shù)據(jù)的長(zhǎng)度。
例如: Content-Length: 38
Host(發(fā)送請(qǐng)求時(shí),該報(bào)頭域是必需的)
作用: 請(qǐng)求報(bào)頭域主要用于指定被請(qǐng)求資源的Internet主機(jī)和端口號(hào),它通常從HTTP URL中提取出來的
例如: 我們?cè)跒g覽器中輸入:http://www.guet.edu.cn/index.html
瀏覽器發(fā)送的請(qǐng)求消息中,就會(huì)包含Host請(qǐng)求報(bào)頭域,如下:
Host:http://www.guet.edu.cn
此處使用缺省端口號(hào)80,若指定了端口號(hào),則變成:Host:指定端口號(hào)
Pragma
作用: 防止頁面被緩存, 在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一樣
Pargma只有一個(gè)用法, 例如: Pragma: no-cache
Cookie:
作用: 最重要的header, 將cookie的值發(fā)送給HTTP 服務(wù)器
Accept-Charset
作用:瀏覽器申明自己接收的字符集,這就是本文前面介紹的各種字符集和字符編碼,如gb2312,utf-8(通常我們說Charset包括了相應(yīng)的字符編碼方案);
我們?cè)倏碦esponse消息的結(jié)構(gòu), 和Request消息的結(jié)構(gòu)基本一樣。 同樣也分為三部分
第一部分叫Response line,
第二部分叫Response header,
第三部分是body. header和body之間也有個(gè)空行,
結(jié)構(gòu)如下圖

HTTP/version-number表示HTTP協(xié)議的版本號(hào), status-code 和message 請(qǐng)看下節(jié)[狀態(tài)代碼]的詳細(xì)解釋.
我們用Fiddler 捕捉一個(gè)博客園首頁的Response然后分析下它的結(jié)構(gòu), 在Inspectors tab下以Raw的方式可以看到完整的Response的消息, 如下圖
Cache-Control
作用: 這個(gè)是非常重要的規(guī)則。 這個(gè)用來指定Response-Request遵循的緩存機(jī)制。各個(gè)指令含義如下
Cache-Control:Public 可以被任何緩存所緩存()
Cache-Control:Private 內(nèi)容只緩存到私有緩存中
Cache-Control:no-cache 所有內(nèi)容都不會(huì)被緩存
還有其他的一些用法, 我沒搞懂其中的意思, 請(qǐng)大家參考其他的資料
Content-Type
作用:WEB服務(wù)器告訴瀏覽器自己響應(yīng)的對(duì)象的類型和字符集,
例如:
Content-Type: text/html; charset=utf-8
Content-Type:text/html;charset=GB2312
Content-Type: image/jpeg
Expires
作用: 瀏覽器會(huì)在指定過期時(shí)間內(nèi)使用本地緩存
例如: Expires: Tue, 08 Feb 2022 11:35:14 GMT
Last-Modified:
作用: 用于指示資源的最后修改日期和時(shí)間。(實(shí)例請(qǐng)看上節(jié)的If-Modified-Since的實(shí)例)
例如: Last-Modified: Wed, 21 Dec 2011 09:09:10 GMT
Server:
作用:指明HTTP服務(wù)器的軟件信息
例如:Server: Microsoft-IIS/7.5
X-AspNet-Version:
作用:如果網(wǎng)站是用ASP.NET開發(fā)的,這個(gè)header用來表示ASP.NET的版本
例如: X-AspNet-Version: 4.0.30319
X-Powered-By:
作用:表示網(wǎng)站是用什么技術(shù)開發(fā)的
例如: X-Powered-By: ASP.NET
Connection
例如:Connection: keep-alive 當(dāng)一個(gè)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接
例如: Connection: close 代表一個(gè)Request完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會(huì)關(guān)閉, 當(dāng)客戶端再次發(fā)送Request,需要重新建立TCP連接。
Content-Length
指明實(shí)體正文的長(zhǎng)度,以字節(jié)方式存儲(chǔ)的十進(jìn)制數(shù)字來表示。在數(shù)據(jù)下行的過程中,Content-Length的方式要預(yù)先在服務(wù)器中緩存所有數(shù)據(jù),然后所有數(shù)據(jù)再一股腦兒地發(fā)給客戶端。
例如: Content-Length: 19847
Date
作用: 生成消息的具體時(shí)間和日期
例如:Date: Sat, 11 Feb 2012 11:35:14 GMT
HTTP協(xié)議之Get和Post
Http協(xié)議定義了很多與服務(wù)器交互的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個(gè)URL地址用于描述一個(gè)網(wǎng)絡(luò)上的資源,而HTTP中的GET, POST, PUT, DELETE就對(duì)應(yīng)著對(duì)這個(gè)資源的查,改,增,刪4個(gè)操作。 我們最常見的就是GET和POST了。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息.
我們看看GET和POST的區(qū)別
- GET提交的數(shù)據(jù)會(huì)放在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的數(shù)據(jù)放在HTTP包的Body中.
- GET提交的數(shù)據(jù)大小有限制(因?yàn)闉g覽器對(duì)URL的長(zhǎng)度有限制),而POST方法提交的數(shù)據(jù)沒有限制.
- GET方式需要使用Request.QueryString來取得變量的值,而POST方式通過Request.Form來獲取變量的值,也就是說Get是通過地址欄來傳值,而Post是通過提交表單來傳值。
- GET方式提交數(shù)據(jù),會(huì)帶來安全問題,比如一個(gè)登錄頁面,通過GET方式提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在URL上,如果頁面可以被緩存或者其他人可以訪問這臺(tái)機(jī)器,就可以從歷史記錄獲得該用戶的賬號(hào)和密碼.
-
HTTP
+關(guān)注
關(guān)注
0文章
537瀏覽量
35349 -
TCP
+關(guān)注
關(guān)注
8文章
1424瀏覽量
83501 -
UDP
+關(guān)注
關(guān)注
0文章
334瀏覽量
35412
發(fā)布評(píng)論請(qǐng)先 登錄
TCP通信協(xié)議-Labview上位機(jī)
了解一下MODBUS通信協(xié)議
TCP和UDP的區(qū)別分析
(WiFi干貨)WiFi模塊的TCP和UDP協(xié)議
如何使用Socket實(shí)現(xiàn)TCP和UDP的原理探索
tcp和udp協(xié)議的異同
通信協(xié)議中的HTTP、TCP、UDP你了解多少(上)
TCP協(xié)議和UDP協(xié)議的區(qū)別
一文搞明白TCP協(xié)議與UDP協(xié)議(上)
一文搞明白TCP協(xié)議與UDP協(xié)議(下)
基于Socket的UDP和TCP編程解析 1
IP地址、端口號(hào)、通信協(xié)議的相關(guān)知識(shí) TCP和UDP通信協(xié)議簡(jiǎn)述
TCP和UDP協(xié)議有什么區(qū)別?如何通過網(wǎng)關(guān)實(shí)現(xiàn)TCP協(xié)議通信?
你了解清楚了嘛-TCP、HTTP、MQTT協(xié)議
通信協(xié)議中的HTTP、TCP、UDP你了解多少(下)
評(píng)論