{"componentChunkName":"component---src-templates-blog-post-js","path":"/some-differences-between-http1.0-and-1.1/","result":{"data":{"markdownRemark":{"html":"<ol>\n<li><strong>缓存处理</strong>，在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准，HTTP1.1则引入了更多的缓存控制策略例如Entity tag，If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略</li>\n</ol>\n<ul>\n<li><strong>带宽优化</strong>，HTTP1.0中，存在一些浪费带宽的现象，例如客户端只是需要某个对象的一部分，而服务器却将整个对象送过来了，并且不支持断点续传功能，HTTP1.1则在请求头引入了range头域，它允许只请求资源的某个部分，即返回码是206（Partial Content），这样就方便了开发者自由的选择以便于充分利用带宽和连接</li>\n<li><strong>长连接</strong>，HTTP 1.1支持长连接（PersistentConnection）和请求的流水线（Pipelining）处理，在一个TCP连接上可以传送多个HTTP请求和响应，减少了建立和关闭连接的消耗和延迟，在HTTP1.1中默认开启Connection： keep-alive，一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点</li>\n<li><strong>错误通知的管理</strong>，在HTTP1.1中新增了24个错误状态响应码，如409（Conflict）表示请求的资源与资源的当前状态发生冲突；410（Gone）表示服务器上的某个资源被永久性的删除</li>\n<li><strong>Host头处理</strong>，在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址，因此，请求消息中的URL并没有传递主机名（hostname）。但随着虚拟主机技术的发展，在一台物理服务器上可以存在多个虚拟主机（Multi-homed Web Servers），并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域，且请求消息中如果没有Host头域会报告一个错误（400 Bad Request</li>\n</ul>","timeToRead":1,"frontmatter":{"title":"http1.0和1.1的一些区别","date":"April 29, 2019","spoiler":null},"fields":{"slug":"/some-differences-between-http1.0-and-1.1/"}}},"pageContext":{"slug":"/some-differences-between-http1.0-and-1.1/","previous":{"fields":{"slug":"/implementation-of-hash-table-in-javascript/"},"frontmatter":{"title":"JavaScript的哈希表实现"}},"next":{"fields":{"slug":"/http-status-code/"},"frontmatter":{"title":"http状态码"}}}},"staticQueryHashes":["3649515864","63159454"]}