zoukankan      html  css  js  c++  java
  • HTTP/HTTPS 学习笔记

    超文本传输协议(HyperText Transfer Protocol) 伴随着计算机网络和浏览器的诞生,HTTP1.0也随之而来,处于计算机网络中的应用层,HTTP是建立在TCP协议之上的。

    HTTP的基本优化

    影响一个HTTP网络请求的因素主要有两个:带宽和延迟。

    • 带宽:单位时间能通过链路的数据量。通常以bps来表示,即每秒可传输之位数。
    • 延迟:
    1. 浏览器阻塞:浏览器对于同一个域名同时只能有 4 个连接,超过浏览器最大连接数限制,后续请求就会被阻塞。
    2. DNS 查询:将域名解析为 IP 的过程,可以利用DNS缓存结果来减少时间。
    3. 建立连接:HTTP 是基于 TCP 协议的,浏览器最快也要在第三次握手时才能捎带 HTTP 请求报文,达到真正的建立连接,但是这些连接无法复用会导致每次请求都经历三次握手和慢启动。

    HTTP 存在的问题

    1. HTTP在传输数据时,每次都需要重新建立连接,增加了大量的延迟时间,特别是在移动端更为突出。
    2. 传输数据时所有内容都是明文,客户端和服务器端都无法验证对方的身份,一定程度上无法保证数据的安全性。
    3. header里携带的内容过大,增加了传输的成本,并且每次请求header基本不怎么变化,尤其在移动端增加用户流量。
    4. 虽然HTTP支持keep-alive 来弥补多次创建连接产生的延迟,但是keep-alive使用多了同样会给服务端带来大量的性能压力,并且对于单个文件被不断请求的服务(例如图片存放网站),keep-alive可能会极大的影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

    HTTPS

    网景在1994年创建了HTTPS,并应用在网景导航者浏览器中。HTTPS是与SSL一起使用的;在SSL逐渐演变到TLS时(其实两个是一个东西,只是名字不同而已)
    简单来说,HTTPS就是安全版的HTTP,chrome和firefox都大力支持网站使用HTTPS,苹果也在ios 10系统中强制app使用HTTPS来传输数据。

    * SSL(Secure Sockets Layers): 安全套接层
    * TLS(Transport Layer Security): 传输层安全
    为网络通信提供安全及数据完整性的一种安全协议。两者在传输层对网络连接进行加密

     

    HTTPS 和 HTTP 的区别

    1. HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。
    2. HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。
    3. HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4. HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

    img

    SPDY

    Google开发的基于TCP的应用层协议,用以最小化网络延迟,提升网络速度,优化用户的网络使用体验。SPDY并不是一种用于替代HTTP的协议,而是对HTTP协议的增强。新协议的功能包括数据流的多路复用、请求优先级以及HTTP报头压缩。谷歌表示,引入SPDY协议后,在实验室测试中页面加载速度比原先快64%。

    SPDY可以说是综合了HTTPS和HTTP两者有点于一体的传输协议,解决的问题如下:

    1. 通过多路复用降低延迟,单个TCP连接支持并发的HTTP请求。
    2. 请求优先级。SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应,防止在网络通道被非关键资源堵塞时,高优先级的请求被挂起。
    3. 压缩 header 报头和去掉不必要的头部来减少当前HTTP使用的带宽。
    4. 基于HTTPS的加密协议传输,强制使用SSL,让SSL协议在现存的网络设施下有更好的安全性和兼容性。
    5. 服务端推送。允许服务器在需要时发起对客户端的连接并推送数据。

    spdy 

              SPDY构成图

     

    HTTP1.1 特性

    1. 默认持久连接节省通信量,只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求
    2. 管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应
    3. 断点续传原理

    HTTP2.0

    HTTP2.0可以说是SPDY的升级版(其实原本也是基于SPDY设计的),但是,HTTP2.0 跟 SPDY 仍有不同的地方,主要是以下两点:

    1. HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS
    2. HTTP2.0 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE

     

    参考:HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

      

  • 相关阅读:
    博客迁移至wordpress--http://i1994898w1.imwork.net/wordpress
    超外差接收机的中频选择
    The Basics of the Doherty Amplifier-Bill Slade [转载]
    闻灾情 忆国殇 山河呜咽 寄哀思
    Simplest Doppler Radar System
    开发人员的奋斗目标
    敏捷开发的推理
    在创业型软件公司的收获
    人才市场的IT职位分析
    MySQL 基础及性能优化工具
  • 原文地址:https://www.cnblogs.com/wx1993/p/9072500.html
Copyright © 2011-2022 走看看