HTTP协议压缩格式和URL编码介绍

简介: HTTP压缩是指web服务器和浏览器之间压缩传输请求响应结果的方法,通过采用通用的压缩算法,将数据包压缩后进行传输,从而提升页面加载速度,给用户一个更好的体验。

HTTP压缩是指web服务器和浏览器之间压缩传输请求响应结果的方法,通过采用通用的压缩算法,将数据包压缩后进行传输,从而提升页面加载速度,给用户一个更好的体验。

1

HTTP压缩过程


数据包压缩的过程,其实就是客户端发请求的时候先告诉服务器,我能支持某种算法的压缩,服务端获取到这个参数后,按照特定的格式将原有的响应结果压缩后返回客户端,客户端再进行解码。大致有几下几个步骤:

1、客户端发请求给服务端,在请求中的Header中,在Accept-Encoding中告诉服务端自己支持那种格式压缩

2、服务端收到请求后,得到原始响应结果,通过压缩算法(比如gzip)对响应结果进行编码,然后在响应Header中加入Content-Encoding:gzip,把结果返回给客户端

3、客户端接收到响应结果后,根据Content-Encoding的内容对结果进行解码,获得解压后的内容,然后呈现在页面。




2

HTTP内容编码类型介绍


HTTP定义了一些表中的内容编码类型,主要有以下几种:

  • gzip:表明实体采用GNU zip编码
  • compress:表明实体采用UNIX的文件压缩程序
  • deflate:表明实体是用zlib的格式压缩的
  • identify:表明没有对实体进行编码,Header中默认选项就是identify


gzip是如何压缩的?

简单来说,gzip就是在一个文本文件中找出类似的字符串,然后临时替换他们,从而使整个文件变小,比较适合压缩hrml、css、js等文件,对图片类的压缩效果不明显。

gzip在工作中运用的还是挺多的,比如手机上访问的H5轻应用报表,如果采用在线的方式加载的话,每次点击的时候都要去请求相关的js之类的,弱网的时候容易白屏,这个时候就可以把相关需要的js资源文件用gzip压缩打包,采用离线加载的方式进行页面加载,同时也提升了用户体验,避免了一些由于网络不稳定带来的体验性问题。



3

URL Encode介绍


相信大家平常在访问网页的时候,url地址栏中的地址总会出现一些类似“%20”之类的字符,这其实就是url地址被编码显示了。url地址只能用字母、数字和某些标点符号组成,不能使用中文等。Url Encoding就是把所有的非字母、数字符号的都替换成对应的编码。


使用python脚本对某个字符串进行url编码解码:

import urllib
str='%E4%BD%A0%E5%A5%BD'
print(urllib.unquote(str))  #你好
print(urllib.quote("你好")) #%E4%BD%A0%E5%A5%BD

微信图片_20220113225535.png


使用fiddler工具栏Tools下的TextWizard小工具进行字符串编码转换:


微信图片_20220113225539.png

相关文章
|
6天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
50 28
|
4天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
88 25
|
7天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
122 18
|
27天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
72 15
|
22天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
25天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
25天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
92 1
|
2月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
84 11
|
2月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
54 8