要想知道如何传送这些二进制先来点二进制文件的背景知识
文件魔数 magic number
操作系统的文件其起始的几个字节的内容是固定的。根据这几个字节的内容就可以确定文件类型因此这几个字节的内容被称为魔数 (magic number) 对于GIF,JPG这种二进制跨系统都是支持的linux/Windows,对于.exe .bin这类操作系统相关的就不一样了。
如何查看 用UltraEdit直接以二进制方式打开这些文件。
常见魔数
JPEG (jpg)文件头FFD8FF
PNG (png)文件头89504E47
GIF (gif)文件头47494638
ZIP Archive (zip)文件头504B0304
Java Class 文件头CAFEBABE
我们使用Fiddler截获浏览器的HTTP响应可以看到请求的是一个PNG图片
GET /**/bg-header.png
为了方便查看将响应头调成16进制模式。
绿色的字都是标准的HTTP响应头response head然后根据HTTP/1.1标准响应头之后跟上0D0A, 0D0A这个就是系统的换行符 是windows标准的\r\n响应头跟image的实际二进制数据间有一个空行然后跟上实际的数据可以看到蓝色里圈住的文件魔数是89504E47正是PNG的文件头。为了验证这个二进制的有效性用工具提供的更能save bytes将二进制内容存储到本地
可以看到本地文件正是这样保存的一个图片。这样一个http的图片内容就这样存到了本地浏览器缓存并由浏览器使用。