• 【转】HTTPS比HTTP慢的原因


    HTTPS比HTTP慢的原因

    原文地址:https://blog.csdn.net/new03/article/details/84826143

    HTTPs链接比不加密的HTTP链接慢很多。

    HTTPs链接和HTTP链接都建立在TCP协议之上。HTTP链接比较单纯,使用三个握手数据包建立连接之后,就可以发送内容数据了。

    客户端首先发送SYN数据包,然后服务器发送SYN+ACK数据包,最后客户端发送ACK数据包,接下来就可以发送内容了。这三个数据包的发送过程,叫做TCP握手。

    再来看HTTPs链接,它也采用TCP协议发送数据,所以它也需要上面的这三步握手过程。而且,在这三步结束以后,它还有一个SSL握手。

    HTTP耗时 = TCP握手
    HTTPs耗时 = TCP握手 + SSL握手
     所以,HTTPs肯定比HTTP耗时,这就叫SSL延迟。

    命令行工具curl有一个w参数,可以用来测量TCP握手和SSL握手的具体耗时,以访问支付宝为例。

    $ curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}
    " -so /dev/null https://www.alipay.com

    TCP handshake: 0.022, SSL handshake: 0.064

    curl -o /dev/null -s -w "time_connect: %{time_connect}
    time_starttransfer: %{time_starttransfer}
    time_nslookup:%{time_namelookup}
    time_total: %{time_total}
    " "https://api.weixin.qq.com"
    

     上面命令中的w参数表示指定输出格式,timeconnect变量表示TCP握手的耗时,timeappconnect变量表示SSL握手的耗时,s参数和o参数用来关闭标准输出。

    从运行结果可以看到,SSL握手的耗时(64毫秒)大概是TCP握手(22毫秒)的三倍

    结果:

    time_connect: 0.154
    time_starttransfer: 0.243
    time_nslookup:0.150
    time_total: 0.243

     说明: 以上显示网络连接时间为0.154秒(其中DNS解析为0.150秒),总体请求0.243秒。DNS解析出现故障的概率在正式环境中比较高,所以在诊断时候千万别漏了time_namelookup这个参数。

    也就是说,在建立连接的阶段,HTTPs链接比HTTP链接要长3倍的时间,具体数字取决于CPU的快慢。

    CURL -w 参数详解

    https://blog.csdn.net/weifangan/article/details/80741981

  • 相关阅读:
    s3c2440裸机-内存控制器(三-3、norflash编程之uboot中操作norflash)
    s3c2440裸机-内存控制器(三-2、norflash编程之适配访问时序)
    s3c2440裸机-异常中断(五. irq之定时器中断)
    s3c2440裸机-异常中断(四. irq之外部中断)
    s3c2440裸机-异常中断(三. swi软中断)
    s3c2440裸机-异常中断(二. und未定义指令异常)
    s3c2440裸机-异常中断(一. 异常、中断的原理与流程)
    s3c2440裸机-代码重定位、清bss的优化和位置无关码
    buildroot教程
    软件项目的目录结构
  • 原文地址:https://www.cnblogs.com/monogem/p/13067655.html
Copyright © 2020-2023  润新知