IOS网络篇:HTTP的通信过程

来源:互联网 发布:通信网络代维资质 编辑:程序博客网 时间:2024/05/20 07:15

    HTTP通信过程 ---- 请求


具体过程

 


   1. HTTP协议规定:一个完整的由客户端发给服务器的HTTP请求中包含以下内容

 
    A - 请求行:包含了请求方法,请求资源路径,HTTP协议版本
 
    GET /Server/resource/images/1.jpg HTTP/1.1
    
    B - 请求头:包含了对客户端的环境描述、客户端请求的主机IP地址、等信息。如(IPHONE客户端,IPA客户端,MAC客户端)
    
    Host:192.168.1.254:8080 //客户端想访问的主机服务器地址
    
    User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101 Firefox/43.0 //客户端环境类型
    
    Accept: text/html,(缺省) //客户端环境能接收的数据类型

    Accept-Encoding //客户端支持数据的压缩格式
 
    Accept-Language //客户端语言环境
 
    C - 请求体:客户端发给服务器的具体数据,比如文件数据等、
    
    Referer: http://127.0.0.1:8080/Server/

 
    2.总上所述:GET是把所有参数放到URL后面,POST是把所有参数放到请求体里面
 

 HTTP通信过程 ---- 响应

 
 客户端向服务器发送请求,服务器应当做出相应操作,及时返回数据给客户端。
 
 1:HTTP协议规定: 一个完整的HTTP响应包含以下内容
 

 A - 状态行:包含了HTTP协议版本、状态码、状态英文名称

常见错误状态码

    
   
 
 B - 响应头:包含了对服务器的描述、对返回数据的描述
    
    Server: Apache - coyote/1.1     //服务器的类型
    
    Content-Type: image/jpg         //返回的数据类型
    
    Content-Length:56811            //返回数据长度
    
    Data: Mon,23 Jun 2014 12:54:52 CMT //响应时间
 
 C - 实体内容:服务器返回给客户端的具体数据,比如文件数据
    
    开发中真正打交道的其实是实体内容

    
    例:
<span style="font-size:18px;"><span style="font-size:18px;color:#CC0000;">[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {                             // 取出状态码            NSInteger status = ((NSHTTPURLResponse*)response).statusCode;            // 取出响应字符串            NSString* msg = [NSHTTPURLResponse localizedStringForStatusCode:status];            //这里的data才是实体数据,而响应头存在response里            //这些信息一般适用于文件下载时。        }];</span></span>


1 0
原创粉丝点击