http协议各版本差异

http协议各版本差异

一、http协议介绍

       http(Hypertext transfer protocol)超文本传输协议,它是互联网上应用最为广泛的一种网络协议,工作在应用层。

二、http协议发展

       http协议目前有4个版本,其中1.0、1.1版本在互联网上被广泛使用,2.0版本目前应用很少,是下一代的http协议。

  • http/0.9版本:1991年,原型版本,功能简陋,只有一个命令GET,只支持纯文本内容,该版本已过时。
  • http/1.0版本: 1996年5月,支持cache, MIME, method等。
  • http/1.1版本: 1997年1月,默认建立持久连接,并能很好地配合代理服务器工作。还支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度。
  • http/2 版本: 2015年5月作为互联网标准正式发布,头部信息和数据体都是二进制,引入头信息压缩机制等。

三、1.x版本说明

http1.0版本:

  • 任何格式的内容都可以发送,这使得互联网不仅可以传输文字,还能传输图像、视频、二进制等文件。
  • 除了GET命令,还引入了POST命令和HEAD命令。
  • http请求和回应的格式改变,除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。

http1.1版本:

  • http1.1是目前最为主流的http协议版本,从1997年发布至今,仍是主流的http协议版本。
  • 引入了持久连接( persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。
  • 引入了管道机制( pipelining),即在同一个TCP连接里,客户端可以同时发送多个
    请求,进一步改进了HTTP协议的效率。
  • 新增方法:PUT、 PATCH、 OPTIONS、 DELETE。
  • http协议不带有状态,每次请求都必须附上所有信息。请求的很多字段都是重复的,浪费带宽,影响速度。

http1.x版本问题:

  • http1.x在传输数据时,所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份,无法保证数据的安全性。
  • 1.1版本允许复用TCP连接,但是同一个TCP连接里面,所有的数据通信是按次序进行的。服务器只有处理完一个回应,才会进行下一个回应,可能会造成Head-of-line blocking的问题。
  • http1.x支持了keep-alive,来弥补多次创建连接产生的延迟,但是keepalive使用多了同样会给服务端带来大量的性能压力,并且对于单个文件被不断请求的服务(例如图片存放网站), keep-alive可能会极大的影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

四、http/2协议

http/2发布于2015年,目前应用还比较少,该版本主要有如下特点:

  • http/2是一个彻底的二进制协议,头信息和数据体都是二进制,并且统称为"帧"(frame):头信息帧和数据帧。
  • 复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,且不用按顺序一一对应,避免了队头堵塞的问题,此双向的实时通信称为多工( Multiplexing)。
  • HTTP/2 允许服务器未经请求,主动向客户端发送资源,即服务器推送。
  • 引入头信息压缩机制( header compression) ,头信息使用gzip或compress压缩后再发送。

五、查看网站http协议版本

打开浏览器,以百度首页为例,按下F12键。点击network项,然后刷新网页。

从响应头部信息可以看出,该网站使用的是http1.1版本。

原文地址:https://blog.51cto.com/13932385/2393194

时间: 2024-11-11 20:20:58

http协议各版本差异的相关文章

http协议之版本差异(2)

-------------HTTP1.0/HTTP1.1-------------- 建立连接方面 HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用.HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用.优点是减少重复进行TCP三次握手的开销,提高效率.注意:在同一个TCP连接中,新的请求需要等上次请求收到响应后,才能发送. HTTP请求方法 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和

BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法

最近一直在做互金平台,做到后台提交表单的时候出现验证提交数据一直没有提交的问题.于是百度了一下.果然是版本问题造成的.幸好找到了问题所在.我一直仿照的是东钿原微信平台的做法,但是使用byond的后台框架,可能版本不一样,所以造成 submitHandler: function(validator, form, submitButton) { // 版本号0.4.5支持 // 版本号v0.5.2-dev不再支持submitHandler配置 } 这个方法一直是无效的无法执行.百度搜到就是以下解决办

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

广播接收者的特点和版本差异

* 特点:只要广播接收者安装到手机上,不管应用程序有没有启动,系统发出广播后,注册了这个广播的接收者,都可以接受这个广播. * 版本差异:如果用户强行停止了接收者的应用程序,系统发出广播时,在低版本可以接受广播:在高版本,google工程师为了安全,就接收不到这个广播了,如果想接受这个广播,冲新启动一次应用即可.

AsyncTask的版本差异及其与Thread的使用场景

/** * AsyncTask相关总结 * * 1 异步任务AsyncTask在不同Android版本的差异. * 该差异主要是Android2.3和Android3.0及其之后的差异 * * 差异内容: * 在Android2.3中AsyncTask的调用可以并发执行. * 因为它在一个线程池中被调用.该线程池有5个核心线程,且最大线程数为128个. * 比如:同时启动10个任务,有5个任务能够立刻执行,另外5个任务则需等待;当有一个任务执行完毕后,第6个任务才会启动,以此类推. * 因为线程

oracle中WMSYS.WM_CONCAT函数的版本差异

昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到问题是由一个SQL语句引起的. SQL语句如下: WITH PXQ_TASK_TEMP AS (SELECT A.DISTRIBUTE_DATE,          A.APP_NO,          A.TASK_ID,          A.TASK_NO,          A.ACTUAL

网页浏览器内核识别及版本差异

主流浏览器及采用渲染内核(更多见http://www.iplaysoft.com/browsers-engine.html): Trident内核:IE系列 WebKit:Chrome.Safari Gecko:Firefox内核 国内常用双核浏览器:最主流的"双核"浏览器基本都是Trident/WebKit架构,360极速浏览器.世界之窗浏览器极速版.傲游3搜狗浏览器3.QQ浏览器.枫树浏览器.快快浏览器.百度浏览器.阿云浏览器(后期版本).太阳花浏览器,其中最奇葩的是傲游3.其它双

Unity各版本差异

Unity各版本差异 version unity 5.x 4.x  2017 差异 特点 首先放出unity的下载地址,然后再慢慢分析各个版本.再者unity可以多个版本共存,只要不放在同一目录下. https://unity3d.com/cn/get-unity/download/archive 之前unity有 f和p的区别,f:full 完整版本,p:patch 补丁.多叨叨几句,f版具有新特性和功能,p版仅对现有版本所存在的bug进行修复.进入到2017.7.10后,版本号开始以年份.x

python从零开始 -- 第2篇之python版本差异

python从零开始 -- 第2篇之python版本差异 第0篇开始,咱们就说选择 python 3.x,一般来说,咱们面临选择的时候总是想了解更多一点,并且版本之间的对比能引申出很多有意思的故事和知识点,对于加深认识也是很有帮助. 让我们先从python发展史开始吧 这份官方文档着python详细的版本列表,这是中文版介绍,一长串的内容都是python生命力的体现,python在TIOBE排行榜上也是排名靠前,现已超越 c++ 成为探花,仅次于 Java 和 C,看到这里是不是感叹python