1.(1)HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一次TCP连接,服务器完成请求处理后立即断开TCP连接,服务器 不跟踪每个客户,也不去记录过去的请求啊
HTTP1.0建立会话:
1.建立连接
2.发出请求信息
3.回送响应信息
4.关掉连接
1.(2)①HTTP1.1则支持持久连接和请求流水线处理,并且默认使用persistent connection(持续连接).
②在同一个TCP连接中可以传递多个HTTP请求和响应,多个请求和响应可以重叠,对个请求和响应可以同时进行,
③更多加了请求头和响应头(比如HTTP1.0没有的host字段),HTTP1.1还提供了身份验证,状态管理和Cache缓存等机制的请求 头和响应头
④HTTP1.1还允许客户端不用等待上一次请求返回的就可以发出下一次请求,但是服务器必须的给出响应结果
HTTP1.1的持续连接,也需要增加新的请求头来帮助实现,connection请求的值为keep-Alive,客户端与服务器保持连接
connection请求值为close,客户端通知服务器返回本次响应信息 后关闭连接
请求流水线处理:在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟
例如:一个包含许多图像的网页可以在一个连接中传输,但是不同的网页需要建立不同的连接
HTTP1.1中的host字段:在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名 hostname.但是随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机,并且他们共 享一个IP地址
HTTP1.1的请求消息和响应消息都支持Host头域,并且请求消息中如果没有HOST头域会报告一个 错误(404 Bad Request).此外,服务器应该接受以绝对路径标记的资源请求
HTTP1.1的100:HTTP1.1加入了新的状态码100(continue).客户端事先发送一个只带头域的请求,如果服务器因为权限拒绝 了请求,就回送401响应码,如果服务器接受此请求就回送100响应码,客户端就可以开旭发送带实体的完整请 求了.
100状态码的使用,允许客户端在发request消息body之前先用request header试探server,看server要不 要接受request body,再决定要不要发送request body
HTTP1.1分块传输编码:发送方将消息分割成若干个任意大小的数据块,每个数据块在发送时都会附上块的长度,最后用一个0 长度的块作为消息结束的标志.这种方法允许发送方只缓存消息的一个片段,避免缓冲整个消息带来过载
HTTP1.1的cache新特性:当缓存对象的AGe超过到期时间变成陈旧对象,cache不需要抛弃陈旧对象,而是与源服务器进行重 新激活