HTTP
客户端和服务器的语言不一样,怎样才能相互数据传输
- HTTP的协议作用,超文本传输协议,规定客户端和服务器之间的数据传输格式
- 客户端发送请求
- 服务器给出响应
发送HTTP请求的方法
请求参数:传递给服务器的具体数据(账号、密码)
- 最常用的是GET请求和POST请求
GET和POST的对比
- GET和POST的主要区别表现在数据传递上
- GET:在请求URL后面?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如http://localhost/login?username=apple&pwd=123&type=JSON
由于浏览器和服务器的URL的长度有限制,因此在URL后面附带的参数是有限制的,通常不超过1kb - POST:发给服务器的参数全部放在请求体中
选择GET和POST的建议
- 如果要传递大量的数据,比如文件上传,只能用POST
- GET请求的安全性不够,完全的数据都是暴露出来的,如果是含机密和敏感信息
- 如果仅仅是索取数据(数据查询),建议用GET
- 如果用增加、删除、修改数据,建议用POST
iOS中发送HTTP请求的方案
- 苹果原生(自带)
- NSURLConnection:用法简单,是古老经典的最直接的一种方案【坑多】
- NSURLSession:功能比NSURLConnection更加强大,苹果日前比较推荐使用
- CFNetWork:纯C语言
- 第三方框架
- ASIHttpRequest:外号“HTTP终结者”,可是早已经停止更新
- AFNetworking:简单易用,提供了基本够用的常用功能,维护和使用者多
- NKNetworkKit:简答易用,产自印度,维护和使用者少
HTTP的通信过程-请求
- HTTP协议规定:一个完成的由客户端发给服务器的HTTP请求中包含以下内容
- 请求头:包含了对客户端的环境描述、客户端请求信号
- 请求体:客户端发给服务器的具体数据,比如文件数据 POST请求才有
HTTP的通信过程-响应
- 客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
- HTTP协议规定:一个完整的HTTP响应中包含以下内容
- 响应头:包含了对服务器的描述,对返回数据的描述
- 响应体:服务器返回给客户端的具体数据,比如文件数据