iOS知识整理-网络

HTTP协议(超文本传输协议)

OSI网络七层协议:
应用层、表示层、会话层 、传输层、网络层 、数据链路层、物理层
HTTP的请求方式:
GET、POST、PUT、DELETE、HEAD、OPTIONS
GET和POST方式的区别:
GET的请求参数一般以?分割拼接到URL后面,POST请求参数在Body里面
GET参数长度限制为2048个字符,POST一般是没限制的
GET请求由于参数裸露在URL中, 是不安全的,POST请求则是相对安全
之所以说是相对安全,是因为,如果POST虽然参数非明文,但如果被抓包,GET和POST一样都是不安全的。(HTTPS该用还是得用)

HTTPS协议

HTTPS和HTTP的区别
HTTPS协议 = HTTP协议 + SSL/TLS协议
SSL的全称是Secure Sockets Layer,即安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。TLS的全称是Transport Layer Security,即安全传输层协议。
即HTTPS是安全的HTTP。
服务器端的公钥和私钥,用来进行非对称加密
客户端生成的随机密钥,用来进行对称加密

三次握手

1782258-ce1ca8a2fe7f9471.png

四次挥手

1782258-1a30be50be14c6b4.png

为什么建立连接只用三次握手,而断开连接却要四次挥手?
服务端的FIN和ACK需要分开发,并不是像三次握手中那样,SYN可以和ACK同步发,所以就需要四次挥手
在四次挥手中,客户端为什么在TIME_WAIT后必须等待2MSL时间呢?
为了保证客户端发送的最后一个ACK报文段能够到达服务端。
~

DNS

因特网上的主机,可以使用主机名和IP地址来标识。主机名是用于人们记忆的,IP地址是方便路由器处理,为了折衷这两种方式,我们需要一种能进行主机名到IP地址转换的目录服务。这就是域名系统(Domain Name System,DNS)的主要任务。
DNS是:
1、一个由分层的DNS服务器实现的分布式数据库
2、一个使得主机能够查询分布式数据库的应用层协议
DNS查询链:
本地DNS服务器-->根DNS服务器-->顶级域DNS服务器-->权威DNS服务器
迭代查询和递归查询
从请求主机到本地DNS服务器的查询是递归,其余查询是迭代的这种方式。
DNS缓存
为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用了缓存技术。有DNS的地方,就有缓存。浏览器、操作系统、本地 DNS服务器、根DNS服务器,它们都会对DNS结果做一定程度的缓存。

Cookie与Session

都是记录客户状态的机制,区别在于:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie相比session不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。而session存储在服务端,可以无限量存储
5、所以:将登录信息等重要信息存放为session;其他信息如果需要保留,可以放在cookie中

你可能感兴趣的:(iOS知识整理-网络)