MIME与文件Magic

Thank Zhihao Tao for your hard work. The document spent countless nights and weekends, using his hard work to make it convenient for everyone.
If you have any questions, please send a email to zhihao.tao@outlook.com


1. MIME

MIME(Multipurpose Internet Mail Extensions多用途互联网邮件扩展类型)是描述消息内容类型的因特网标准。

MIME不属于邮件传输协议,其对SMTP等协议的扩展(例如,SMTP协议在传输报文时,只能够传输7位的ASCII格式的报文,不支持那些不使用7位ASCII格式的语种,同时也不支持语音和视频数据的传输)。

MIME是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

MIME是一个互联网标准,扩展了电子邮件标准,使其能够支持:

  • 非ASCII字符文本;
  • 非文本格式附件(二进制、声音、图像等);
  • 由多部分(multiple parts)组成的消息体;
  • 包含非ASCII字符的头信息(Header information)。

1.1 RFC

  • RFC-822 Standard for ARPA Internet text messages
  • RFC-2045 MIME Part 1: Format of Internet Message Bodies
  • RFC-2046 MIME Part 2: Media Types
  • RFC-2047 MIME Part 3: Header Extensions for Non-ASCII Text
  • RFC-2048 MIME Part 4: Registration Procedures
  • RFC-2049 MIME Part 5: Conformance Criteria and Examples

2. 文件Magic

  • 基于stat的系统测试。

    • 程序检查文件是否为空
    • 或者是否是某种特殊文件。(套接字、符号链接或命名管道FIFO)
  • magic测试用于检查具有特定固定格式数据的文件。

    • 典型的例子是二进制可执行(编译程序)a.out文件,其格式在include目录中的<elf.h><a.out.h><exec.h>中定义。
    • 这些文件在文件开头附近的特定位置有一个magic,它告诉UNIX操作系统该文件是一个二进制可执行文件,以及其中的几种类型。
    • magic的概念已经通过扩展应用到数据文件中。任何在文件中具有固定小偏移量的固定标识符的文件通常都可以用这种方式描述。识别这些文件的信息从编译的/usr/share/misc/magic文件/usr/share/file/magic.mgc帮助手册
#格式: offset type test message
# C
0   regex   \^#include  C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^char      C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^double        C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^extern        C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^float     C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^struct        C source text
!:mime  text/x-c
!:strength / 2
0   regex   \^union     C source text
!:mime  text/x-c
!:strength / 2
0   search/8192 main(       C source text
!:mime  text/x-c
!:strength / 2
  • 如果一个文件与magic文件中的任何条目都不匹配,则会检查它是否是文本文件。
    • ASCIIISO-8859-x等字符集可以通过构成每组可打印文本的不同字节范围和序列进行区分。如果文件通过了这些测试中的任何一个,则会报告其字符集。

man file
man magic

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phantasms

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值