Http協議頭

來源:互聯網
上載者:User

標籤:height   gen   技術分享   odi   bsp   connect   put   source   zh-cn   

#########

#概覽

#########  

 

超文字傳輸通訊協定 (HTTP)(Http: Hyper Text Transfer Protocol) :用於發送WWW方式的資料。採用TCP/IP協議,是一個無狀態協議。採用了請求/響應模型。

  

#########

#Http請求 Request

#########  

  用戶端向伺服器發送一個請求,看圖:

  HTTp請求包括:

  1) 要求方法、URI(uniform Resource identity 統一資源識別項question/23133/、 URL:統一資源定位器號www.baidu.com/question/23133/)協議版本 

  2) 要求標頭

  3) \n(空行

  4) 請求資料

Get請求例子,使用Charles抓取的request:GET /562f25980001b1b106000338.jpg HTTP/1.1Host    img.mukewang.comUser-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept    image/webp,image/*,*/*;q=0.8Referer    http://www.imooc.com/Accept-Encoding    gzip, deflate, sdchAccept-Language    zh-CN,zh;q=0.8

 第一部分:GET說明請求類型為GET,[/562f25980001b1b106000338.jpg]為要訪問的資源,該行的最後一部分說明使用的是HTTP1.1版本。


 第二部分:要求標頭部,緊接著請求行(即第一行)之後的部分,用來說明伺服器要使用的附加資訊


從第二行起為要求標頭部,HOST將指出請求的目的地.User-Agent,伺服器端和用戶端指令碼都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該資訊由你的瀏覽器來定義,並且在每個請求中自動發送等等


 第三部分:空行,要求標頭部後面的空行是必須的


 第四部分:請求資料也叫主體,可以添加任意的其他資料。


這個例子的請求資料為空白。

 

 

POST請求例子,使用Charles抓取的request:POST / HTTP1.1Host:www.wrox.comUser-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Content-Type:application/x-www-form-urlencodedContent-Length:40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley第一部分:請求行,第一行明了是post請求,以及http1.1版本。第二部分:要求標頭部,第二行至第六行。第三部分:空行,第七行的空行。第四部分:請求資料,第八行。

 

#########

#Http響應 Response

#########  

Http響應包括:也由四個部分組成,分別是:狀態行、訊息前序、空行和響應本文。

 

#########

#Http 要求方法 & Http1.1 & Http 1.0

#########

根據HTTP標準,HTTP請求可以使用多種要求方法。
HTTP1.0定義了三種要求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種要求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET     請求指定的頁面資訊,並返回實體主體。HEAD     類似於get請求,只不過返回的響應中沒有具體的內容,用於擷取前序POST     向指定資源提交資料進行處理請求(例如提交表單或者上傳檔案)。資料被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。PUT     從用戶端向伺服器傳送的資料取代指定的文檔的內容。DELETE      請求伺服器刪除指定的頁面。CONNECT     HTTP/1.1協議中預留給能夠將串連改為管道方式的Proxy 伺服器。OPTIONS     允許用戶端查看伺服器的效能。TRACE     回顯伺服器收到的請求,主要用於測試或診斷。

 

GET和POST的區別

    1. GET提交的資料會放在URL之後,以?分割URL和傳輸資料,參數之間以&相連,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的資料放在HTTP包的Body中.

    2. GET提交的資料大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的資料沒有限制.

    3. GET方式需要使用Request.QueryString來取得變數的值,而POST方式通過Request.Form來擷取變數的值。

    4. GET方式提交資料,會帶來安全問題,比如一個登入頁面,通過GET方式提交資料時,使用者名稱和密碼將出現在URL上,如果頁面可以被緩衝或者其他人可以訪問這台機器,就可以從記錄獲得該使用者的帳號和密碼.

參考:http://www.cnblogs.com/ranyonsue/p/5984001.html

 

Http協議頭

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.