前言

简单整理一些http协议。

正文

20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,它有四个分布在各地的节点,被认为是如今互联网的“始祖”。

然后在 70 年代,基于对 ARPA 网的实践和思考,研究人员发明出了著名的 TCP/IP 协议。由于具有良好的分层结构和稳定的性能,TCP/IP 协议迅速战胜其他竞争对手流行起来,并在 80 年代中期进入了 UNIX 系统内核,促使更多的计算机接入了互联网。

1989 年,任职于欧洲核子研究中心(CERN)的蒂姆·伯纳斯 - 李(Tim Berners-Lee)发表了一篇论文,提出了在互联网上构建超链接文档系统的构想。这篇论文中他确立了三项关键技术。

  1. URI:即统一资源标识符,作为互联网上资源的唯一身份;
  2. HTML:即超文本标记语言,描述超文本文档;
  3. HTTP:即超文本传输协议,用来传输超文本。

然后就到了0.9,0.9还是纯文本、只读、只有get请求。

,经过一系列的草案,HTTP/1.0 版本在 1996 年正式发布。它在多方面增强了 0.9 版,形式上已经和我们现在的 HTTP 差别不大了,例如:

  1. 增加了 HEAD、POST 等新方法;
  2. 增加了响应状态码,标记可能的错误原因;
  3. 引入了协议版本号概念;
  4. 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活;
  5. 传输的数据不再仅限于文本。

于是在“浏览器大战”结束之后的 1999 年,HTTP/1.1 发布了 RFC 文档,编号为 2616,正式确立了延续十余年的传奇。

HTTP/1.1 主要的变更点有:

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

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

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

当然还有http/3, 但是没有必要关心,因为htpp/2 都没有推广,当然可能直接http/3 也是有可能的。

其实http历史,差不多就是知道主要能做些啥,往后的发展是啥,心理有个底就行。

http协议重新整理——————历史[一]的更多相关文章

  1. 如何将网站升级为HTTPS协议(整理)

    如何将网站升级为HTTPS协议(整理) 一.总结 一句话总结: 获取证书(有免费有付费):证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买. 安装证书:证书可以放在/etc ...

  2. HTTP协议笔记整理

    有人说过,精通HTTP协议能赢过95%的前端工程师,所以我毅然的踏上这条路,哈哈哈,接下来把自己的学习笔记整理出来. 我会从比较底层的模型开始: 1.网络的五层模型 2.TCP/IP协议 3.HTTP ...

  3. http协议的发展历史

    在最早的时候,第一个定稿的http协议是http/0.9版本,在这个版本里面,http协议,它的内容,非常非常的简单 只有一个命令,就是GET 对应的就是我们现在经常用到的get请求,post请求,这 ...

  4. http协议知识整理(转)

    HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家指正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...

  5. http协议知识整理

    HTTP 协议 作为web开发人员,了解一些http协议的知识很有必要.本文简单介绍了HTTP协议的知识,若有错误的地方,望大家指正. 1.HTTP协议是什么? http协议是一个应用层的协议.规定了 ...

  6. web系统测试 - 理解网络协议1 - 互联网历史沿革

    1. web1.0,web2.0,web3.0的区别? web1.0:信息的获取者和消费者,信息由网站运营商创建 web2.0:用户创建内容(UGC: user generated content,论 ...

  7. protobuf协议 待整理

    https://blog.51cto.com/wangjichuan/5691192 https://blog.csdn.net/lizhichao410/article/details/126032 ...

  8. Http协议基础及发展历史

    一.网络分层协议 经典五层模型 1.物理层:(电脑的硬件,网卡端口,网线,网线连出去的光缆) 定义物理设备如何传输数据 2.数据链路层 在通信的实体间建立数据链路连接. 两台机器物理上是可以连接在一起 ...

  9. HTTP从入门到入土(2)——HTTP协议发展历史

    HTTP协议的发展历史 HTTP/0.9 0.9版本是第一个定稿的HTTP版本,相对较为简陋.它有以下特点: 只有一个命令GET 没有header等描述数据的信息 服务器发送完毕,就关闭TCP连接 注 ...

  10. HTTP 协议基础及发展历史

    一. 5层网络模型介绍 低三层 物理层:主要作用是定义物理设备如何传输数据. 数据链路层:在通信的实体间建立数据链路连接. 网路层:为数据在结点之间传输创建逻辑链路. 传输层: 想用户提供可靠的端到端 ...

随机推荐

  1. Rust 开发的高性能 Python 包管理工具,可替换 pip、pip-tools 和 virtualenv

    最近,我在 Python 潮流周刊 中分享了一个超级火爆的项目,这还不到一个月,它在 Github 上已经拿下了 8K star 的亮眼成绩,可见其受欢迎程度极高!国内还未见有更多消息,我趁着周末把一 ...

  2. vscode vue 组件定位插件 webpack-code-inspector-plugin -- 强烈推荐 Alt+Shift+鼠标左键

    作用 alt + shift + 鼠标左键 自动跳转 vscode项目的组件代码 项目地址 https://github.com/zh-lx/code-inspector/blob/main/pack ...

  3. Nexus npm 搭建私有仓库 很好很强大 nrm electronjs

    Nexus npm 搭建私有仓库 很好很强大 https://www.jianshu.com/p/e437d8e694a0 主要想到这个包的话比较大 所以要是有个私有仓库 就方便许多 https:// ...

  4. window10-yarn-使用vite创建vue3项目失败-文件夹或目录不正确

    前置条件 window10 本地已经安装nodejs yarn已经通过npm全局安装(npm install -g yarn) 问题 yarn脚手架方式搭建vue3项目失败(command faile ...

  5. 记录--vue组件划分的思考

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 对vue项目来说,组件是构成项目的基本单元,为了方便理解,这里定义两类组件:页面组件,功能组件.为什么需要划分这两类组件是从组件复用来考虑 ...

  6. WPF 图片锯齿解决办法(保证解决!!!)

    无非几个属性统统加上,不能解决我倒立洗头,日五档电风扇 RenderOptions.BitmapScalingMode="HighQuality" UseLayoutRoundin ...

  7. 开发进阶系列:Java网络通信编程从基础到框架

    一  基本概念 IO(BIO)和NIO的区别:其本质就是阻塞和非阻塞的区别. 阻塞:应用程序在获取网络数据的时候,如果网络传输数据很慢,那程序就一直等着,直到传输完毕为止. 非阻塞:应用程序直接可以获 ...

  8. vue3中使用simple-keyboard实现虚拟键盘(带中文切换数字键盘)

    效果图 官网 simple-keyboard官网:https://hodgef.com/simple-keyboard/ 打不开的话请用魔法 不足 中文语言包支持度不够.不过自己可以找语言包替换 依赖 ...

  9. TCL之基本语法1

    TCL之基本语法1 1:set  and puts set就是变量声明,这个声明在需要使用的指令下会自动执行,不会出现没有声明的错误.但是对于puts这类定向访问的是不能没有声明的.这里简单理解TCL ...

  10. 嵌入式C语言设计学习之C语言回顾

    C的基本语法-回忆 1.C的结构 C语言的结构还是以函数为主体,通过其他资源的添加来实现高级语言逻辑.所有的操作都是基于主函数展开的.以主函数为顺序列表,其他函数作为功能模块,组成一个完整的系统.所以 ...