>1HTTP协议:超文本传输协议(Hypertext Transfer Protocol)
<1>HTTP协议规定了客户端和服务器之间的数据传输格式;
<2>HTTP协议是在网络开发中最常用的协议.不管是移动客户端还是PC端,访问网络资源最常使用的协议
<3>优点
>1简单快速;
>2灵活:可以传输任意类型的数据;
>3http协议是短连接:服务器一次连接只处理一个请求,节省资源;
>2HTTP协议的使用:
<1>请求:客户端向服务器索要数据,一个请求包含请求行,请求头,请求体三个部分;
"GET /resources/images/ HTTP/1.1"
>1请求行:包含请求方法,资源路径,协议版本.
"Accept: text/html //
客户端所能接收的数据类型
"Accept-Language: zh-cn // 客户端的语言环境
"Accept-Encoding: gzip // 客户端支持的数据压缩格式
"Host: m.baidu.com // 客户端想访问的服务器主机地址
"Accept-Language: zh-cn // 客户端的语言环境
"Accept-Encoding: gzip // 客户端支持的数据压缩格式
"Host: m.baidu.com // 客户端想访问的服务器主机地址
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0 // 客户端的类型,客户端的软件环境
>2请求头:包含对客户端的环境描述
>3请求体:客户端发送给服务器的具体数据,如图片/文件/参数等;
<2>响应:服务器返回客户端想要的数据,一个响应包含”状态行”,”响应头”,”实体内容”三个部分:
"HTTP/1.1 200 OK"
>1状态行包括协议版本,状态码,状态英文名称;
"Content-Encoding: gzip //
服务器支持的数据压缩格式
"Content-Length: 1528 // 返回数据的长度
"Content-Type: application/xhtml+xml;charset=utf-8 // 返回数据的类型
"Date: Mon, 15 Jun 2015 09:06:46 GMT // 响应的时间
"Content-Length: 1528 // 返回数据的长度
"Content-Type: application/xhtml+xml;charset=utf-8 // 返回数据的类型
"Date: Mon, 15 Jun 2015 09:06:46 GMT // 响应的时间
"Server: apache // 服务器类型
>2响应头:对服务器端环境的描述;
>3实体内容:服务器返回给客户端的具体内容,如图片/xml/json;
>3发送HTTP请求:
<1>苹果原生:
>1NSURLConnection:用法简单,在主线程执行;
>2NSURLSession:iOS7以后推出的技术,功能比NSURLConnection更加强大;
>3CFNetwork:NSURL的底层,纯C语言,一般不用;
<2>第三方框架
>1ASIHTTPRequest:功能很强大,可是已经停止更新;
>2AFNetworking:简单易用,提供了基本够用的常见功能,维护和使用者较多;
>3MKNetworkKit:简单易用,产自印度,维护和使用者少;
>4URL中所有字符都是ASCII码,不能出现空格以及中文等特殊符号,如果出现中文,需要添加百分号转译,
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];