您的位置:首页 > 理论基础 > 计算机网络

iOS 网络 - 02-HTTP协议

2015-05-18 00:22 169 查看
HTTP协议介绍
1、URL

1. 什么是URL

URL的全称是Uniform Resource Locator(统一资源定位符)

2. 功能

通过1个URL,能找到互联网上唯一的1个资源

URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL

3. 格式

URL的基本格式=协议://主机地址/路径
http:// ios.itcast.cn/ ios/images/content_25.jpg
http:// 202.108.22.5/ img/bdlogo.gif

协议:不同的协议,代表着不同的资源查询方法、资源传输方式

主机地址:存放资源的主机的 IP 地址(域名)

路径:资源在主机中得具体位置

4. URL中常见的协议

1. HTTP

超文本传输协议,访问的事远程的网络资源,格式是 http:// (例如: http://ask.csdn.net/)
http协议是在网络开发中最常用的协议

2. file

访问的事本地计算机上得资源,格式是 file:// (不用添加主机地址,例如: file:///Users/jerry/Desktop/)

3. mailto

访问的事电子邮件地址,格式是 mailto:

4. FTP

访问的是共享主机的文件资源,格式是 ftp://
2、HTTP协议介绍

1. HTTP协议特点

a、简单快速

b、灵活(可传输任意类型的数据)

c、持续链接

http 1.1 之前限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间

http 1.1 不必为每个web对象创建一个新的连接,一个连接可以传送多个对象

2. HTTP的基本通信过程

a、请求:客户端向服务器 索要数据

b、响应:服务器 返回客户端 相应地数据

3. iOS中发生HTTP请求的方案

a、苹果原生

NSURLConnection:使用简单,是一种老得解决方案

NSURLSession:iOS7新出的技术,比 NSURLConnection 强大

CFNetWork:NSURL* 的底层,纯C语言

b、第三方框架

ASIHttpRequest:功能强大,但已停止更新

AFNetworking:使用简单,使用者多

MKNetworkKit:使用简单,使用者少

3、HTTP请求方法

1. 8种请求方法

GETPOST、OPTIONS、JEAD、PUTDELETE、TRACE、CONNECT、PATCH

2. 常用方法

PUT:曾

DELETE:删

POST:改

GET:查

最常用的是 GET 和 POST

参数:就是传递给服务器的具体数据,比如登录时的帐号、密码

3. GET 和 POST 请求

GET 和 POST 的主要区别表现在数据传输上

GET

1. 在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如
http://ww.test.com/login?username=123&pwd=234&type=JSON
2. 由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB

POST

1. 发给服务器的参数全部放在请求体中

2. 理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)

4. GET和POST的选择

1. 如果要传递大量数据,比如文件上传,只能用POST请求

2. GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
3. 如果仅仅是索取数据(数据查询),建议使用GET
4. 如果是增加、修改、删除数据,建议使用POST

4、HTTP通信过程

1. HTTP请求

HTTP协议规定:1个完整的由客户端发给服务器的HTTP请求中包含以下内容

请求行: 包含了请求方法、请求资源路径、HTTP协议版本

GET /MJServer/resources/images/1.jpg HTTP/1.1

请求头: 包含了对客户端的环境描述、客户端请求的主机地址等信息

Host: 192.168.1.105:8080 //
客户端想访问的服务器主机地址

User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X 10.9) Firefox/30.0

// 客户端的类型,客户端的软件环境

Accept: text/html,*/* //
客户端所能接收的数据类型

Accept-Language: zh-cn
// 客户端的语言环境

Accept-Encoding: gzip
// 客户端支持的数据压缩格式

请求体: 客户端发给服务器的具体数据,比如文件数据

2. HTTP响应

客户端向服务器发送请求,服务器应当做出响应,即返回数据给客户端
HTTP协议规定:1个完整的HTTP响应中包含以下内容

状态行: 包含了HTTP协议版本、状态码、状态英文名称

HTTP/1.1 200 OK

响应头: 包含了对服务器的描述、对返回数据的描述

Server:Apache-Coyote/1.1 //
服务器的类型

Content-Type: image/jpeg //
返回数据的类型

Content-Length: 56811 //
返回数据的长度

Date: Mon, 23 Jun2014 12:54:52 GMT //
响应的时间

实体内容: 服务器返回给客户端的具体数据,比如文件数据

3. HTTP通信过程

请求: 请求行、请求头、请求体

响应: 状态行、响应头、实体内容

4. 状态码

200 —— OK —— 请求成功

400 —— Bad request —— 客户端请求的语法错误,服务器无法解析

404 —— Not Found —— 服务器无法根据客户端的请求找到资源

500 —— Internal Server Error —— 服务器内部错误,无法完成请求

(常用的几个状态码。。。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: