HTTP初始——HTTP家族

Posted 吃着西瓜学Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP初始——HTTP家族相关的知识,希望对你有一定的参考价值。

Http家族

正文部分的MIME类型

在讲解各个版本的HTTP的异同前我们先来介绍以下MIME,全称为“Multipurpose Internet Mail Extensions”,中文名为“多用途网络邮件拓展协议”。从MIME的中文名称我们就不难得出,它最初的设计目的就是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。它使得HTTP传输的不仅可以是普通的html文本,还可有包含很多媒体类型,如image、video、application等。

我们知道HTTP/9.0后的请求和响应的正文部分是可以任意的数据格式,所以只有统一格式才能确保接收方能看得懂发送方的正文数据。而HTTP采用MIME协议来规范正文的数据格式,具体体现是在HTTP请求头和响应头中有一个Content-type项,用来指定请求正文和响应正文中MIME类型。每个MIME类型由两部分组成,前面是数据的大类别,后面是具体的子类别(文件拓展名)。如image/gif。常见的文件拓展名于MIME类型的对应关系:

                     文件拓展名
                   MIME类型
未知的数据类型或不可识别的拓展名
content/unknown
.bin、.exe、.o、.a、.z
application/octet-stream
.pdf
application/pdf
.zip
application/zip
.gif
image/gif
.jpg、.jpeg
image/jpeg
.htm、.html
text/html

HTTP/0.9

1991年发布的HTTP/0.9是第一个HTTP版本,同时也是最简单的HTTP。HTTP请求中不包括HTTP的版本号和头部信息,仅有一个GET方法,HTTP响应结果也只包含HTTP文档。该版本已过时。

HTTP/1.0

HTPP/1.0于1996年发布,它在HTTP/0.9的基础上做出了很大改进。**格式上:**HTTP/1.0中请求和响应都增加了版本号和头部信息。 **内容上:**采用MIME协议,可以传输照片、视频等。响应结果中包含状态码(status code)、限权(authorization)、缓存(cache)和内容编码(content encoding)等信息。HTTP/1.0的特点和缺点:

  1. 无连接:指服务器处理完客户的请求,并收到客户的应答后,就断开连接。也就是说每次HTTP请求都要建立一个新的TCP,而频繁的建立客户端与服务器端的TCP连接很耗资源,会降低服务器端的响应速度。
  2. 队列阻塞:在HTTP/1.0中,同一个TCP连接只能处理一个HTTP请求,只有前一个请求的响应收到了才能发送下一个HTTP请求,一旦收到响应非常慢,那么后面的请求只能等待,这就导致了队列阻塞。所以,HTTP1.0的队列阻塞发生在客户端。

HTTP/1.1

看名字就可以知道,HTTP1.1是为了克服HTTP1.0的缺点而出现的升级版。它不仅继承了HTTP1.0简单的特点,还克服了诸多HTTP1.0性能上的问题。

HTTP/1.1的特点和缺点:

  1. 持久TCP连接(长连接):HTPP/1.1建立TCP连接后,允许处理多个有序的HTTP请求。在HTTP/1.1请求头中,以下选项用来设定持久TCP连接的参数:Connection: Keep-Alive Keep-Alive: max=5, timeout=120 Keep-Alive/Close表示保持连接或者断开连接,max表示允许处理的最大http请求数目,timeout表示TCP连接的最长闲置时间

  2. 管道机制:HTTP/1.1引入了管道机制,即不需要等待上一个请求的响应结果到来就可以发送下一个请求。基于管道机制,在一个TCP连接中,客户端可以连续发送几个请求,服务端按照接受请求的先后顺序,依次把响应返回给客户端。

  3. 队列阻塞:尽管HTTP1.1支持持久TCP连接,并引入了管道机制,但是HTTP/1.1的处理机制的核心还是按照请求的先后顺序来处理HTTP请求的,并依次返回相应内容。所以只有前一个HTTP相应生成完毕,才能生成下一个响应。如果生成前一个响应非常慢,那么后面的响应任务只能等待,这样会导致响应任务队列阻塞。所以,HTTP/1.1的队列阻塞发生在服务器端。


END


以上是关于HTTP初始——HTTP家族的主要内容,如果未能解决你的问题,请参考以下文章

HTTP协议

Hadoop家族

基因家族分析之同源基因的寻找

mlock家族:锁定物理内存

drf视图家族

Hadoop之家族成员Pig简介