亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
Guides Access control CORS Authentication Browser detection using the user agent Caching Caching FAQ Compression Conditional requests Connection management in HTTP 1.x Content negotiation Content negotiation: List of default Accept values Cookies CSP Messages Overview Protocol upgrade mechanism Proxy servers and tunneling Proxy servers and tunneling: Proxy Auto-Configuration (PAC) file Public Key Pinning Range requests Redirections Resources and specifications Resources and URIs Response codes Server-Side Access Control Session Guides: Basics Basics of HTTP Choosing between www and non-www URLs Data URIs Evolution of HTTP Identifying resources on the Web MIME Types MIME types: Complete list of MIME types CSP Content-Security-Policy Content-Security-Policy-Report-Only CSP: base-uri CSP: block-all-mixed-content CSP: child-src CSP: connect-src CSP: default-src CSP: font-src CSP: form-action CSP: frame-ancestors CSP: frame-src CSP: img-src CSP: manifest-src CSP: media-src CSP: object-src CSP: plugin-types CSP: referrer CSP: report-uri CSP: require-sri-for CSP: sandbox CSP: script-src CSP: style-src CSP: upgrade-insecure-requests CSP: worker-src Headers Accept Accept-Charset Accept-Encoding Accept-Language Accept-Ranges Access-Control-Allow-Credentials Access-Control-Allow-Headers Access-Control-Allow-Methods Access-Control-Allow-Origin Access-Control-Expose-Headers Access-Control-Max-Age Access-Control-Request-Headers Access-Control-Request-Method Age Allow Authorization Cache-Control Connection Content-Disposition Content-Encoding Content-Language Content-Length Content-Location Content-Range Content-Type Cookie Cookie2 Date DNT ETag Expect Expires Forwarded From Headers Host If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Keep-Alive Large-Allocation Last-Modified Location Origin Pragma Proxy-Authenticate Proxy-Authorization Public-Key-Pins Public-Key-Pins-Report-Only Range Referer Referrer-Policy Retry-After Server Set-Cookie Set-Cookie2 SourceMap Strict-Transport-Security TE Tk Trailer Transfer-Encoding Upgrade-Insecure-Requests User-Agent User-Agent: Firefox Vary Via Warning WWW-Authenticate X-Content-Type-Options X-DNS-Prefetch-Control X-Forwarded-For X-Forwarded-Host X-Forwarded-Proto X-Frame-Options X-XSS-Protection Methods CONNECT DELETE GET HEAD Methods OPTIONS PATCH POST PUT Status 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Payload Too Large 414 URI Too Long 415 Unsupported Media Type 416 Range Not Satisfiable 417 Expectation Failed 426 Upgrade Required 428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 451 Unavailable For Legal Reasons 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Timeout 505 HTTP Version Not Supported 511 Network Authentication Required Status
characters

MIME 類(lèi)型的機(jī)理是告訴客戶(hù)端傳輸?shù)母鞣N文件:文件名的擴(kuò)展具有在網(wǎng)絡(luò)上沒(méi)有任何意義。因此,正確設(shè)置服務(wù)器非常重要,以便在每個(gè)文檔中傳輸正確的MIME類(lèi)型。瀏覽器通常使用 MIME 類(lèi)型來(lái)確定在獲取資源時(shí)要執(zhí)行的默認(rèn)操作。

文檔種類(lèi)很多,所以有很多種 MIME 類(lèi)型。在本文中,我們將列出 Web 開(kāi)發(fā)最重要的內(nèi)容,但您可以在此專(zhuān)用文章中找到適用于文檔類(lèi)型的內(nèi)容:完整的 MIME 類(lèi)型列表。

MIME 類(lèi)型不是傳達(dá)文檔類(lèi)型信息的唯一方式:

  • 有時(shí)會(huì)使用名稱(chēng)后綴,特別是在 Microsoft Windows 系統(tǒng)上。并非所有操作系統(tǒng)都認(rèn)為這些后綴有意義(特別是 Linux 和 Mac OS),并且像外部 MIME 類(lèi)型一樣,不能保證它們是正確的。

  • 魔術(shù)數(shù)字(Magic numbers)。不同類(lèi)型的文件的語(yǔ)法通過(guò)查看結(jié)構(gòu)允許文件類(lèi)型推斷。例如,每個(gè) GIF 文件以47 49 46 38十六進(jìn)制值 GIF89或帶有89 50 4E 47。PNG 的 PNG 文件開(kāi)頭。并非所有類(lèi)型的文件都有幻數(shù),所以這也不是100%可靠的系統(tǒng)。

