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:简单易用,产自三哥的故乡印度,维护和使用者少

建议

为了提高开发效率,企业开发用的基本是第三方框架