accept-encoding和content-encoding是http中用来对采用何种压缩格式传输正文进行协定的一对header。工作原理如下:
浏览器发送请求,通过accept-encoding带上自己支持的内容编码格式列表服务端从中挑选一个用来对正文进行编码,并通过content-encoding响应头指明响应编码格式。浏览器拿到响应正文后,根据content-encoding进行解压缩。服务端若响应未压缩的正文,则不允许返回content-encoding。压缩类型:
gzip:表示采用 lempel-ziv coding (lz77) 压缩算法,以及32位crc校验的编码方式compress:采用lempel-ziv-welch (lzw) 压缩算法。deflate:表示采用 zlib 结构 (在 rfc 1950 中规定),和 deflate 压缩算法(在 rfc 1951 中规定)。identity:用于指代自身(未经过压缩和修改)。除非特别指明,这个标记始终可以被接受。br:表示采用brotli 算法的编码方式。内容编码:
内容编码针对的只是传输正文。http/1中,header始终是以ascii文本传输,没有经过任何压缩;http/2中引入header压缩技术。transfer-encoding支持类型:
chunkedcompressdeflategzipidentit多个类型可以共存gzip+curl例子:
echo "content=web%20%e5%ae%89%e5%85%a8%e6%98%af%e4%b8%80%e9%a1%b9%e7%b3%bb%e7%bb%9f%e5%b7%a5%e7%a8%8b%ef%bc%8c%e4%bb%bb%e4%bd%95%e7%bb%86%e5%be%ae%e7%96%8f%e5%bf%bd%e9%83%bd%e5%8f%af%e8%83%bd%e5%af%bc%e8%87%b4%e6%95%b4%e4%b8%aa%e5%ae%89%e5%85%a8%e5%a0%a1%e5%9e%92%e5%9c%9f%e5%b4%a9%e7%宝尊电商上市93%a6%e8%a7%a3%e3%80%82" | gzip -c > data.txt.gzcurl -v --data-binary @data.txt.gz -h'content-type: application/x-www-form-urlencoded; chart=utf-8' -h'content-encoding: gzip' -x post https://qgy18.com/node/
transfer-encoding与content-encoding的区别:
tr湖边钓鱼ansfer-encoding只是在传输过程中才有的,并发请求url对应实体的本身特性。transfer-encoding是一个”跳到跳”的header,而content-encoding是”端到端”的header。content-type是http的实体首部,用于说明请求或者返回的消息主体是用何种方式财务制度包括哪些编码(即资源的mime类型)。在请求、响应header中均存在。
示例如下:
content-type: text/ht操行评语ml; chart=utf-8content-type: multipart/form-data; boundary=something
参数一般包含:
media-type:资源或者数据的mime typechart:字符编码标准boundary:多于多部实体,boundary是必需的。其包括一组1到70个字符,用于封装消息的多个部分的边界。media-type常用类型:
text/html
是一种用http作为传输协议,xml作为编码方式的远程调用规范。本文发布于:2023-04-03 09:39:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/4a8d30fdfbe2aa4dce3301e986260cca.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:HTTP中的Accept.doc
本文 PDF 下载地址:HTTP中的Accept.pdf
留言与评论(共有 0 条评论) |