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

相关文章
|
3月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
113 4
|
8月前
|
数据采集 JSON 网络协议
请你详细介绍一下HTTP请求头的常用格式
【2月更文挑战第21天】【2月更文挑战第65篇】请你详细介绍一下HTTP请求头的常用格式
100 2
|
2天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
47 28
|
3天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
62 18
|
2月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
5月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
101 1
|
5月前
|
缓存 应用服务中间件 nginx
运维系列.Nginx中使用HTTP压缩功能(二)
运维系列.Nginx中使用HTTP压缩功能(二)
67 0
|
5月前
|
存储 Linux Docker
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo
CentOS 安装Docker时,将 Docker 官方的 YUM 存储库添加到 CentOS 系统中出现错误。
825 0
|
7月前
|
JavaScript
【干货】js判断url是否是合法http/https
【干货】js判断url是否是合法http/https
|
6月前
|
JSON 应用服务中间件 开发工具
Ngnix的http块自定义服务日志,access.log和error.log,log_format指定日志输出格式设置
Ngnix的http块自定义服务日志,access.log和error.log,log_format指定日志输出格式设置