HTTP0.9、HTTP1.0、HTTP1.1的区别
HTTP协议最初开始的设计目标就是通过网络来支持Client和Server之间的事务处理。
HTTP0.9是一个面向消息的简单协议,是现在使用的HTTP协议的子集。
因此它同 HTTP1.0,HTTP1.1兼容。该协议描述了Client和Server之间请求和响应的过程:Client在本地主机向运行于远程主机上的 Server请求链接。
连接成功之后通过GET来访问Server端对象(可以是普通网页,也可以是通过CGI或ISAPI生成的动态页面)。
Server端在连接终止之前将请求的对象或者是错误消息返回给Client。
HTTP0.9和HTTP1.1在结束响应过程基本上没有大的区别。
HTTP/1.0是以HTTP/0.9为基础发展起来的,增加了复杂网络连接下访问不同对象类型的功能,基本的改进如下:
请求的类型,如 HEAD、POST等。请求和响应消息的协议版本,响应消息第一行以“HTTP/1.0”开始,表示Server使用的是HTTP协议的1.0版。
使用 Server响应码来表示请求响应消息的成功与否,如果响应消息第一行以“200 OK”结束,说明操作成功。
使用MIME的消息标题(Header)和消息体(Body)格式来描述访问对象的数据类型和附加在后面的元信息,如MIME的Header为“Content-type:text/html”表明响应的消息实体是HTML文件,增加了MIME支持之后,使HTTP协议扩大了处理的数据类型,支持对多媒体流信息的处理。
用 Challenge/Response实现认证,这样可以在用户访问某些页面时要求输入用户名和密码,进行身份认证。
增加了代理(proxy)支持功能,在HTTP0.9中,规定了Client和Server只能直接交互,而1.0版可以通过代理等中间实体实现间接连接。
HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象.
HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接). 在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象!HTTP1.1是在HTTP1.0的基础上实现的一次飞跃,主要的改进集中在性能、安全、数据类型处理等方面:
提出Server端缓冲对象的概念,是减少网络上相同类型内容的反复传送,提高访问速度。基本的连接是永久连接,提高了性能。
允许Client和Server之间对内容进行协商突破了HTTP1.0中Server和IP一一对应的限制,可能通过主机名来决定由哪一个Server提供服务。