HTTP协议中的数据编码方式
说明:数据编码用于在网络传输中处理特殊字符、压缩数据或分块传输数据
- URL 编码(Percent Encoding):将特殊字符转义为%xx的形式,其中xx是该字符的ASCII码的十六进制表示。例如,空格编码为%20,等号编码为%3D。
在C#中用Rfc3986标准对UrlEncode进行编码可以用以下代码实现:
// 摘要:
// 用Rfc3986标准对UrlEncode进行编码
//
// 参数:
// text:
public static string EncodeUrlRaw(this string text)
{
if (text.IsNullOrEmpty())
{
return text;
}
return Uri.EscapeDataString(text);
}
Base64
编码:将二进制数据转换为ASCII字符表示的编码方式。Base64编码中使用64个字符表示64个不同的数值,将3个字节的二进制数据编码为4个ASCII字符,每个字符占6个比特位。
GZIP
压缩:在HTTP请求或响应内容中使用GZIP压缩算法对数据进行压缩,减小数据大小,在网络传输中提高效率。压缩后的数据使用Base64编码传输。
Chunked
编码:将数据分成一系列固定大小的块,每个块包含块大小和实际数据。这种编码方式使得可以边生成边传输数据,而无需提前知道整个内容的长度。