面试题:HTTP1.0和HTTP1.1的区别?
我的回答:
1.长连接:HTTP1.1引入了长连接的机制,connection:keep-alive。一个TCP连接可以进行多次请求和响应。而HTTP1.0每次请求响应一次都得建立连接、断开连接。
引入长连接之后,提高了效率,节省了资源。
2.引入了新的响应状态码,比如100-continue等。
3.引入了Host头:可以将多个网站托管到同一台物理服务器上,节约了IP地址资源和网站托管的成本。
展开讲3:
在HTTP1.0的时代,一个域名也就是网站,就是对应一个IP地址。随着时代的发展,网站越来越多,这样一一对应的话,IP地址是不够的。
所以在HTTP1.1进行了优化,多加了Host头。
意思就是:多个域名或者叫网站对应一个IP地址。当浏览器发起请求时,请求头中多了Host字段。服务器收到请求时,会检查Host字段,从而将对应请求的网站资源返回给客户端。
这样就节省了IP地址,起到了虚拟主机的作用。
4.带宽优化:
在HTTP1.0中,存在带宽浪费的现象:客户端只是请求一个对象资源的一部分,但是服务器会返回整个对象。
在HTTP1.1中,在请求头中引入了range头域,允许只请求资源的某个部分,即是返回码206(Partial Content)
5.缓存:
HTTP1.0使用If-Modified-Since和expire来进行缓存控制
HTTP1.1使用Entity Tag/If-None-Match等更多缓存头来控制缓存策略。