zoukankan      html  css  js  c++  java
  • 第三章 HTTP报文中的HTTP信息

    第三章 HTTP报文中的HTTP信息

    HTTP通信过程:客户端—》服务端,服务端—》客户端。

    1.HTTP报文

      使用HTTP协议交互的信息被称为HTTP报文,包括请求报文和响应报文。

      【请求报文和响应报文结构】报文首部(请求行/相应行+首部字段<请求、响应、通用、实体首部字段>)+报文主体

     2.报文编码

      HTTP在传输数据是可以通过编码技术来有效处理大量的访问请求,但会消耗更多的CPU等资源。

      【报文和实体】报文是箱子,是HTTP通信中的基本单位,由8位组字节流组成,通过HTTP传输。实体是货物,作为请求或响应的有效载荷数据。报文中的实体是由实体首部和实体主体组成的。一般情况下,报文主体等于实体主体。但在传输过程进行编码操作时,实体主体内容发生变化,和报文主体产生差异。

      【压缩传输的内容编码】内容编码指明应用在实体内容上的编码格式,并保持实体信息原样压缩。内容编码后的实体由客户端接受并负责解码。常见的内容编码方式:gzip、compress(UNIX系统标准压缩)、deflate、identity。

      【分割发送的分块传输编码】将数据分割成多块,能让浏览器逐步显示页面。实体最后一块使用0(CR+LF)来标识。

      【发送多种数据的多部份对象集合】传输实体包含不同类型的数据,例如邮件的附件可以同时添加文字、音频、视频等,这就是采用了MIME(多用途因特网邮件扩展)机制。相应地,HTTP协议中也采纳了多部份对象集合,发送的报文主体有多种类型实体,通常在图片或文本等上传时使用。在HTTP报文中使用多部份对象集合时,需要在首部字段加上Content-type,并且使用boundary字符串来划分多部份对象的各类实体。

      多部份对象集合包含的对象如下:

          multipart/form-data:在Web表单文件上传时使用

          multipart/byteranges:状态码206响应报文包含了多个范围的内容是使用。  

      【获取部分内容的范围请求】指定要请求的范围的发送请求叫做范围请求。例如对一份10000字节大小的资源,如果使用范围请求,可以指请求5001~10000字节内的资源。

      Range: bytes=5001-10000    请求5001-10000字节的

      Range: bytes=5001-    请求5001字节之后全部的

      Range: bytes= -3000,5001-7000  请求一开始到3000和5001-7000的

      【内容协商返回最合适的内容】内容协商机制是指客户端和服务端就相应的资源内容进行交涉,然后提供给客户端最为适合的资源。包含在请求报文中的某些首部字段就是判断的基准。

      内容协商技术有以下三种类型:服务器驱动协商、客户端驱动协商、透明协商。

  • 相关阅读:
    Laravel Providers——服务提供者的注册与启动源码解析
    基于visual Studio2013解决算法导论之054图的邻接矩阵表示
    基于visual Studio2013解决算法导论之053图的邻接表表示
    基于visual Studio2013解决算法导论之052深度优先
    基于visual Studio2013解决算法导论之051区间树
    基于visual Studio2013解决算法导论之050强连通分支
    基于visual Studio2013解决算法导论之049活动选择问题
    基于visual Studio2013解决算法导论之048红黑树
    基于visual Studio2013解决算法导论之047赫夫曼编码
    基于visual Studio2013解决算法导论之046广度优先搜索
  • 原文地址:https://www.cnblogs.com/qmillet/p/12075369.html
Copyright © 2011-2022 走看看