iOS 重修笔记iOS 开发继续加油iOS技术点

重修笔记之网络编程HTTP、HTTPS请求

2018-03-16  本文已影响28人  iOS_July

一、HTTP、HTTPS

HTTP:超文本传输协议[HyperText Transfer Protocol]
HTTPS:超文本传输安全协议[HyperText Transfer Protocol Secure]

HTTP和HTTPS是最常用的传输协议,针对HTTP请求,iOS提供了很多方法,最常用的是GET和POST方法。

HTTP:

名称 对应
HTTP 应用层
TCP 传输层
IP 网络层
网络接口 数据链路层

HTTPS:

名称 对应
HTTP 应用层
TSL or SSL 安全层
TCP 传输层
IP 网络层
网络接口 数据链路层

简单来说,HTTPS是HTTP的升级版,他们之间的区别是,HTTPS使用的端口为443HTTP使用的端口为80来与TCP/IP进行通信。
SSL使用40位关键字作为RC4流加密算法。HTTPS和SSL支持使用X.509数字认证

二、GET与POST


数据传递:
GET请求会将参数直接暴露在URL中,容易被外界发现。
POST会将参数封装到一个数据体里面,它需要将参数与地址分开。
GET的参数会以特定的格式拼接到URL中去,地址最多255字节。

POST参数不会暴露在URL中,它们被包装成二进制的数据体,
服务器只能通过解包的形式查看,才会响应正确的信息。
缓存:
GET表示获取,即从服务器拿到数据,效率更高,
只要路径相同,拿到的数据资源永远只有一份,所以GET请求能被缓存。

POST表示发送,即向服务器发送数据,也可以获取服务器处理后的结果,效率相对较低。
由于数据体的不同,导致同一个路径访问到的资源可能不同,所以POST请求不会被缓存。
数据大小:
GET请求,并没有明确对请求的数据大小限制,根据浏览器不同,一般限制在2~8KB。

POST请求,它提交的数据比较大,大小由服务器的设置值限制,PHP通常限定为2MB。
参数格式:
参数,就是传递给服务器的具体数据。如登录的账号与密码。
GET请求的URL需要拼接参数,格式:
1. 资源路径末尾添加一个"?",表示追加参数。

2. 每一个变量和值按照"变量名=变量值"[key=value]的方式设定,
中间不能饱含空格或者中文,如需包含,则添加百分号进行转义。

3. 多个参数之间需用"&"连接。
如:http://www.baidu.com/login?username=1111&pwd=111
对于POST,参数被包装成二进制的数据体,格式与GET基本一致,只是不包含"?"。
上一篇下一篇

猜你喜欢

热点阅读