美文网首页
http发展史

http发展史

作者: mafa1993 | 来源:发表于2020-05-02 22:36 被阅读0次

##发展

1. 单进程(多线程模式),不安全(多个tab页面间是多个线程,线程间相互访问方便),不流畅(线程阻塞),不稳定(线程崩,进程崩),

2. 多进程

    - 浏览器进程,用户交互,子进程管理,文件存储

    - 渲染进程

    - 网络进程,网络请求

    - GPU进程,GPU加速等

    - 插件进程

3. 未来架构  面向服务的

## http发展

1. http/0.9

    - 只有请求行,返回信息也没有响应头,只返回数据

    - 内容以ASCII字符流来传输

2. http/1.0

    - 增加了请求头和响应头,支持文件类型,压缩,编码类型,语言版本

    - 引入状态码

    - cache机制

    - 增加了UA 用户代理字段

3. http/1.1

    - 增加了tcp持久链接,一个tcp可以传输多个http请求

    - http管线化(多个http请求整批发出,传输过程中不需要等待服务器回应)不成熟,tcp队头阻塞(http请求可以并发的发送了,但是返回要顺序返回,第一个达到的请求要第一个响应,如果第一个请求在服务端阻塞了,那么后续请求会被阻塞)

    - 增加虚拟主机,增加host字段来表示主机

    - 动态生成内容提供了完美支持。chunk transfer(bigpipe),响应头里transfer-encoding:chunked

        + bigpipe就是利用了chunk属性,将html界面分块传回,减少传输的大小,提高FP

    - cookie安全机制

    - 每个域名最多同时维护6个tcp长连接

    - 1.0时,利用keep-alive来实现长连接,1.1中所有都为长连接,除非在头中增加connection:close

    - 非持久化链接时。使用链接是否关闭来判断请求和响应是否结束,持久链接时,可以使用content-length来控制,但是会使得占用内存增加,需要计算所有数据的长度,

        + Content-Length 比实际长度短,会造成内容被截断;如果比实体内容长,会造成 pending 

        + web优化指标TTFB(time to first byte)发出请求到收到响应的第一个字节花费的时间

        +transfer-encoding:chunked 分块编码,每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的 CRLF(\r\n),最后一块的长度为0,没有数据,用来标示传输结束

    - tcp慢启动,因为三次握手,如果是https或增加一个tty

4. http/2.0

    - 多路复用机制

    - 增加了分帧层,进行传输时,会先对数据切分

    - 实现头部压缩

    - [服务器推送](https://www.cnblogs.com/qcloud1001/p/9370493.html)

        + server push,浏览器对资源的解析是串行,解析到的时候才会去请求,获取css js资源,导致资源等待,服务器在发送html时,同时发送

        + 实现方式 http请求头,link:<push.css>; rel=preload; as=style

        + 实现方式,静态link

    - 可以设置请求的优先级

        + 每个资源都获取一个stream ID来标识连接上的资源,并且有三个参数用于定义资源优先级:

        + 1.父级数据流(Parent Stream):这个数据流是一个“依赖”资源或者应该在之后被传递的数据流。有一个所有数据流共享的虚拟root stream 0。

        + 2.权重(Weight):1到256之间的数字,用于标识在多个数据流共享连接时分配给此数据流的带宽量。带宽是相对于所有其他活动的数据流的权重分配的,而不是绝对值。

        + 3.独占位(Exclusive bit):一个标志,表示应该在不与任何其他数据流共享带宽的情况下下载。

    - 队头阻塞

    - 底层使用了一个tcp通道,传输所有请求,如果丢包,会导致所有的请求都重发

5. http/3.0

    - 解决2.0的tcp队头阻塞问题

    - 基于udp的QUIC协议

    - 是想了tcp的流量控制,传输可靠性,TLS加密,多路复用

        + 对称加密,加解密所用的秘钥一致

        + 非对称加密,公钥加密,私钥解密,私钥加密,公钥解密

相关文章

  • HTTP发展史

    Http如何工作:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用...

  • http发展史

    ##发展 1. 单进程(多线程模式),不安全(多个tab页面间是多个线程,线程间相互访问方便),不流畅(线程阻塞)...

  • http发展史

    HTTP 协议可以算是在人们日常生活、工作用得比较多的协议。我们使用浏览器访问网页,就是通过 HTTP 来传递数据...

  • iOS开发之网络通信(2)—— HTTP(S)

    文章目录 一. HTTP发展史二. HTTP简介三. HTTPS简介四. HTTP与HTTPS区别五. 代码部分1...

  • HTTP学习笔记

    1. HTTP发展史 HTTP/0.9 - 单行协议 http 0.9版本很简单,因为请求指令只由单行构成,所以被...

  • 🔝[1/4]我所经历的大数据平台发展史(一):非互联网时代 •

    //我所经历的大数据平台发展史(二):非互//我所经历的大数据平台发展史(二):非互联网时代 • 下篇http:/...

  • CNN各种模型介绍

    1. 参考文献: [1]CNN的发展史.http://www.cnblogs.com/52machinelearn...

  • Tensorflow 入门教程

    Tensorflow 入门教程 http://tensornews.cn/ 深度学习发展史 特征工程 深度学习之激...

  • 第3篇:HTTP发展史

    本系列翻译自:https://developer.mozilla.org/en-US/docs/Web/HTTP ...

  • TCP/HTTP协议

    HTTP 发展史 http1.0中,每请求一个http请求都需要建立一次tcp连接,而tcp的三次握手和四次挥手相...

网友评论

      本文标题:http发展史

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