内容协议机制、断点续传与多线程下载

内容协议机制

指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为合适的资源。内容协商会以响应资源的语言,字

符集,编码方式等作为判断的基准。

内容协商方式

客户端驱动

客户端发送请求,服务器发送可选项列表,客户端作出选择后在发送第二次请求

服务器驱动

服务器检查客户端的请求头部集并决定提供哪个版本的页面

透明协商

某个中间设备(通常是缓存代理)代表客户端进行协商

服务器驱动内容协商-请求首部集

Accept:告知服务器发送何种媒体类型

Accept-Language:告知服务器发送何种语言

Accept-Charset:告知服务器发送何种字符集

Accept-Encoding:告知服务器采用何种编码

Content-Type

Content-Language

Content-Type

Content-Encoding

服务器驱动内容协商-近似匹配

 

断点续传与多线程下载

HTTP是通过在Header里两个参数实现的,客户端发送请求时对应的是Range,服务器端响应时对应的是Content-Range

Renge

用于请求头中,指定第一个字节的位置和最后一个字节的位置

一般格式:

 

 

 

 

 Content-Range

用于响应头中,在发出带Range的请求后,服务器会在Content-Range头部返回当前接受的范围和文件总大小。

一般格式:

 

 而在响应完成后,返回的响应内容也不同:

HTTP/1.1 200 Ok(不使用断点续传方式)

HTTP/1.1 206 Partial Content(使用断点续传方式)

断点续传的过程

1、客户端下载一个1024K的文件,已经下载了其中512K

2、网络中断,客户端请求续传,因此需要在HTTP头中申明本次需要传输续传的片段:

Range:bytes = 512000-

这个头通知服务端从文件的512K位置开始传输文件

3、服务端收到断点续传请求,从文件的512K位置开始传输,并且在HTTP头中增加:

Content-Range:bytes 512000-/1024000

并且此时服务端返回的HTTP状态码应该是206,而不是200

posted @ 2023-03-23 09:59  想见玺1面  阅读(18)  评论(0编辑  收藏  举报