iOS学习笔记-144.网络04——NSURLConnection01_相关基础
来源:互联网 发布:绝地求生罗技g502编程 编辑:程序博客网 时间:2024/06/05 16:54
- 网络04NSURLConnection01_基础
- 一什么是URL
- 二URL中常见的协议
- 三HTTP协议
- 1 HTTP通信过程 - 请求
- 2 HTTP通信过程 - 响应
- 四iOS中发送HTTP请求的方案
- 1 苹果原生自带
- 2 第三方框架
网络04——NSURLConnection01_基础
一、什么是URL
URL的全称是Uniform Resource Locator(统一资源定位符)。
通过1个URL,能找到互联网上唯一的1个资源。
URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL
URL的基本格式 = 协议://主机地址/路径
http:// 127.0.0.1:8080 /qwmapi/login
协议:不同的协议,代表着不同的资源查找方式、资源传输方式
主机地址:存放资源的主机(服务器)的IP地址(域名)
路径:资源在主机(服务器)中的具体位置
二、URL中常见的协议
HTTP
超文本传输协议,访问的是远程的网络资源,格式是http://
http协议是在网络开发中最常用的协议
file
访问的是本地计算机上的资源,格式是file://(不用加主机地址)
mailto
访问的是电子邮件地址,格式是mailto:
FTP
访问的是共享主机的文件资源,格式是ftp://
三、HTTP协议
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。
3.1 HTTP通信过程 - 请求
HTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容
请求头:包含了对客户端的环境描述、客户端请求信息等
GET /minion.png HTTP/1.1 // 包含了请求方法、请求资源路径、HTTP协议版本Host: 120.25.226.186:32812 // 客户端想访问的服务器主机地址User-Agent: Mozilla/5.0 // 客户端的类型,客户端的软件环境Accept: text/html, */* // 客户端所能接收的数据类型Accept-Language: zh-cn // 客户端的语言环境Accept-Encoding: gzip // 客户端支持的数据压缩格式
请求体:客户端发给服务器的具体数据,比如文件数据(POST请求才会有)
3.2 HTTP通信过程 - 响应
客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
HTTP协议规定:1个完整的HTTP响应中包含以下内容
响应头:包含了对服务器的描述、对返回数据的描述
HTTP/1.1 200 OK // 包含了HTTP协议版本、状态码、状态英文名称Server: Apache-Coyote/1.1 // 服务器的类型Content-Type: image/jpeg // 返回数据的类型Content-Length: 56811 // 返回数据的长度Date: Mon, 23 Jun 2014 12:54:52 GMT // 响应的时间
响应体:服务器返回给客户端的具体数据,比如文件数据
具体请看
javaweb学习总结(四)——Http协议
四、iOS中发送HTTP请求的方案
在iOS中,常见的发送HTTP请求的方案有
4.1 苹果原生(自带)
NSURLConnection:用法简单,最古老最经典最直接的一种方案【坑比较多】
NSURLSession:功能比NSURLConnection更加强大,苹果目前比较推荐使用这种技术【2013推出,iOS7开始出的技术】
CFNetwork:NSURL*的底层,纯C语言
4.2 第三方框架
ASIHttpRequest:外号“HTTP终结者”,功能极其强大,可惜早已停止更新
AFNetworking:简单易用,提供了基本够用的常用功能,维护和使用者多
MKNetworkKit:简单易用,产自三哥的故乡印度,维护和使用者少
建议
为了提高开发效率,企业开发用的基本是第三方框架
- iOS学习笔记-144.网络04——NSURLConnection01_相关基础
- iOS基础:网络相关
- iOS学习笔记-145.网络05——NSURLConnection02_使用相关
- iOS学习笔记-135.RunLoop03——Runloop相关类1_基础
- 网络学习笔记—计算机网络基础
- iOS学习笔记07—网络编程
- Unix网络编程基础学习笔记一(地址结构相关)
- iOS学习笔记-105.多线程04——CGD基础
- 网络基础学习笔记
- 网络基础学习笔记
- 网络基础学习笔记
- java基础学习笔记——网络编程
- java基础学习笔记——网络UDP/聊天
- java基础学习笔记——网络TCP/Client&Server
- 学习笔记——网络基础(一)
- iOS学习笔记-146.网络06——NSURLConnection03_使用
- 网络基础——相关面试考点
- iOS学习笔记(七)——UI基础UIButton
- XYZZY HDU1317
- HDU 2108 Shape of HDU(凸or凹多边形判定)
- charles的使用
- HibernateUtil
- Spring boot Redis 乱码
- iOS学习笔记-144.网络04——NSURLConnection01_相关基础
- 单例模式struts2连接数据库
- 'range' object doesn't support item deletion
- 微信-App支付 java服务器端
- 关于注解
- HDU 3549 Flow Problem(网络流之最大流模板题)
- logistic回归改进
- 从内存中加载并运行exe(两种方法)
- android 唯一uuid(Token)