美文网首页
iOS 网络请求通信TCP,HTTPS

iOS 网络请求通信TCP,HTTPS

作者: iOS小童 | 来源:发表于2019-05-22 17:17 被阅读0次

    网络请求通信TCP,HTTPS

    我们向服务器发送请求的操作

    1. DNS查询-----> DNS(Domain Name System)域名解析系统,计算机之间的通信不认识域名,只能认识IP,所以DNS就是网络请求的第一步,通过域名获取IP
    2. CDN/边缘服务器解决方案-----> 内容分发网络将延迟最小化
    3. SSL握手----->SSL握手主要是验证服务器证书,同时共享用于通信的随机密钥。握手相当耗时,应遵循以下最佳实践:
    • 最大程度的减少应用发起的连接数
    • 请求结束不要关闭HTTPS链接
    • 使用域分片
    1. 请求----->
    2. 服务器响应 <-----

    服务器优化

    1. 使用多个数据中心,让服务器在地理上分散开来,更贴近用户
    2. 使用CDN提供静态内容
    3. 使用接近的边缘服务器来提供动态内容
    4. 避免使用多个域名

    请求优化

    1. 不要为每个操作单元都进行一次请求,使用批量请求。
    2. 使用持续的HTTP链接,它们有助于最大限度的减少TCP和SSL握手的消耗
    3. 在任何可以的情况下都是用HTTP/2
    4. 是用HTTP缓存头设置正确的缓存级别

    数据格式优化

    1. 是用数据压缩
    2. 选择正确的数据格式:例如JSON

    HTTPS所属层:

    • HTTP:应用层
    • TSL/SSL:安全层
    • TCP:传输层
    • IP:网络层
    • 网络接口:数据链路层

    TCP三次握手

    • 第一次握手:建立连接时,客户端发送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连接成功)状态,完成三次握手。

    HTTP和HTPPS的区别

    1. HTPPS协议需要到ca申请证书,一般免费证书很少,需要交费。
    2. HTTP是超文本传输协议,信息是明文传输,HTPPS 则是具有安全性的ssl加密传输协议。
    3. HTTP和HTPPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4. HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

    URI:服务器资源名被称为统一资源标识符:(Uniform Resource Identifier,URI)。有两种形式:URL和URN。

    URL:统一资源定位符石资源标识符最常见的形式,URL描述了一台特定服务器上某资源的特定位置

    URN:统一资源名作为特定内容的唯一名称使用的,与目前的资源所在地无关。通过URN还可以用同一个名字通过多种网络访问协议来访问资源

    相关文章

      网友评论

          本文标题:iOS 网络请求通信TCP,HTTPS

          本文链接:https://www.haomeiwen.com/subject/keguzqtx.html