1.   数据类型表示实体数据的内容是什么,使用的是MIME    type,相关的头字段是Accept和Content-Type;
    1.  text:即文本格式的可读数据,我们最熟悉的应该就是text/html了,表示超文本文档,此外还有纯文本 text/plain、样式表text/css等。
    2.   image:即图像文件,有image/gif、image/jpeg、image/png等。 
    3. audio/video:音频和视频数据,例如audio/mpeg、video/mp4等。
    4. application:数据格式不固定,可能是文本也可能是二进制,必须由上层应用程序来解释。常见的有 application/json,application/javascript、application/pdf等,另外,如果实在是不知道数据是什么类 型,像刚才说的“黑盒”,就会是application/octet-stream,即不透明的二进制数据。
  2. 数据编码表示实体数据的压缩方式,相关的头字段是Accept-Encoding和Content-Encoding;
    1.   gzip:GNU    zip压缩格式,也是互联网上最流行的压缩格式;
    2.   deflate:zlib(deflate)压缩格式,流行程度仅次于gzip;
    3.    br:一种专门为HTTP优化的新压缩算法(Brotli)。
  3. 语言类型表示实体数据的自然语言,相关的头字段是Accept-Language和Content-Language; 
  4. 字符集表示实体数据的编码方式,相关的头字段是Accept-Charset和Content-Type;
  5.   客户端需要在请求头里使用Accept等头字段与服务器进行“内容协商”,要求服务器返回最合适的数 据;
  6. Accept等头字段可以用“,”顺序列出多个可能的选项,还可以用“;q=”参数来精确指定权重。
  7. 服务器收到Range字段后,需要做四件事。
    1. 它必须检查范围是否合法,比如文件只有100个字节,但请求“200-300”,这就是范围越界了。服 务器就会返回状态码416,意思是“你的范围请求有误,我无法处理,请再检查一下”。
    2. 如果范围正确,服务器就可以根据Range头计算偏移量,读取文件的片段了,返回状态码“206  Partial    Content Partial    Content”,和200的意思差不多,但表示body只是原数据的一部分。
    3. 服务器要添加一个响应头字段Content-Range ,告诉片段的实际偏移量和资源的总大小,格式 是“bytes    x-y/length bytes    x-y/length”,与Range头区别在没有“=”,范围后多了总长度。例如,对于“0-10”的范围请 求,值就是“bytes    0-10/100”。
    4. 最后剩下的就是发送数据了,直接把片段用TCP发给客户端,一个范围请求就算是处理完了。
  8. 压缩HTML等文本文件是传输大文件最基本的方法; 
  9. 分块传输可以流式收发数据,节约内存和带宽,使用响应头字段“Transfer-Encoding:    chunked”来表 示,分块的格式是16进制长度头+数据块;
  10.   范围请求可以只获取部分数据,即“分块请求”,实现视频拖拽或者断点续传,使用请求头字 段“Range”和响应头字段“Content-Range”,响应状态码必须是206;
  11. 也可以一次请求多个范围,这时候响应报文的数据类型是“multipart/byteranges”,body里的多个部分 会用boundary字符串分隔。
 

HTTP的实体数据的更多相关文章

  1. asp.net三层架构 及其中使用泛型获取实体数据介绍

    asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...

  2. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  3. Dynamic CRM 2013学习笔记(三十一)自定义用excel批量导入实体数据

    有一个实体的子表数据量太大,于是客户想用execel来导入实体数据.首先想到的是用系统自带的Import Data,客户嫌太麻烦,比如lookup字段要做map等. 下面是具体的实现步骤: 一.定义e ...

  4. 使用ADO.NET 实体数据模型连接MySql

    原文:使用ADO.NET 实体数据模型连接MySql 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a123_z/article/details/8 ...

  5. VS2017 之 MYSQL实体数据模

    Photon Server 和 Unity3D 数据交互: Photon Server 服务端编程 Unity3D 客户端编程 VS2017 之 MYSQL实体数据模 一.新建数据库连接后,点击下一步 ...

  6. Enterprise Solution 生成实体数据访问接口与实现类型 Code Smith 6.5 模板文件下载

    数据库表定义为SalesOrder,用LLBL Gen Pro生成的实体定义是SalesOrderEntity,再用Code Smith生成的数据读写接口是ISalesOrderManager,最后是 ...

  7. 《Entity Framework 6 Recipes》翻译系列 (4) -----第二章 实体数据建模基础之从已存在的数据库创建模型

    不知道对EF感兴趣的并不多,还是我翻译有问题(如果是,恳请你指正),通过前几篇的反馈,阅读这个系列的人不多.不要这事到最后成了吃不讨好的事就麻烦了,废话就到这里,直奔主题. 2-2 从已存在的数据库创 ...

  8. 《Entity Framework 6 Recipes》翻译系列 (5) -----第二章 实体数据建模基础之有载荷和无载荷的多对多关系建模

    2-3 无载荷(with NO Payload)的多对多关系建模 问题 在数据库中,存在通过一张链接表来关联两张表的情况.链接表仅包含连接两张表形成多对多关系的外键,你需要把这两张多对多关系的表导入到 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (6) -----第二章 实体数据建模基础之使用Code First建模自引用关系

    2-5 使用Code First建模自引用关系 问题 你的数据库中一张自引用的表,你想使用Code First 将其建模成一个包含自关联的实体. 解决方案 我们假设你有如图2-14所示的数据库关系图的 ...

随机推荐

  1. (数据科学学习手札88)基于geopandas的空间数据分析——空间计算篇(下)

    本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在基于geopandas的空间数据分析系列 ...

  2. 手摸手带你理解Vue的Computed原理

    前言 computed 在 Vue 中是很常用的属性配置,它能够随着依赖属性的变化而变化,为我们带来很大便利.那么本文就来带大家全面理解 computed 的内部原理以及工作流程. 在这之前,希望你能 ...

  3. python 异常类型大全

    try except 处理异常真舒服!!!

  4. cron表达式详解,cron表达式写法,cron表达式例子

    (cron = "* * * * * *") cron表达式格式:{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}例  "0 0 12 ? ...

  5. Oracle12c安装记录(centos6.5,命令行)

    1.参考文章1)http://blog.csdn.net/u010257584/article/details/509024722)http://blog.csdn.net/yabingshi_tec ...

  6. Spring Boot + Vue + Shiro 实现前后端分离、权限控制

    本文总结自实习中对项目的重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...

  7. 【秒懂Java】【02_搭建开发环境】01_Java开发必备

    这篇文章主要讲解:要想使用Java来开发软件,需要做哪些准备工作? 配置电脑 作为一名开发人员,对文件的类型.大小等信息是比较敏感的,所以建议你的电脑做2个配置: 显示文件扩展名 文件扩展名(File ...

  8. 机器分配——线性dp输出路径

    题目描述 总公司拥有高效设备M台, 准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M <= 15 ...

  9. h5页面自动播放视频、音频_关于媒体文件自动全屏播放的实现方式

    在移动端(ios和android)播放视频的时候,我们即使定义了autoplay属性,仍然不能自动播放.这是由于手机浏览器为了防止浪费用户的网络流量,在默认情况下是不允许媒体文件自动播放的,除非用户自 ...

  10. (五)ELK Logstash output

    # 输出插件将数据发送到一个特定的目的地, 除了elasticsearch还有好多可输出的地方, 例如file, csv, mongodb, redis, syslog等 output { if [t ...