首页 > 其他分享 >HTTP学习笔记

HTTP学习笔记

时间:2024-02-02 18:23:40浏览次数:24  
标签:协议 HTTP 1.1 笔记 学习 文档 互联网 1.0

教程:geektime 透视HTTP协议【此教程时间:2019年】

※,01、HTTP的前世今生

HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文(1989年)

http/0.9: 20 世纪 90年代初期的互联网世界非常简陋,计算机处理能力低,这一时期的 HTTP 被定义为 0.9版,结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。蒂姆·伯纳斯 -李最初设想的系统里的文档都是只读的,所以只允许用“GET”动作从服务器上获取 HTML文档,并且在响应请求之后立即关闭连接,功能非常有限

HTTP/1.0: 1996 年,HTTP/1.0版本在 正式发布。HTTP/1.0并不是一个“标准”,只是记录已有实践和模式的一份参考文档,不具有实际的约束力,相当于一个“备忘录”。

HTTP/1.1: 1999 年,HTTP/1.1 发布了 RFC 文档,编号为RFC2616。它是一个“正式的标准”,而不是一份可有可无的“参考文档”。HTTP/1.1主要的变更点有:

  • 增加了 PUT、DELETE 等新的方法;
  • 增加了缓存管理和控制;
  • 明确了连接管理,允许持久连接;
  • 允许响应数据分块(chunked),利于传输大文件;
  • 强制要求 Host 头,让互联网主机托管成为可能

2014年:由于 HTTP/1.1 太过庞大和复杂,所以在 2014年又做了一次修订,原来的一个大文档被拆分成了六份较小的文档,编号为RFC7230-RFC7235,优化了一些细节,但此外没有任何实质性的改动。

HTTP/2: 2015年:HTTP/1.1发布之后,整个互联网世界呈现出了爆发式的增长,度过了十多年的“快乐时光”,更涌现出了Facebook、Twitter、淘宝、京东等互联网新贵。这期间也出现了一些对 HTTP不满的意见,主要就是连接慢,无法跟上迅猛发展的互联网。第二次的“浏览器大战”后(chrome与IE),互联网标准化组织以Google 的SPDY协议为基础开始制定新版本的 HTTP协议,最终在 2015 年发布了HTTP/2,RFC 编号 RFC7540。

HTTP/2的制定充分考虑了现今互联网的现状:宽带、移动、不安全,在高度兼容 HTTP/1.1的同时在性能改善方面做了很大努力,主要的特点有:

  • 二进制协议,不再是纯文本;
  • 可发起多个请求,废弃了 1.1 里的管道;
  • 使用专用算法压缩头部,减少数据传输量;
  • 允许服务器主动向客户端推送数据;
  • 增强了安全性,“事实上”要求加密通信。

虽然 HTTP/2 到今天已经四岁,也衍生出了 gRPC 等新协议,但由于 HTTP/1.1实在是太过经典和强势,目前它的普及率还比较低,大多数网站使用的仍然还是 20 年前的 HTTP/1.1。

HTTP/3: 2018: 在 HTTP/2 还处于草案之时,Google又发明了一个新的协议,叫做QUIC。2018 年,互联网标准化组织 IETF提议将“HTTP over QUIC”更名为“HTTP/3”并获得批准,HTTP/3正式进入了标准化制订阶段。

※,

 

标签:协议,HTTP,1.1,笔记,学习,文档,互联网,1.0
From: https://www.cnblogs.com/everest33Tong/p/18003144

相关文章

  • Python学习笔记05
    3.4String(字符串)字符串特点:用单引号'或双引号"括起来,同时使用反斜杠\转义特殊字符。取字符串中的值:语法格式——变量[头下标:尾下标],左闭右开字符串索引值:Coding从前面索引012345从后面索引-6-5-4-3-2-1字符串输出示例代码str='Coding......
  • vue学习(二) 路由器
    1.路由rounter的创建步骤1.主页面区分导航区、展示区,导航区不同的链接点击,展示区展示不同的组件内容。2.创建路由器,主要是设置路由模式和路由表(路径和组件对应关系)。3.编写不同组件用于展示区不同的展示内容,vue文件。2.一个简单的demo2.1在App.vue中创建导航区和展示区<......
  • 学习AJAX时出现has been blocked by CORS policy: Cross origin requests are only su
    练习js时用到ajax,console报错:AccesstoXMLHttpRequestat‘file:///Users/XXX/Downloads/nav/nav.json’fromorigin‘null’hasbeenblockedbyCORSpolicy:Crossoriginrequestsareonlysupportedforprotocolschemes:http,data,chrome,chrome-extension,chro......
  • Python学习笔记04
    3.3运算符(以下假设变量a=10,变量b=21)【算数运算符】:运算符描述实例+加,两个对象相加a+b输出结果31-减,得到负数或是一个数减去另一个数a-b输出结果-11*乘,两个数相乘或是返回一个被重复若干次的字符串a*b输出结果210/除,x除......
  • Python学习笔记02
    二、基础语法2.1注释单行注释:#多行注释:'''或"""示例输入:#第一个注释#第二个注释'''第三注释第四注释'''"""第五注释第六注释"""print("Hello,World!")输出:Hello,World!2.2行与缩进pyt......
  • Python学习笔记03
    3.2Number(数字)三种数值类型实例:整型(int)浮点型(float)复数(complex)100.03+4j10015.2045.j-786-21.93e+26J080-90.4.53e-7j-049032.3e+183.14j-0x26070.2E-12a+bj↑0x表示16进制↑e和E为科学计数法↑a,b均为浮点型数字类型转......
  • (数据科学学习手札158)基于martin为在线地图快速构建精灵图服务
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,martin作为快速发展中的新一代开源高性能地图服务框架,在之前的两篇文章中,我已为大家分别介绍过使用martin快速发布矢量切片地图服务(https://www.cnblogs.co......
  • 盘点那些硬件+项目学习套件:Hi3861鸿蒙开发板及入门常见问题解答
    华清远见20岁了~过去3年里,华清远见研发中心针对个人开发板业务,打造了多款硬件+项目学习套件,涉及STM32单片机、嵌入式、物联网、人工智能、鸿蒙、ESP32、阿里云IoT等多技术方向。今天我们来盘点一下,比较受欢迎几款“硬件+项目”学习套件,以及一些初学者比较关注的问题。盘点二:Hi3861......
  • Linux运维笔记[14]-搭建内网docker镜像服务
    摘要使用docker-registry搭建内网镜像服务,平替DockerHub.原理简介docker-registry简介[https://juejin.cn/post/7214037206863495205]官方提供了DockerHub网站来作为一个公开的集中仓库,然而,本地访问DockerHub速度往往很慢,并且很多时候我们需要一个本地的私有仓库只供网内......
  • 龙年-2月学习到的新知识
    数据库时间类型字段精度问题DatetimeTimestamp保存毫秒防止精度丢失数据库字段为DATETIME(3)时可以保存毫秒。当数据库为MariaDb10.x.x,则需要jdbc驱动需更换为mariadbconnnector,或者Mariadb相应Mysql数据库版本高于5.6.4则无需更改。DATETIME(3)对应的Java类型,......