<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

iOS中HTTP傳輸協議

大?。?/span>0.3 MB 人氣: 2017-09-26 需要積分:1

  一、HTTP協議

  HTTP本質上是一種協議,全稱是Hypertext Transfer Protocol,即超文本傳輸協議。從名字上可以看出該協議用于規定客戶端與服務端之間的傳輸規則,所傳輸的內容不局限于文本(其實可以傳輸任意類型的數據)。

  iOS中HTTP傳輸協議

  圖1.1傳輸示意圖.png

  二、HTTP請求與響應的內容

  當我們往服務端發送一條HTTP請求時都發送了哪些東西過去呢?

  先看一個POST請求的示例圖:

  iOS中HTTP傳輸協議

  圖2.1 HTTP_POST請求示例.png

  注:本文使用Paw來模擬發送HTTP請求,使用Charles抓包,Charles選中“Request”以及“Raw”選項就可以看到請求的全部內容

  以上示例圖中其實已經包含了一個HTTP請求所必備的幾大要素:請求行、請求頭(headerField)、請求體(body);同理,響應也有狀態行、響應頭、實體內容。接下來我們逐個展開。

  1、請求行

  請求行包含請求方法(Method)、請求統一資源標識符(URI)、HTTP版本號,如圖2.1第一行所示:

  

  圖2.2 請求行.png

  請求方法就是我們所熟悉的POST、GET、HEAD、PUT等

  URI就是URL中排除掉Host剩下的部分,也就是資源在服務器本地上的路徑

  HTTP版本號,目前主流的版本是1.1(1999年開始采用),最新的版本是2.0(2015年5月發布)。不同版本之間差異下面會再展開

  2、請求頭

  請求頭主要存放對客戶端想給服務端的附加信息,下圖框框的部分就是請求頭:

  iOS中HTTP傳輸協議

  圖2.3 請求頭.png

  HTTP請求在iOS中用NSURLRequest與NSMutableRequest表示;HTTP響應用NSHTTPURLResponse表示。

  Host: 目標服務器的網絡地址

  Accept: 讓服務端知道客戶端所能接收的數據類型,如text/html */*

  Content-Type: body中的數據類型,如application/json; charset=UTF-8

  Accept-Language: 客戶端的語言環境,如zh-cn

  Accept-Encoding: 客戶端支持的數據壓縮格式,如gzip

  User-Agent: 客戶端的軟件環境,我們可以更改該字段為自己客戶端的名字,比如QQ music v1.11,比如瀏覽器Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Maxthon/4.5.2

  Connection: keep-alive,該字段是從HTTP 1.1才開始有的,用來告訴服務端這是一個持久連接,“請服務端不要在發出響應后立即斷開TCP連接”。關于該字段的更多解釋將在后面的HTTP版本簡介中展開。

  Content-Length: body的長度,如果body為空則該字段值為0。該字段一般在POST請求中才會有。

  POST請求的body請求體也有可能是空的,因此POST中Content-Length也有可能為0

  Cookie: 記錄者用戶信息的保存在本地的用戶數據,如果有會被自動附上

  值得一提的是,在iOS中當你發送一個任意請求時,不管你愿不愿意,NSURLRequest都會自動幫你記錄你所訪問的URL上設置的cookie。在iOS中用NSHTTPCookieStorage表示,是一個單例。通過

  NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *cookie in [cookieJar cookies]) { NSLog(@“%@”, cookie); }

  可以獲取目前被自動保存的所有cookie。對cookie的操作感興趣的請移步iOS中http請求使用cookie這篇文章。

?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
      <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
      <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
      <acronym id="s8ci2"></acronym>
      <acronym id="s8ci2"><center id="s8ci2"></center></acronym>