只是一个好奇的问题,计算机如何确定某个文件的文件类型。例如,计算机如何确定这个页面是 html 类型?每个文件的二进制文件中是否有标头信息?内存分配?它如何知道这些?
答案1
如果您说的是“扩展名”,那么它就在文件的名称中。
但是,操作系统会使用这些信息来启动某个应用程序,例如,对于以 .html 结尾的文件,Safari/Chrome/Firefox 会使用它。
然后,应用程序使用文件的标题(前几个字节)来查看是否可以显示它。它还可能以输出垃圾数据的方式对其进行解释。例如,如果您重命名扩展名为 .txt 的图像 (.jpg) 文件,操作系统将尝试打开默认文本编辑器 (NotePad/TextEdit) 来打开它。编辑器将尝试将其解释为文本文件,并且不会向您显示图像。
您还提到了“此页面”。此页面通过 HTTP 从 superuser.com 传输到您的浏览器。HTTP 标头应该提到它发送的数据是 text/html。浏览器会将其解释为 HTML 并呈现它。话虽如此,浏览器非常复杂且宽容。因此,即使标头没有说明类型是什么,它也会尝试猜测。