一、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
使用的端口为443
,HTTP
使用的端口为80
来与TCP/IP进行通信。
SSL使用40位关键字
作为RC4流加密算法
。HTTPS和SSL支持使用X.509数字认证
。
二、GET与POST
-
GET方法:向指定的资源
发出请求
,发送的信息显示的跟在URL后面[不安全的]
。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基本一致,只是不包含"?"。
网友评论