当前位置: 首页 > 知识库问答 >
问题:

HTTP"Content-Type"标头的所有可能值是什么?

鲁斯伯
2023-03-14

在将其传递给HTTP请求之前,我必须验证Content-Type标头值。

是否有一个特定的列表为所有可能的值Content-Type

否则,在HTTP请求中使用内容类型之前,是否有方法验证该内容类型?

共有3个答案

曾承弼
2023-03-14

我的目标是涵盖可能的“内容类型”值的子集,您的问题似乎侧重于识别已知的内容类型。

@Jeroen RFC 1341参考很好,但是对于一个相当详尽的列表,IANA在这里保留了一个官方注册媒体类型的网页。

汤昊
2023-03-14

如RFC 1341所定义:

在RFC 822的扩展BNF表示法中,Content-Type标头字段值定义如下:

内容类型:=类型“/”子类型*[”参数]

类型:=“应用程序”/“音频”/“图像”/“消息”/“多部分”/“文本”/“视频”/x-token”

x-token:=

子类型:=令牌

参数:=属性“=”值

属性:=令牌

值:=标记/带引号的字符串

令牌:=1*

特价:= "(" / ")" / "

和一个已知的MIME类型列表,可以遵循它(或者,正如Joe所说,IANA源代码)。

正如您所看到的,列表太大,您无法对照所有列表进行验证。您可以做的是对照常规格式和type属性进行验证,以确保其正确性(选项集很小),并且只需假设其后面的内容是正确的(当然,还可以捕获实际使用时可能遇到的任何异常)。

还请注意上面的评论:

如果出于任何原因要使用另一个主要类型,则必须为其指定一个以“X-”开头的名称,以表明其非标准状态,并避免与未来的正式名称发生任何潜在冲突。

您会注意到许多HTTP请求/响应都包含某种自定义的X-标头,在验证类型时请记住这一点。

凤经国
2023-03-14

您可以在此处找到每种内容类型:http://www.iana.org/assignments/media-types/media-types.xhtml

最常见的类型有:

>

  • 类型应用

    application/java-archive
    application/EDI-X12   
    application/EDIFACT   
    application/javascript   
    application/octet-stream   
    application/ogg   
    application/pdf  
    application/xhtml+xml   
    application/x-shockwave-flash    
    application/json  
    application/ld+json  
    application/xml   
    application/zip  
    application/x-www-form-urlencoded  
    

    键入音频

    audio/mpeg   
    audio/x-ms-wma   
    audio/vnd.rn-realaudio   
    audio/x-wav   
    

    类型图像

    image/gif   
    image/jpeg   
    image/png   
    image/tiff    
    image/vnd.microsoft.icon    
    image/x-icon   
    image/vnd.djvu   
    image/svg+xml    
    

    类型多部分

    multipart/mixed    
    multipart/alternative   
    multipart/related (using by MHTML (HTML mail).)  
    multipart/form-data  
    

    键入文本

    text/css    
    text/csv    
    text/html    
    text/javascript (obsolete)    
    text/plain    
    text/xml    
    

    类型视频

    video/mpeg    
    video/mp4    
    video/quicktime    
    video/x-ms-wmv    
    video/x-msvideo    
    video/x-flv   
    video/webm   
    

    类型vnd:

    application/vnd.android.package-archive
    application/vnd.oasis.opendocument.text    
    application/vnd.oasis.opendocument.spreadsheet  
    application/vnd.oasis.opendocument.presentation   
    application/vnd.oasis.opendocument.graphics   
    application/vnd.ms-excel    
    application/vnd.openxmlformats-officedocument.spreadsheetml.sheet   
    application/vnd.ms-powerpoint    
    application/vnd.openxmlformats-officedocument.presentationml.presentation    
    application/msword   
    application/vnd.openxmlformats-officedocument.wordprocessingml.document   
    application/vnd.mozilla.xul+xml   
    

  •  类似资料:
    • Content-Type,内容类型,一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。 HTTP content-type 对照表 文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Typ

    • 问题内容: 检索的对象。此方法可以返回的所有可能值是什么?我可以使用该值来标识数据库中发生的特定错误吗(即,该值可以告诉我是否是PK违例,唯一约束或列值是否很大等)? 同样,该方法应该指示返回的是X / Open(现在称为Open Group)SQL CLI还是SQL99。唯一可能的价值应该是并且我正在获取价值。我想念什么吗? 有没有一种方法可以使用上述方法的组合来确定数据库中发生的特定错误类型?

    • 问题内容: 测试golang网络应用程序时出现问题。在已部署的版本中,nginx位于应用程序的最前面,并进行显式设置,以便所有文本内容类型都附加一个字符集声明。 在测试中,我直接打了golang应用程序,这里的内容类型没有字符集。尝试提供类似d3这样的库时,这会导致问题: 由于golang未指定字符集,因此这些字符在chrome中呈现为: 使golang http服务器在HTTP标头上输出char

    • 我正在使用ASP.NET WebApi创建一个RESTful API。我正在我的一个控制器中创建一个PUT方法,代码如下所示: 当我通过AJAX使用浏览器将其放到该位置时,它给出了以下例外情况: 标头名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpReponseMessage一起使用,内容标头与HttpContent对象一起使用。 但是不是一个完全有效的

    • 问题内容: 我正在使用OWASP ZAP在我的本地主机上进行一些渗透测试,并且不断报告此消息: Anti-MIME-Sniffing标头X-Content-Type-Options未设置为’nosniff’ 此检查特定于Internet Explorer 8和Google Chrome。如果Content- Type标头未知,请确保每个页面都设置了Content-Type标头和X-CONTENT-