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. offer到手!美团Java岗四面(多线程+redis+JVM+数据库)

    美团Java岗四面,已拿offer,前三面都是技术面,第四面是HR面,下面是面试题! 美团Java岗一面(技术,电话面,约40分钟) 自我介绍. 项目介绍. 了解过redis源码及redis集群么? ...

  2. PAT A1003 Emergency 题解

    PAT A1003 Emergency PAT A1003 Emergency 题目简述: 原题为英文题目,所以在这里简述一下题意: 给定n个点和m条无向路以及起点.终点 下面一行n个数,第i个数表示 ...

  3. 洛谷 P1313 【计算系数】

    这道题只要肯动手还是挺水的 进入正题 我们先枚举几个找找规律(这里先省略x,y): k = 0 :\(1\) k = 1 : \(a\) \(b\) k = 2 : \(a^{2}\) \(2ab\) ...

  4. Plink v0.1.0 发布——基于Flink的流处理平台

    Plink是一个基于Flink的流处理平台,旨在基于 [Apache Flink]封装构建上层平台. 提供常见的作业管理功能.如作业的创建,删除,编辑,更新,保存,启动,停止,重启,管理,多作业模板配 ...

  5. 树莓派搭建Nexus2私服

    使用树莓派搭建Nexus2私服需要的材料有: 树莓派3B+(或者4B) 移动硬盘一个 1. 下载nexus2.x安装包 由于nexus2.x官方的启动环境并不支持arm架构的树莓派,所以这里采用tom ...

  6. CSS如何将图像转换为模糊图像?

    在CSS中,可以使用filter属性来模糊处理图像:filter属性用于将图像转换为模糊图像.该属性主要用于设置图像的视觉效果. 语法: filter: blur() 属性值: ● blur():给图 ...

  7. css实现左边定宽右边自适应的5种方法总汇

    在网页布局中,通常需要实现左边定宽右边自适应布局,默认html的结构如下: <div class="box"> <div class="left&quo ...

  8. P2585 三色二叉树 题解

    题目 一棵二叉树可以按照如下规则表示成一个由0.1.2组成的字符序列,我们称之为"二叉树序列S": \[S=\left\{ \begin{aligned} 0 &\ \ 表 ...

  9. 切忌一步到位,谈谈DevOps实施落地

    2020年6月19日,由云计算开源产业联盟指导,高效运维社区和 DevOps 时代社区联合举办的GNSEC 2020线上峰会圆满举办.BoCloud博云参加了本次峰会并分享了博云帮助客户实施DevOp ...

  10. Nmap常见扫描方式流量分析

    环境说明 扫描者:manjaro linux , IP地址:192.168.31.160 被扫描者:centos 7,IP地址:192.168.31.175 分析工具:wireshark nmap 版 ...