在 Web 上,只有 MIME 類(lèi)型是相關(guān)的,應(yīng)該仔細(xì)設(shè)置。瀏覽器和服務(wù)器通常使用基于后綴或幻數(shù)的啟發(fā)式方法來(lái)定義MIME類(lèi)型,檢查一致性,或僅在提供通用類(lèi)型時(shí)查找正確的 MIME 類(lèi)型。

語(yǔ)法

一般結(jié)構(gòu)

type/subtype

MIME 類(lèi)型的結(jié)構(gòu)非常簡(jiǎn)單; 它由一個(gè)類(lèi)型和一個(gè)子類(lèi)型組成,兩個(gè)字符串由'/'分隔。沒(méi)有空間是允許的。該類(lèi)型代表類(lèi)別,可以是離散類(lèi)型或多部分類(lèi)型。該亞型是特定于每個(gè)類(lèi)型。

MIME 類(lèi)型不區(qū)分大小寫(xiě),但傳統(tǒng)上全部以小寫(xiě)形式。

離散類(lèi)型

text/plain
text/html
image/jpeg
image/png
audio/mpeg
audio/ogg
audio/*
video/mp4
application/octet-stream
…

離散類(lèi)型表示文檔的類(lèi)別,它可以是以下之一:

類(lèi)型

描述

典型的亞型的例子

文本

代表任何包含文本且理論上可讀的文檔

text / plain,text / html,text / css,text / javascript

圖片

代表任何類(lèi)型的圖像。不包括視頻,雖然動(dòng)畫(huà)圖像(如動(dòng)畫(huà)GIF)用圖像類(lèi)型描述。

圖像/ gif,圖像/ png,圖像/ jpeg,圖像/ bmp,圖像/ webp

音頻

代表任何類(lèi)型的音頻文件

音頻/ midi,音頻/ mpeg,音頻/ webm,音頻/ ogg,音頻/ wav

視頻

代表任何類(lèi)型的視頻文件

視頻/ webm,視頻/ ogg

應(yīng)用

代表任何種類(lèi)的二進(jìn)制數(shù)據(jù)。

application / octet-stream,application / pkcs12,application / vnd.mspowerpoint,application / xhtml + xml,application / xml,application / pdf

對(duì)于沒(méi)有特定子類(lèi)型的文本文檔,text/plain應(yīng)該使用。同樣,application/octet-stream應(yīng)該使用沒(méi)有特定或已知子類(lèi)型的二進(jìn)制文檔。

多部分類(lèi)型

multipart/form-data
multipart/byteranges

多部分類(lèi)型表示文檔類(lèi)別在不同部分中被破壞,通常具有不同的 MIME 類(lèi)型。這是表示復(fù)合文檔的一種方式。除了multipart/form-data用于 HTML 表單POST方法的關(guān)聯(lián),并且multipart/byteranges206 Partial Content狀態(tài)消息一起使用以?xún)H發(fā)送整個(gè)文檔的子集之外,HTTP 不以特定方式處理多部分文檔:消息是簡(jiǎn)單地傳輸?shù)綖g覽器(這可能會(huì)提出一個(gè)另存為窗口,不知道如何內(nèi)聯(lián)顯示文檔。)

Web 開(kāi)發(fā)人員的重要 MIME 類(lèi)型

application/octet-stream

這是二進(jìn)制文件的默認(rèn)值。由于它確實(shí)意味著未知的二進(jìn)制   文件,因此瀏覽器通常不會(huì)自動(dòng)執(zhí)行它,甚至不會(huì)詢(xún)問(wèn)是否應(yīng)該執(zhí)行它。他們把它看作Content-Disposition是用值設(shè)置標(biāo)題attachment并提出一個(gè)“另存為”文件。

text/plain

這是文本文件的默認(rèn)值。即使它確實(shí)意味著未知的文本文件,瀏覽器也會(huì)假定它們可以顯示它。

請(qǐng)注意,text/plain這并不意味著任何類(lèi)型的文本數(shù)據(jù)。如果他們期望獲得特定類(lèi)型的文本數(shù)據(jù),他們可能不會(huì)認(rèn)為它是匹配的。特別是如果他們text/plain從一個(gè)<link>聲明一個(gè) CSS 文件的元素下載文件,他們將不會(huì)將其識(shí)別為有效的 CSS 文件(如果提供的話)text/plaintext/css必須使用 CSS MIME 類(lèi)型。

text/css

任何必須在 Web 頁(yè)面中解釋的 CSS 文件都必須是這些text/css文件。通常,服務(wù)器無(wú)法識(shí)別帶有.css后綴的文件作為 CSS 文件,而是使用text/plainapplication/octet-streamMIME 類(lèi)型發(fā)送它們:在這些情況下,它們不會(huì)被大多數(shù)瀏覽器識(shí)別為 CSS 文件,并且將被忽略。必須特別注意以正確的類(lèi)型提供CSS文件。

text/html

所有的 HTML 內(nèi)容都應(yīng)該使用這種類(lèi)型。XHTML 的替代 MIME 類(lèi)型(如application/xml+html)現(xiàn)在大多無(wú)用(HTML5 統(tǒng)一了這些格式))。

圖像類(lèi)型

只有少數(shù)幾種圖像類(lèi)型被廣泛認(rèn)可,并被認(rèn)為是 Web 安全的,可以在網(wǎng)頁(yè)中使用:

MIME類(lèi)型

圖像類(lèi)型

圖像/ GIF

GIF 圖像(無(wú)損壓縮,由 PNG 取代)

圖像/ JPEG

JPEG 圖像

圖像/ PNG

PNG 圖像

圖像/ SVG + xml的

SVG 圖像(矢量圖像)

有一個(gè)關(guān)于將 WebP(image/webp)添加到此列表的討論,但是由于每種新的圖像類(lèi)型都會(huì)增加代碼庫(kù)的大小,這可能會(huì)引入新的安全問(wèn)題,因此瀏覽器供應(yīng)商在接受它時(shí)非常謹(jǐn)慎。

其他類(lèi)型的圖像可以在 Web 文檔中找到。例如,許多瀏覽器支持 favicon 或類(lèi)似的圖標(biāo)圖像類(lèi)型。特別是,ICO 圖像在image/x-iconMIME 類(lèi)型的上下文中得到支持。

音頻和視頻類(lèi)型

與圖像類(lèi)似,HTML 并未定義一組支持的類(lèi)型以<audio><video>元素一起使用,因此只能在Web上使用相對(duì)較小的一組類(lèi)型。HTML音頻和視頻元素支持的媒體格式解釋了可以使用的編解碼器和容器格式。

這種文件的 MIME 類(lèi)型主要表示容器格式,Web 上下文中最常用的格式是:

MIME類(lèi)型

音頻或視頻類(lèi)型

音頻/波形音頻/ wav音頻/ x-wav音頻/ x-pn-wav

WAVE 容器格式的音頻文件。PCM 音頻編解碼器(WAVE 編解碼器“1”)通常受支持,但其他編解碼器的支持更有限(如果有)。

音頻/ WEBM

WebM 容器格式的音頻文件。Vorbis 和 Opus 是最常見(jiàn)的音頻編解碼器。

視頻/ WEBM

可能帶有音頻的視頻文件,采用 WebM 容器格式。VP8 和 VP9 是其中最常用的視頻編解碼器; Vorbis 和 Opus 是最常見(jiàn)的音頻編解碼器。

音頻/ OGG

OGG 容器格式的音頻文件。Vorbis 是這種容器中最常用的音頻編解碼器。

視頻/ OGG

OGG 容器格式的視頻文件,可能帶有音頻。Theora 是其中使用的通常的視頻編解碼器; Vorbis 是通常的音頻編解碼器。

應(yīng)用程序/ OGG

使用 OGG 容器格式的音頻或視頻文件。Theora 是其中使用的通常的視頻編解碼器; Vorbis 是通常的音頻編解碼器。

multipart/form-data

multipart/form-data完整的 HTML 表單的內(nèi)容從瀏覽器發(fā)送到服務(wù)器時(shí),可以使用該類(lèi)型。作為正式的多部分文檔,它由不同部分組成,由邊界(以雙短劃線開(kāi)始的字符串)分隔'--'。每個(gè)部分本身就是一個(gè)實(shí)體,具有自己的HTTP頭部,Content-Disposition并且Content-Type用于文件上傳字段,而最常見(jiàn)的部分(Content-Length由于邊界線用作分隔符而被忽略)。

Content-Type: multipart/form-data; boundary=aBoundaryString(other headers associated with the multipart document as a whole)--aBoundaryString
Content-Disposition: form-data; name="myFile"; filename="img.jpg"Content-Type: image/jpeg(data)--aBoundaryString
Content-Disposition: form-data; name="myField"(data)--aBoundaryString(more subparts)--aBoundaryString--

以下形式:

<form action="http://localhost:8000/" method="post" enctype="multipart/form-data">  <input type="text" name="myTextField">  <input type="checkbox" name="myCheckBox">Check</input>  <input type="file" name="myFile">  <button>Send the file</button></form>

將發(fā)送此消息:

POST / HTTP/1.1Host: localhost:8000User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=---------------------------8721656041911415653955004498
Content-Length: 465

-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myTextField"

Test
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myCheckBox"

on
-----------------------------8721656041911415653955004498
Content-Disposition: form-data; name="myFile"; filename="test.txt"
Content-Type: text/plain

Simple file.
-----------------------------8721656041911415653955004498--

multipart/byteranges

multipart/byterangesMIME 類(lèi)型在發(fā)送部分響應(yīng)返回給瀏覽器的上下文中使用。當(dāng)206 Partial Content被發(fā)送的狀態(tài)碼,此 MIME 類(lèi)型用于指示該文件是由幾個(gè)部分組成,一個(gè)用于每個(gè)所請(qǐng)求的范圍的。像其他多部分類(lèi)型一樣,Content-Type使用該boundary指令來(lái)定義邊界字符串。每個(gè)不同的部分都有一個(gè)Content-Type標(biāo)題,其中包含文檔的實(shí)際類(lèi)型以及Content-Range它們所代表的范圍。

HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Type: multipart/byteranges; boundary=3d6b6a416f9b5
Content-Length: 385--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 100-200/1270eta http-equiv="Content-type" content="text/html; charset=utf-8" />    <meta name="vieport" content--3d6b6a416f9b5
Content-Type: text/html
Content-Range: bytes 300-400/1270-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: "Open Sans", "Helvetica--3d6b6a416f9b5--

設(shè)置正確的 MIME 類(lèi)型的重要性

大多數(shù) Web 服務(wù)器使用默認(rèn)的application/octet-streamMIME 類(lèi)型發(fā)送未知類(lèi)型的資源。出于安全原因,大多數(shù)瀏覽器不允許為這些資源設(shè)置自定義默認(rèn)操作,強(qiáng)制用戶(hù)將其存儲(chǔ)到磁盤(pán)以使用它。以下文件類(lèi)型會(huì)出現(xiàn)一些常見(jiàn)的錯(cuò)誤服務(wù)器配置:

  • RAR 編碼的文件。在這種情況下,理想的做法是設(shè)置編碼文件的真實(shí)類(lèi)型; 這通常是不可能的(因?yàn)榉?wù)器可能不知道這些文件可能包含多種不同類(lèi)型的資源)。在這種情況下,配置服務(wù)器發(fā)送application/x-rar-compressedMIME 類(lèi)型,用戶(hù)不會(huì)為它們定義有用的默認(rèn)操作。

  • 音頻和視頻文件。只有具有正確 MIME 類(lèi)型的資源才會(huì)被識(shí)別并播放<video>或播放<audio>。務(wù)必使用正確的音頻和視頻類(lèi)型

  • 專(zhuān)有文件類(lèi)型。提供專(zhuān)有文件類(lèi)型時(shí)要特別注意。避免使用,application/octet-stream因?yàn)樘厥馓幚硎遣豢赡艿模捍蠖鄶?shù)瀏覽器不允許為這種通用 MIME 類(lèi)型定義默認(rèn)行為(如“在 Word 中打開(kāi)”).MIME 嗅探在沒(méi)有 MIME 類(lèi)型的情況下,或者在其他客戶(hù)端認(rèn)為它們?cè)O(shè)置不正確,瀏覽器可能會(huì)進(jìn)行 MIME 嗅探,這是通過(guò)查看資源來(lái)猜測(cè)正確的 MIME 類(lèi)型。每個(gè)瀏覽器在不同的情況下執(zhí)行此操作。這種做法存在一些安全問(wèn)題,因?yàn)橐恍?MIME 類(lèi)型代表可執(zhí)行內(nèi)容而其他 MIME 類(lèi)型不代表可執(zhí) 服務(wù)器可以阻止 MIME 嗅探通過(guò)發(fā)送X-Content-Type-Options沿Content-Type。見(jiàn)還

Previous article: Next article: