HTTP協(xié)議的理解

重點:1.超文本傳輸協(xié)議. 2.http請求過程.

1> http協(xié)議: 超文本傳輸協(xié)議(Hypertext Transfer Protocol)

{
    http協(xié)議規(guī)定了客戶端和服務器之間的數(shù)據(jù)傳輸格式.
    http協(xié)議是在網(wǎng)絡開發(fā)中最常用的協(xié)議.不管是移動客戶端還是PC端,訪問網(wǎng)絡資源經(jīng)常使用http協(xié)議.
   
    http優(yōu)點:
   
    <1> 簡單快速:
        http協(xié)議簡單,通信速度很快.
   
    <2> 靈活:
        http協(xié)議允許傳輸任意類型的數(shù)據(jù).
   
    <3> http協(xié)議限制每次連接只處理一個請求,服務器對客戶端的請求作出響應后,馬上斷開連接.這種方式可以節(jié)省傳輸時間. 
}

2> http協(xié)議的使用:

完整的http通信分為兩步:

<1> 請求:客戶端向服務器索要數(shù)據(jù).
{
    http協(xié)議規(guī)定:一個完整的http請求包含'請求行','請求頭','請求體'三個部分;
   
    '請求行':包含了請求方法,請求資源路徑,http協(xié)議版本.
   
    "GET /resources/images/ HTTP/1.1"
   
    '請求頭':包含了對客戶端的環(huán)境描述,客戶端請求的主機地址等信息.
   
    Accept: text/html // 客戶端所能接收的數(shù)據(jù)類型
    Accept-Language: zh-cn // 客戶端的語言環(huán)境
    Accept-Encoding: gzip // 客戶端支持的數(shù)據(jù)壓縮格式
    Host: m.baidu.com // 客戶端想訪問的服務器主機地址
    User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 // 客戶端的類型,客戶端的軟件環(huán)境
  
    '請求體':客戶端發(fā)給服務器的具體數(shù)據(jù),比如文件/圖片等.
}

<2> 響應:服務器返回客戶端想要的數(shù)據(jù).
{
    http協(xié)議規(guī)定:一個完整的http響應包含'狀態(tài)行','響應頭','實體內(nèi)容'三個部分;
   
    '狀態(tài)行':包含了http協(xié)議版本,狀態(tài)碼,狀態(tài)英文名稱.
   
    "HTTP/1.1 200 OK"
   
    '響應頭':包含了對服務器的描述,對返回數(shù)據(jù)的描述.

    Content-Encoding: gzip // 服務器支持的數(shù)據(jù)壓縮格式
    Content-Length:  1528 // 返回數(shù)據(jù)的長度
    Content-Type:  application/xhtml+xml;charset=utf-8 // 返回數(shù)據(jù)的類型
    Date: Mon, 15 Jun 2015 09:06:46 GMT // 響應的時間
    Server: apache  // 服務器類型
   
    '實體內(nèi)容':服務器返回給客戶端的具體數(shù)據(jù)(圖片/html/文件...).
}

3> 發(fā)送http請求:
{
    在iOS開發(fā)中,發(fā)送http請求的方案有很多,常見的有如下幾種:
    <1> 蘋果原生:
    {
        * NSURLConnection:用法簡單,古老經(jīng)典的一種方案.
   
        * NSURLSession:iOS7以后推出的技術,功能比NSURLConnection更加強大.
   
        * CFNetWork:NSURL 的底層,純C語言,一般不用.
    }
   
    <2> 第三方框架:
    {
        * ASIHttpRequest:http終結者,功能很強大,可惜作者已停止更新.
       
        * AFNetWorking:簡單易用,提供了基本夠用的常用功能,維護和使用者多.
       
        * MKNetWorkKit:簡單易用,產(chǎn)自印度,維護和使用者少.
    }
   
    在開發(fā)中,一般使用第三方框架.
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容