美文网首页
HTTP协议及HTTPS,能否保持长连接等

HTTP协议及HTTPS,能否保持长连接等

作者: 一个人在路上走下去 | 来源:发表于2018-08-06 08:59 被阅读616次

    HTTP协议是客户端最常用到的协议了,HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。HTTPS是以安全为目标的HTTP通道,是HTTP的安全版。 在HTTP下加入SSL层。 HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息。http的连接很简单,是无状态的,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。

    Request和Response的格式:

    // 请求
    GET / HTTP/1.1
    
    Host:xxx.xxxx.com
    
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2016042316 Firefox/3.0.10
    
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    
    Accept-Language: en-us,en;q=0.5
    
    Accept-Encoding: gzip,deflate
    
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    
    Keep-Alive: 300
    
    Connection: keep-alive
    
    If-Modified-Since: Mon, 25 May 2016 03:19:18 GMT
    
    
    //响应
    HTTP/1.1 200 OK
    
    Cache-Control: private, max-age=30
    
    Content-Type: text/html; charset=utf-8
    
    Content-Encoding: gzip
    
    Expires: Mon, 25 May 2016 03:20:33 GMT
    
    Last-Modified: Mon, 25 May 2016 03:20:03 GMT
    
    Vary: Accept-Encoding
    
    Server: Microsoft-IIS/7.0
    
    X-AspNet-Version: 2.0.50727
    
    X-Powered-By: ASP.NET
    
    Date: Mon, 25 May 2016 03:20:02 GMT
    
    Content-Length: 12173
    
    消息体的内容(略)
    

    HTTP/1.1的默认模式使用带流水线的持久连接。这种情况下,HTTP客户每碰到一个引用就立即发出一个请求,因而HTTP客户可以一个接一个紧挨着发出各个引用对象的请求。服务器收到这些请求后,也可以一个接一个紧挨着发出各个对象。如果所有的请求和响应都是紧挨着发送的,那么所有引用到的对象一共只经历1个RTT的延迟(而不是像不带流水线的版本那样,每个引用到的对象都各有1个RTT的延迟)。另外,带流水线的持久连接中服务器空等请求的时间比较少。与非持久连接相比,持久连接(不论是否带流水线)除降低了1个RTT的响应延迟外,缓启动延迟也比较小。其原因在于既然各个对象使用同一个TCP连接,服务器发出第一个对象后就不必再以一开始的缓慢速率发送后续对象。相反,服务器可以按照第一个对象发送完毕时的速率开始发送下一个对象。

    参考书目:《HTTP权威指南》

    相关文章

      网友评论

          本文标题:HTTP协议及HTTPS,能否保持长连接等

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