HTTP数据传输的理解
发送邮件时,我们可以在邮件里写入文字并添加多份附件,这是因为采用了MIME(Multipurpose Internal Mail Extensions,多用途因特网邮件拓展)机制,它允许邮件处理文本,图片。视频等多个不同类型的数据。
相应的,HTTP协议中也采纳了多部分对象集合,发送的一份报文主题内可保护多类型实体。通常是在图片和文本文件等上传时使用。
多部分对象集合包含
multipart/form-data 在Web表单文件上传时使用
multipart/byteranges 状态码206 ,相应报文包含了多个范围的内容时候使用。
获取部分内容的范围请求
请求的时候。会用到首部字段Range来指定资源的byte范围。byte范围的指定形势如下
Range: bytes = 5001 -10000
也可以设置多重范围 Range: bytes= -3000,5000-7000
针对范围请求,响应会返回状态码为206的相应报文,另外对于多重请求,相应会在首部字段content-Type 表明 multipart/byteranges 后返回响应报文
如果服务器无法相应 范围请求,则会范围状态码200 OK和完整的实体内容
内容协商返回最合适的内容
服务端返回的各种状态码
200 OK 标示从客户端发送的请求在服务端被正常处理了。在相应报文内,返回的状态码会因不同方法而改变。比如Get请求,资源的实体会做完主体内容返回。 而使用Head方法时,只会返回首部,不会返回实体的主体内容
204 表示发送给服务器的请求已经成功处理,但是返回的相应报文中不包含实体的主体部分。也不允许返回任何实体的主体部分。比如从浏览器发送请求后,返回204相应,那么浏览器显示页面不刷新。
206 明白,是对资源的部分请求
301 永久性重定向。表示已经分配了新的URI.需要更新下你请求数据使用的URI
302 临时性重定向 资源的URI 已临时定位到其他位置了,希望用户能使用本次新的URI访问。
303 资源的URI已经更新,你是否使用临时的URI访问。建议使用GET,这是和302的区别
304 资源找到,但是不符合条件
307 临时重定向,但是不用一定使用GET
400 标示客户端是发生错误的原因所在,
401 发生的请求需要通过Http认证,如果已经认证一次,则下次会自动提示认证失败,第一次认证会弹框。
403 禁止访问
404 服务器找不到资源
500 服务器端错误。内部资源出错
503 服务器超载或者正在进行停机维护