iOS|iOS 网络请求通信TCP,HTTPS
网络请求通信TCP,HTTPS 我们向服务器发送请求的操作
- DNS查询-----> DNS(Domain Name System)域名解析系统,计算机之间的通信不认识域名,只能认识IP,所以DNS就是网络请求的第一步,通过域名获取IP
- CDN/边缘服务器解决方案-----> 内容分发网络将延迟最小化
- SSL握手----->SSL握手主要是验证服务器证书,同时共享用于通信的随机密钥。握手相当耗时,应遵循以下最佳实践:
- 最大程度的减少应用发起的连接数
- 请求结束不要关闭HTTPS链接
- 使用域分片
- 请求----->
- 服务器响应 <-----
- 使用多个数据中心,让服务器在地理上分散开来,更贴近用户
- 使用CDN提供静态内容
- 使用接近的边缘服务器来提供动态内容
- 避免使用多个域名
- 不要为每个操作单元都进行一次请求,使用批量请求。
- 使用持续的HTTP链接,它们有助于最大限度的减少TCP和SSL握手的消耗
- 在任何可以的情况下都是用HTTP/2
- 是用HTTP缓存头设置正确的缓存级别
- 是用数据压缩
- 选择正确的数据格式:例如JSON
- HTTP:应用层
- TSL/SSL:安全层
- TCP:传输层
- IP:网络层
- 网络接口:数据链路层
- 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
- 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
- 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
- HTPPS协议需要到ca申请证书,一般免费证书很少,需要交费。
- HTTP是超文本传输协议,信息是明文传输,HTPPS 则是具有安全性的ssl加密传输协议。
- HTTP和HTPPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
URL:统一资源定位符石资源标识符最常见的形式,URL描述了一台特定服务器上某资源的特定位置
URN:统一资源名作为特定内容的唯一名称使用的,与目前的资源所在地无关。通过URN还可以用同一个名字通过多种网络访问协议来访问资源
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 猎杀IP
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 自媒体形势分析
- 数学大作战
- 2018.03.18
- 星期天的下午茶(一)
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会