URL(全称:Uniform Resource Locator 统一资源定位符)
通过一个URL,能找到互联网上唯一的一个资源
URL就是资源的地址、位置,互联网上的每一个资源都有自己唯一的URL
URL的基本格式:协议(http)://主机地址/路径 (例如:http://www.58.com/img/logo.png)
//协议:不同的协议,代表着不同的资源查找方式,资源传输方式
//主机地址:存放资源的主机(服务器)的IP地址(域名)
//路径:资源在主机(服务器)中的具体位置
URL中常见的协议:
HTTP(超文本传输协议):访问的是远程的网络资源,格式是http:// (最常用)
file:访问的是本地计算机上的资源,格式是file://(不用加主机地址)
mailto: 访问的是电子邮件的地址,格式是mailto:
FTP:访问的是共享主机的文件资源,格式是ftp://
HTTP:
http协议简单,服务器程序规模小,因而通信速度很快,允许传输各种各样的数据
http0.9和1.0版本属于非持续连接,限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间,而现在则使用1.1版本,属于持续连接。
发送HTTP请求的方法:GET / POST (最常用)
GET:
在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,例如:
http://www.test.com/login?username=123&pwd=234&type=JSON
由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
POST:
发给服务器的参数全部放在请求体中
理论上,post请求的数据量是没有限制的(具体还要看服务器的处理能力)
GET和POST的选择:
如果要传递大量数据,比如文件上传,只能用post请求
get的安全性比较差,包含机密或敏感信息,建议post请求
如果仅仅是索取数据(数据查询),建议用get
如果是增加数据,修改,删除数据,建议用post
GET和POST区别:
1. get 是从服务器上获取数据,post是向服务器传送数据
2. get是把参数数据队列加到提交表单的ACTION属性所🈯️的URL中,值和表单内各个字段--对应,在URL中可以看到,post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制,但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高,但是执行效率却比post方法好。
建议:
1. get方式的安全性较post方式要差些,包含机密信息的话,建议用post数据提交方式
2. 在做数据查询时,建议用get方式,而在数据添加,修改或删除时,建议用post方式
iOS中发送HTTP请求的方案:
苹果自带:
NSURLConnection:用法简单,最古老最直接最经典的一种方案(坑比较多)
NSURLSession:功能比NSURLConnection更强大,苹果目前比较推荐使用这种技术
CFNetWork:NSURL的底层,纯C语言
第三方框架:
ASIHttpRequest:外号“HTTP终结者”,功能极其强大,可惜早已停止更新
AFNetWorking:简单易用,提供了基本够用常用的功能