okHttp3 Protocol

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiey94/article/details/83154749

okHttp3 Protocol

public enum Protocol {

  HTTP_1_0("http/1.0"),

  HTTP_1_1("http/1.1"),

  SPDY_3("spdy/3.1"),

  HTTP_2("h2"),

  H2_PRIOR_KNOWLEDGE("h2_prior_knowledge"),

  QUIC("quic");

  private final String protocol;

  Protocol(String protocol) {
    this.protocol = protocol;
  }

  public static Protocol get(String protocol) throws IOException {
    if (protocol.equals(HTTP_1_0.protocol)) return HTTP_1_0;
    if (protocol.equals(HTTP_1_1.protocol)) return HTTP_1_1;
    if (protocol.equals(H2_PRIOR_KNOWLEDGE.protocol)) return H2_PRIOR_KNOWLEDGE;
    if (protocol.equals(HTTP_2.protocol)) return HTTP_2;
    if (protocol.equals(SPDY_3.protocol)) return SPDY_3;
    if (protocol.equals(QUIC.protocol)) return QUIC;
    throw new IOException("Unexpected protocol: " + protocol);
  }

  @Override public String toString() {
    return protocol;
  }
}

变量/方法 解释
Protocol(String protocol) 构造一个协议
public static Protocol get(String protocol) 获取协议
public String toString() 打印协议
HTTP_1_0(“http/1.0”) http1.0协议
HTTP_1_1(“http/1.1”) http1.1协议
SPDY_3(“spdy/3.1”)
HTTP_2(“h2”) http2协议
H2_PRIOR_KNOWLEDGE(“h2_prior_knowledge”) 这个暂时不知道是什么协议
QUIC(“quic”) Quic协议,基于UDP
private final String protocol

请求协议;简单的看,这就是一个枚举类,定义了几个枚举常量;然后一个构造和get,最后是一个toString;然后就没了;
构造只是传入了这个类型的枚举,get里面也简单,一个个的比对,然后返回;

spdy

第七篇:SPDY

SPDY概念及背景:
  SPDY 是 Google 开发的基于传输控制协议(TCP) 的应用层协议 ,开发组正在推动SPDY 成为正式标准(现为互联网草案)。SPDY协议旨在通过压缩、多路复用和优先级来缩短网页的加载时间和提高安全性。(SPDY是 Speedy的昵音,意思是更快)。
  为什么需要SPDY?SPDY协议只是在性能上对 HTTP做了很大的优化,其核心思想是尽量减少连接个数,而对于 HTTP的语义并没有做太大的修改。具体来说是,SPDY使用了 HTTP的方法和页眉,但是删除了一些头并重写了 HTTP中管理连接和数据转移格式的部分,所以基本上是兼容 HTTP的。
  Google 在 SPDY 白皮书里表示要向协议栈下面渗透并替换掉传输层协议(TCP),但是因为这样无论是部署起来还是实现起来暂时相当困难,因此Google 准备先对应用层协议HTTP 进行改进,先在SSL 之上增加一个会话层来实现SPDY 协议,而HTTP 的GET 和 POST 消息格式保持不变,即现有的所有服务端应用均不用做任何修改。因此在目前,SPDY的目的是为了加强 HTTP,是对HTTP 一个更好的实现和支持。至于未来SPDY 得到广泛应用后会不会演一出狸猫换太子,替换掉HTTP 并彻底颠覆整个Internet 就是Google 的事情了。
  距离万维网之父蒂姆·伯纳斯-李发明并推动HTTP 成为如今互联网最流行的协议已经过去十几年了(现用HTTP 1.1 规范也停滞了13 年了),随着现在WEB 技术的飞速发展尤其是HTML5 的不断演进,包括WebSockets 协议的出现以及当前网络环境的改变、传输内容的变化,当初的HTTP 规范已经逐渐无法满足人们的需要了,HTTP需要进一步发展,因此 HTTPbis工作组已经被组建并被授权考虑 HTTP 2.0,希望能解决掉目前 HTTP所带来的诸多限制。而 SPDY正是 Google在 HTTP即将从 1.1跨越到 2.0之际推出的试图成为下一代互联网通信的协议,长期以来一直被认为是 HTTP 2.0唯一可行选择。


SPDY相比HTTP有如下优点:
1. SPDY多路复用,请求优化;而HTTP单路连接,请求低效
2. SPDY支持服务器推送技术;而HTTP只允许由客户端主动发起请求
3. SPDY压缩了HTTP头信息,节省了传输数据的带宽流量;而HTTP头冗余,同一个会话会反复送头信息
4. SPDY强制使用SSL传输协议,全部请求SSL加密后,信息传输更安全
谷歌表示,引入SPDY协议后,在实验室测试中页面加载速度比原先快64%。


支持SPDY协议的浏览器:
· Google Chrome 19+和Chromium 19+
· Mozilla Firefox 11+,从13开始默认支持
· Opera 12.10+
· Internet Explorer 11+

参考:

第七篇:SPDY
SPDY协议 - v3
SPDY Protocol - Draft 3
Quic浅析
DUIC


猜你喜欢

转载自blog.csdn.net/xiey94/article/details/83154749