get 和post 的主要区别体现在数据传递上,
get:在请求的URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开。由于服务器和浏览器对URL的长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1kb.
post:发送服务器的参数全部放在请求体中,理论上,post传递的参数是没有限制的。
post和get 的选择。
1.如果要传递大量数据,比如文件上传,用post
2.get 的安全性比post的差,如果包含机密敏感信息,用post
3.如果仅仅是索取数据,建议使用get
4.如果是增加删除修改数据,建议用post
get请求是没有请求体的。
一个完整的http请求包含响应头和响应体
响应头:包含了对服务器的描述,对返回数据的描述。
server :服务器的类型
Content-Type:返回数据的类型
Content-Length:返回数据的长度
Date:响应的时间
响应体:服务器返回给客户端的具体数据。比如文件的数据。
常见的响应状态码:
200:请求成功
400:客户端请求的语法错误,服务器无法解析
404:服务器无法根据客户端的请求找到资源
500:服务器内部错误,无法完成请求。
iOS中发送http请求的方案
1.苹果原声的
a.NSURLConnection:用法简单,最古老经典的。
b.NSURLSession:ios7新出,苹果推荐
c.CFNetwork: NSURL*的底层,纯c语言
2.第三方框架
a.ASIHttpRequest:已停止更新。
b.AFNetworking:简单易用。
c.MKNetworkKit:简单易用,使用和维护者少
a.NSURLConnection的使用
常用类:
1. NSURL :请求地址
2.NSURLRequest:一个NSURLRequest对象就代表一个请求,它包含的信息有
a.一个NSURL对象
b.请求方法,请求头,请求体
c.q请求超时....
3.NSMunableURLRequest:NSURLRequest的子类
4.NSURLConnection
负责发送请求,建立客户端和服务器的连接
发送数据给服务器,并收集来自服务器的响应数据。
5.NSURLConnection的使用步骤
a.创建一个NSURL对象,设置请求路径
b.根据传入的NSURL创建一个NSURLRequest请求对象,设置请求头和请求头。
c.使用NSURLConnection发送请求
另外,需要注意的是,URL不能有中文,需要做转码处理。n