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你应该知道的一些事

      

  • 相关阅读:
    ExecuteScalar requires the command to have a transaction when the connection assigned to the command is in a pending
    如何从vss中分离程序
    String or binary data would be truncated
    the pop3 service failed to retrieve authentication type and cannot continue
    The POP3 service failed to start because
    IIS Error he system cannot find the file specified _找不到页面
    pku2575Jolly Jumpers
    pku2940Wine Trading in Gergovia
    pku3219二项式系数
    pku1029false coin
  • 原文地址:https://www.cnblogs.com/wx1993/p/9072500.html
Copyright © 2011-2022 走看看