HTTP发展简史
HTTP发展简史
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。
HTTP/0.9版本
- 1991年发布0.9版本,该版本只有一个GET命令。
- 仅支持html格式。
- 服务器不支持长连接,当客户端和服务端通信完后就会关闭连接,一次连接一个请求。
HTTP/1.0版本
- 1996年5月发布1.0版本,有很大改进。
- 支持了更多文件格式,比如图片、视频、二进制文件,使得网页内容更加丰富。
- 支持了更多的方法:GET、POST、HEAD。
- 增加了包头信息(HTTP header)、状态码、缓存、权限等功能。
- 和0.9版本一样,服务器不支持长连接,当客户端和服务端通信完后就会关闭连接,一次连接一个请求。
HTTP/1.1版本
- 1997年1月发布1.1版本,目前主流依然是1.1
- 支持了持久连接,一个连接可以发送多个请求,并且支持一个连接同时发送多个请求(服务器端需要按顺序返回结果)
- 支持了更多的方法:PUT、PATCH、DELETE、OPTIONS
- 客户端请求头信息增加Host字段,指定服务器的域名,这样服务器上支持了虚拟主机,即一台机器多个站点
HTTP/2 版本
- 2015年发布,目前还未正式大规模使用,但大多浏览器已经支持HTTP/2
- 在之前版本HTTP header必须是文本(ASCII编码)格式,body部分可以是文本也可以是二进制,但在HTTP/2,无论是header还是body都是二进制数据
- HTTP/2支持了在一个连接里,客户端和服务端同时发送多个请求
- 因为支持了在一个连接里同时发送多个请求和多个回应,为了区分它们就需要对数据做标记,每个请求或回应的所有数据包为一个数据流(stream),每个数据流都有一个唯一的ID,客户端发送的请求ID为奇数,服务端返回的为偶数
- HTTP/2支持header压缩,并且支持header信息索引(客户端和服务端有一张相同的索引表,不同的header对应不同的索引号,发送请求时不会再发header,而是发索引号)
- HTTP/2支持服务端主动推送功能,如果一个网页中含有大量的静态资源(js、css、图片等),之前版本是当该网页传输完成后解析所有html代码,然后再去传输网页中包含的资源,HTTP/2版本可以在网页没有传输完之前就主动把该网页中包含的静态资源推送到客户端,这样省去了客户端再次发请求的过程。
HTTP发展简史的更多相关文章
- Web前端发展简史
Web前端发展简史 有人说“前端开发”是IT界最容易被误解的岗位,这不是空穴来风.如果你还认为前端只是从美工那里拿到切图, JS和CSS一番乱炖,难搞的功能就去网上信手拈来,CtrlC + Ctrl ...
- Web发展简史(精编故事版,贤来给你讲故事)
Web发展简史 一. Web发展简史之隔壁老王的故事 有一个人叫隔壁老王,老王有一个爱好就是爱看电影.有一天,这个隔壁老王想看一部电影,可是电脑里面存储的电影太多了,他费了老大劲才从里面找到,觉得很不 ...
- 发展简史jQuery时间轴特效
发展简史jQuery时间轴特效.这是一款鼠标滚动到一定的高度动画显示企业发展时间轴特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="wr ...
- AI技术说:人工智能相关概念与发展简史
作为近几年的一大热词,人工智能一直是科技圈不可忽视的一大风口.随着智能硬件的迭代,智能家居产品逐步走进千家万户,语音识别.图像识别等AI相关技术也经历了阶梯式发展.如何看待人工智能的本质?人工智能的飞 ...
- java 发展简史
[0]README 0.1) 本文转自 core java volume 1,仅供了解Java 的发展历史,它的前世今生,所谓知己知彼,百战不殆(just a joke) : [1]java 发展简史 ...
- Kubernetes 入门必备云原生发展简史
作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 "未来的软件一定是生长于云上的"这是云原生理念的最核心假设.而所谓"云原生",实际上就是在定义一条能 ...
- 【转】WEB技术发展简史
[转]WEB技术发展简史 一.Web技术发展的第一阶段——静态文档 第一阶段的Web,主要是用于静态Web页面的浏览.用户使用客户机端的Web浏览器,可以访问Internet上各个Web站点,在每一个 ...
- 【H264】视频编码发展简史
一.常见视频编码格式 编码格式有很多,如下图: 目前比较常用的编码有: H26x系列:由ITU(国际电传视讯联盟)主导,侧重网络传输 MPEG系列:由ISO(国际标准组织机构)下属的MPEG(运动图象 ...
- NoSQL发展简史、粗略分类及选择
这里对近来看的部分NoSQL资料做一个汇总记录,主要包括简史.粗略分类及数据库选择的考虑事项.NoSQL常见的解释是“non-relational”,有时也称作Not Only SQL. 1. ...
随机推荐
- 03-docker入门-创建 docker 镜像
方法1:从运行的容器创建方法2:编写 DockFile 文件创建 方法1: 打包镜像 docker commit -m "Test a change" 610 ubuntu:tes ...
- Margin和padding失效
太久不写原生果然不行,Margin和padding对div有效,对span失效,原因就不解释了(元素性质,块状之类的)
- 4.28(TG模拟赛)总结
1.挖地雷 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N≤20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任 ...
- Spring Boot 知识笔记(整合Mybatis)
一.pom.xml中添加相关依赖 <!-- 引入starter--> <dependency> <groupId>org.mybatis.spring.boot&l ...
- Linux】目录文件权限的查看和修改【转】
转载自:http://zhaoyuqiang.blog.51cto.com/6328846/1214718 ============================================== ...
- 识别led灯和驱动器的关联关系
精准答案: https://wenku.baidu.com/view/db1f7361ac02de80d4d8d15abe23482fb4da02d6.html?qq-pf-to=pcqq.group ...
- 阿里云 API 签名机制的 Python 实现
在调用阿里云 API 的时候,最让人头疼的就是 API 的签名(Signature)机制,阿里云在通用文档中也有专项说明,但是仅仅有基于 Java 的实现代码示例.所以这里基于 Python 来分析下 ...
- 配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解
1.参数的含义 -vmargs -Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512M -vmargs 说明后面是VM的参数,所以后面的其实都 ...
- Java实现添加压缩文件
package junittest; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...
- cad.net 依照旧样条曲线数据生成一条新样条曲线的代码段. spline生成
Spline spl = entity as Spline; //拿到旧的spline图元... //样条曲线生成条件 var controlPoints = new Point3dCollectio ...