• 内容编码


    •内容编码

      HTTP应用程序有时在发送之前需要对内容进行编码。

    •内容编码过程:

      1)网站服务器生成原始响应报文,其中有原始的Content-Type和Content-Length首部。

      2)内容编码服务器创建编码后的报文。编码后同样有Content-Type和Content-Length。内容编码服务器在编码后的报文中增加Content-Encoding首部,这样接收的应用程序就可以进行解码了。

      3)接收程序得到编码后的报文,进行解码,获得原始报文。

      在这个例子中,通过gzip内容编码函数对HTML页面处理之后,得到一个更小的、压缩的主体。经过网络发送的压缩的主体,并打上了gzip压缩的标志。接收的客户端使用gzip解码器对实体进行解压缩。

    •一个包含编码的响应片段:

      HTTP/1.1 200 ok

      Date:Fri,05 Nov 1999 22:35:15 GMT

      Server:Apache/1.2.4

      Content-Length:6096

      Content-Type:image/gif

      Content-Encoding:gzip

      [……]

    •内容编码类型:

      表152 内容编码代号

      -------------------------------------------------------------------------------------------

      Content-Encoding值          描述

      -------------------------------------------------------------------------------------------

      gzip                  表明实体采用GNU zip编码

      deflate                  表明试图是用zlib的格式压缩的

      identity                 表明没有对实体进行编码。

      -------------------------------------------------------------------------------------------

     •Accept-Encoding首部:

      毫无疑问,我们不希望服务器用客户端无法解码的方式来对内容进行编码。为了避免服务器使用客户端不支持的编码方式,客户端就把自己支持的内容编码方式列表放在请求的Accept-Encoding首部里发出去。如果HTTP请求中没有包含Accept-Encoding首部,服务器就可以假设客户端能够接受任何编码方式。

      服务器使用gzip对图像进行压缩,以便在他和客户端之间的狭窄网络连接上传送一个较小的文件,这样可以节约网络快带和客户端等待的时间。不过,客户端在收到图像之后,还需要花费时间进行解压缩。

  • 相关阅读:
    docker部署项目,对镜像,容器的操作
    技术汇总:第十六章:关于登录与退出的token
    关于EZDML数据库表结构制作设计工具使用踩的坑
    技术汇总:第十七章:支付宝对接公钥,私钥
    集成Mybatis
    解决errorCode 0, state 08001 报错
    Spring缓存注解@Cacheable,@CachePut , @CacheEvict
    解决:Could not initialize class org.hibernate.validator.internal.engine.Configura
    @ConditionalOnMissingBean注解的作用
    解决:WARNING: An illegal reflective access operation has occurred
  • 原文地址:https://www.cnblogs.com/dengyg200891/p/4930139.html
Copyright © 2020-2023  润新知