- HTTP協(xié)議(HyperText Transfer Protocol,超文本傳輸協(xié)議)是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議材鹦,所有的WWW文件都必須遵守這個(gè)標(biāo)準(zhǔn)。
- HTTP是一個(gè)基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)颠蕴。
HTTP 簡介
HTTP協(xié)議是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于從萬維網(wǎng)(WWW:World Wide Web )服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議垦沉。。
HTTP是一個(gè)基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)(HTML 文件, 圖片文件, 查詢結(jié)果等)巫湘。
HTTP 工作原理
HTTP協(xié)議工作于客戶端-服務(wù)端架構(gòu)為上装悲。瀏覽器作為HTTP客戶端通過URL向HTTP服務(wù)端即WEB服務(wù)器發(fā)送所有請求。
Web服務(wù)器有:Apache服務(wù)器尚氛,IIS服務(wù)器(Internet Information Services)等诀诊。
Web服務(wù)器根據(jù)接收到的請求后,向客戶端發(fā)送響應(yīng)信息阅嘶。
HTTP默認(rèn)端口號為80属瓣,但是你也可以改為8080或者其他端口。
HTTP三點(diǎn)注意事項(xiàng):
HTTP是無連接:無連接的含義是限制每次連接只處理一個(gè)請求讯柔。服務(wù)器處理完客戶的請求抡蛙,并收到客戶的應(yīng)答后,即斷開連接魂迄。采用這種方式可以節(jié)省傳輸時(shí)間粗截。
HTTP是媒體獨(dú)立的:這意味著,只要客戶端和服務(wù)器知道如何處理的數(shù)據(jù)內(nèi)容极祸,任何類型的數(shù)據(jù)都可以通過HTTP發(fā)送慈格。客戶端以及服務(wù)器指定使用適合的MIME-type內(nèi)容類型遥金。
HTTP是無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議浴捆。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息稿械,則它必須重傳选泻,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面美莫,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快页眯。
以下圖表展示了HTTP協(xié)議通信流程:
HTTP 消息結(jié)構(gòu)
HTTP是基于客戶端/服務(wù)端(C/S)的架構(gòu)模型,通過一個(gè)可靠的鏈接來交換信息厢呵,是一個(gè)無狀態(tài)的請求/響應(yīng)協(xié)議窝撵。
一個(gè)HTTP"客戶端"是一個(gè)應(yīng)用程序(Web瀏覽器或其他任何客戶端),通過連接到服務(wù)器達(dá)到向服務(wù)器發(fā)送一個(gè)或多個(gè)HTTP的請求的目的襟铭。
一個(gè)HTTP"服務(wù)器"同樣也是一個(gè)應(yīng)用程序(通常是一個(gè)Web服務(wù)碌奉,如Apache Web服務(wù)器或IIS服務(wù)器等)短曾,通過接收客戶端的請求并向客戶端發(fā)送HTTP響應(yīng)數(shù)據(jù)。
HTTP使用統(tǒng)一資源標(biāo)識符(Uniform Resource Identifiers, URI)來傳輸數(shù)據(jù)和建立連接赐劣。
一旦建立連接后嫉拐,數(shù)據(jù)消息就通過類似Internet郵件所使用的格式[RFC5322]和多用途Internet郵件擴(kuò)展(MIME)[RFC2045]來傳送。
客戶端請求消息
客戶端發(fā)送一個(gè)HTTP請求到服務(wù)器的請求消息包括以下格式:請求行(request line)魁兼、請求頭部(header)婉徘、空行和請求數(shù)據(jù)四個(gè)部分組成,下圖給出了請求報(bào)文的一般格式咐汞。
服務(wù)器響應(yīng)消息
HTTP響應(yīng)也由四個(gè)部分組成盖呼,分別是:狀態(tài)行、消息報(bào)頭碉考、空行和響應(yīng)正文塌计。
實(shí)例
下面實(shí)例是一點(diǎn)典型的使用GET來傳遞數(shù)據(jù)的實(shí)例:
客戶端請求:
GET/hello.txt HTTP/1.1
User-Agent:curl/7.16.3libcurl/7.16.3OpenSSL/0.9.7lzlib/1.2.3
Host:www.example.com
Accept-Language:en,mi服務(wù)端響應(yīng):
HTTP/1.1200OK
Date:Mon,27Jul200912:28:53GMT
Server:ApacheLast-Modified:Wed,22Jul200919:15:56G
MTETag:"34aa387-d-1568eb00"
Accept-Ranges:bytes
Content-Length:51Vary:
Accept-EncodingContent-Type:text/plain輸出結(jié)果:
HelloWorld!Mypayload includes a trailing CRLF.
HTTP請求方法
根據(jù)HTTP標(biāo)準(zhǔn)挺身,HTTP請求可以使用多種請求方法侯谁。
HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法章钾。
序號 | 方法 | 描述 |
---|---|---|
1 | GET | 請求指定的頁面信息墙贱,并返回實(shí)體主體。 |
2 | HEAD | 類似于get請求贱傀,只不過返回的響應(yīng)中沒有具體的內(nèi)容惨撇,用于獲取報(bào)頭 |
3 | POST | 向指定資源提交數(shù)據(jù)進(jìn)行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中府寒。POST請求可能會導(dǎo)致新的資源的建立和/或已有資源的修改魁衙。 |
4 | PUT | 從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。 |
5 | DELETE | 請求服務(wù)器刪除指定的頁面株搔。 |
6 | CONNECT | HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器剖淀。 |
7 | OPTIONS | 允許客戶端查看服務(wù)器的性能。 |
8 | TRACE | 回顯服務(wù)器收到的請求纤房,主要用于測試或診斷纵隔。 |
HTTP 響應(yīng)頭信息
HTTP請求頭提供了關(guān)于請求,響應(yīng)或者其他的發(fā)送實(shí)體的信息炮姨。
在本章節(jié)中我們將具體來介紹HTTP響應(yīng)頭信息捌刮。
應(yīng)答頭說明
Allow
服務(wù)器支持哪些請求方法(如GET、POST等)舒岸。Content-Encoding
文檔的編碼(Encode)方法绅作。只有在解碼之后才可以得到Content-Type頭指定的內(nèi)容類型。利用gzip壓縮文檔能夠顯著地減少HTML文檔的下載時(shí)間蛾派。Java的GZIPOutputStream可以很方便地進(jìn)行g(shù)zip壓縮俄认,但只有Unix上的Netscape和Windows上的IE 4堕扶、IE 5才支持它。因此梭依,Servlet應(yīng)該通過查看Accept-Encoding頭(即request.getHeader("Accept-Encoding"))檢查瀏覽器是否支持gzip稍算,為支持gzip的瀏覽器返回經(jīng)gzip壓縮的HTML頁面,為其他瀏覽器返回普通頁面役拴。Content-Length
表示內(nèi)容長度糊探。只有當(dāng)瀏覽器使用持久HTTP連接時(shí)才需要這個(gè)數(shù)據(jù)。如果你想要利用持久連接的優(yōu)勢河闰,可以把輸出文檔寫入 ByteArrayOutputStream科平,完成后查看其大小,然后把該值放入Content-Length頭姜性,最后通過byteArrayStream.writeTo(response.getOutputStream()發(fā)送內(nèi)容瞪慧。Content-Type
表示后面的文檔屬于什么MIME類型。Servlet默認(rèn)為text/plain部念,但通常需要顯式地指定為text/html弃酌。由于經(jīng)常要設(shè)置Content-Type,因此HttpServletResponse提供了一個(gè)專用的方法setContentType儡炼。Date
當(dāng)前的GMT時(shí)間妓湘。你可以用setDateHeader來設(shè)置這個(gè)頭以避免轉(zhuǎn)換時(shí)間格式的麻煩。Expires
應(yīng)該在什么時(shí)候認(rèn)為文檔已經(jīng)過期乌询,從而不再緩存它榜贴?Last-Modified
文檔的最后改動(dòng)時(shí)間∶锰铮客戶可以通過If-Modified-Since請求頭提供一個(gè)日期唬党,該請求將被視為一個(gè)條件GET,只有改動(dòng)時(shí)間遲于指定時(shí)間的文檔才會返回鬼佣,否則返回一個(gè)304(Not Modified)狀態(tài)驶拱。Last-Modified也可用setDateHeader方法來設(shè)置。Location
表示客戶應(yīng)當(dāng)?shù)侥睦锶ヌ崛∥臋n沮趣。Location通常不是直接設(shè)置的屯烦,而是通過HttpServletResponse的sendRedirect方法,該方法同時(shí)設(shè)置狀態(tài)代碼為302房铭。Refresh
表示瀏覽器應(yīng)該在多少時(shí)間之后刷新文檔驻龟,以秒計(jì)。除了刷新當(dāng)前文檔之外缸匪,你還可以通過setHeader("Refresh", "5; URL=http://host/path")
讓瀏覽器讀取指定的頁面翁狐。
注意這種功能通常是通過設(shè)置HTML頁面HEAD區(qū)的<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://host/path">
實(shí)現(xiàn),這是因?yàn)榱枋撸詣?dòng)刷新或重定向?qū)τ谀切┎荒苁褂肅GI或Servlet的HTML編寫者十分重要露懒。但是闯冷,對于Servlet來說,直接設(shè)置Refresh頭更加方便懈词。
注意Refresh的意義是"N秒之后刷新本頁面或訪問指定頁面"蛇耀,而不是"每隔N秒刷新本頁面或訪問指定頁面"。因此坎弯,連續(xù)刷新要求每次都發(fā)送一個(gè)Refresh頭纺涤,而發(fā)送204狀態(tài)代碼則可以阻止瀏覽器繼續(xù)刷新,不管是使用Refresh頭還是<META HTTP-EQUIV="Refresh" ...>
抠忘。
注意Refresh頭不屬于HTTP 1.1正式規(guī)范的一部分撩炊,而是一個(gè)擴(kuò)展,但Netscape和IE都支持它崎脉。
Server
服務(wù)器名字拧咳。Servlet一般不設(shè)置這個(gè)值,而是由Web服務(wù)器自己設(shè)置囚灼。Set-Cookie
設(shè)置和頁面關(guān)聯(lián)的Cookie骆膝。Servlet不應(yīng)使用response.setHeader("Set-Cookie", ...)
,而是應(yīng)使用HttpServletResponse提供的專用方法addCookie啦撮。參見下文有關(guān)Cookie設(shè)置的討論谭网。WWW-Authenticate
客戶應(yīng)該在Authorization頭中提供什么類型的授權(quán)信息?在包含401(Unauthorized)狀態(tài)行的應(yīng)答中這個(gè)頭是必需的赃春。例如,response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"")
劫乱。
注意Servlet一般不進(jìn)行這方面的處理织中,而是讓W(xué)eb服務(wù)器的專門機(jī)制來控制受密碼保護(hù)頁面的訪問(例如.htaccess)。
HTTP狀態(tài)碼
當(dāng)瀏覽者訪問一個(gè)網(wǎng)頁時(shí)衷戈,瀏覽者的瀏覽器會向網(wǎng)頁所在服務(wù)器發(fā)出請求狭吼。當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會返回一個(gè)包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求殖妇。
HTTP狀態(tài)碼的英文為HTTP Status Code刁笙。
下面是常見的HTTP狀態(tài)碼:
- 200 - 請求成功
- 301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
- 404 - 請求的資源(網(wǎng)頁等)不存在
- 500 - 內(nèi)部服務(wù)器錯(cuò)誤
HTTP狀態(tài)碼分類
HTTP狀態(tài)碼由三個(gè)十進(jìn)制數(shù)字組成,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類型谦趣,后兩個(gè)數(shù)字沒有分類的作用疲吸。HTTP狀態(tài)碼共分為5種類型:
HTTP狀態(tài)碼分類
分類 | 分類描述 |
---|---|
1** | 信息,服務(wù)器收到請求前鹅,需要請求者繼續(xù)執(zhí)行操作 |
2** | 成功摘悴,操作被成功接收并處理 |
3** | 重定向,需要進(jìn)一步的操作以完成請求 |
4** | 客戶端錯(cuò)誤舰绘,請求包含語法錯(cuò)誤或無法完成請求 |
5** | 服務(wù)器錯(cuò)誤蹂喻,服務(wù)器在處理請求的過程中發(fā)生了錯(cuò)誤 |
HTTP狀態(tài)碼列表:
HTTP狀態(tài)碼列表
狀態(tài)碼 | 狀態(tài)碼英文名稱 | 中文描述 |
---|---|---|
100 | Continue | 繼續(xù)葱椭。客戶端應(yīng)繼續(xù)其請求 |
101 | Switching Protocols | 切換協(xié)議口四。服務(wù)器根據(jù)客戶端的請求切換協(xié)議孵运。只能切換到更高級的協(xié)議贰锁,例如怕品,切換到HTTP的新版本協(xié)議 |
200 | OK | 請求成功。一般用于GET與POST請求 |
201 | Created | 已創(chuàng)建罢杉。成功請求并創(chuàng)建了新的資源 |
202 | Accepted | 已接受粪小。已經(jīng)接受請求大磺,但未處理完成 |
203 | Non-Authoritative Information | 非授權(quán)信息。請求成功探膊。但返回的meta信息不在原始的服務(wù)器杠愧,而是一個(gè)副本 |
204 | No Content | 無內(nèi)容。服務(wù)器成功處理逞壁,但未返回內(nèi)容流济。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔 |
205 | Reset Content | 重置內(nèi)容腌闯。服務(wù)器處理成功绳瘟,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖∽丝ィ可通過此返回碼清除瀏覽器的表單域 |
206 | Partial Content | 部分內(nèi)容糖声。服務(wù)器成功處理了部分GET請求 |
300 | Multiple Choices | 多種選擇。請求的資源可包括多個(gè)位置分瘦,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇 |
301 | Moved Permanently | 永久移動(dòng)蘸泻。請求的資源已被永久的移動(dòng)到新URI,返回信息會包括新的URI嘲玫,瀏覽器會自動(dòng)定向到新URI悦施。今后任何新的請求都應(yīng)使用新的URI代替 |
302 | Found | 臨時(shí)移動(dòng)。與301類似去团。但資源只是臨時(shí)被移動(dòng)抡诞。客戶端應(yīng)繼續(xù)使用原有URI |
303 | See Other | 查看其它地址土陪。與301類似昼汗。使用GET和POST請求查看 |
304 | Not Modified | 未修改。所請求的資源未修改旺坠,服務(wù)器返回此狀態(tài)碼時(shí)乔遮,不會返回任何資源∪∪校客戶端通常會緩存訪問過的資源蹋肮,通過提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源 |
305 | Use Proxy | 使用代理出刷。所請求的資源必須通過代理訪問 |
306 | Unused | 已經(jīng)被廢棄的HTTP狀態(tài)碼 |
307 | Temporary Redirect | 臨時(shí)重定向。與302類似坯辩。使用GET請求重定向 |
400 | Bad Request | 客戶端請求的語法錯(cuò)誤馁龟,服務(wù)器無法理解 |
401 | Unauthorized | 請求要求用戶的身份認(rèn)證 |
402 | Payment Required | 保留,將來使用 |
403 | Forbidden | 服務(wù)器理解請求客戶端的請求漆魔,但是拒絕執(zhí)行此請求 |
404 | Not Found | 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)坷檩。通過此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請求的資源無法找到"的個(gè)性頁面 |
405 | Method Not Allowed | 客戶端請求中的方法被禁止 |
406 | Not Acceptable | 服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求 |
407 | Proxy Authentication Required | 請求要求代理的身份認(rèn)證改抡,與401類似矢炼,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán) |
408 | Request Time-out | 服務(wù)器等待客戶端發(fā)送的請求時(shí)間過長,超時(shí) |
409 | Conflict | 服務(wù)器完成客戶端的PUT請求是可能返回此代碼阿纤,服務(wù)器處理請求時(shí)發(fā)生了沖突 |
410 | Gone | 客戶端請求的資源已經(jīng)不存在句灌。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼欠拾,網(wǎng)站設(shè)計(jì)人員可通過301代碼指定資源的新位置 |
411 | Length Required | 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息 |
412 | Precondition Failed | 客戶端請求信息的先決條件錯(cuò)誤 |
413 | Request Entity Too Large | 由于請求的實(shí)體過大胰锌,服務(wù)器無法處理,因此拒絕請求藐窄。為防止客戶端的連續(xù)請求资昧,服務(wù)器可能會關(guān)閉連接。如果只是服務(wù)器暫時(shí)無法處理荆忍,則會包含一個(gè)Retry-After的響應(yīng)信息 |
414 | Request-URI Too Large | 請求的URI過長(URI通常為網(wǎng)址)格带,服務(wù)器無法處理 |
415 | Unsupported Media Type | 服務(wù)器無法處理請求附帶的媒體格式 |
416 | Requested range not satisfiable | 客戶端請求的范圍無效 |
417 | Expectation Failed | 服務(wù)器無法滿足Expect的請求頭信息 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤,無法完成請求 |
501 | Not Implemented | 服務(wù)器不支持請求的功能东揣,無法完成請求 |
502 | Bad Gateway | 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器践惑,從遠(yuǎn)端服務(wù)器接收到了一個(gè)無效的請求 |
503 | Service Unavailable | 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無法處理客戶端的請求嘶卧。延時(shí)的長度可包含在服務(wù)器的Retry-After頭信息中 |
504 | Gateway Time-out | 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請求 |
505 | HTTP Version not supported | 服務(wù)器不支持請求的HTTP協(xié)議的版本凉袱,無法完成處理 |
HTTP content-type
Content-Type芥吟,內(nèi)容類型,一般是指網(wǎng)頁中存在的Content-Type专甩,用于定義網(wǎng)絡(luò)文件的類型和網(wǎng)頁的編碼钟鸵,決定瀏覽器將以什么形式、什么編碼讀取這個(gè)文件涤躲,這就是經(jīng)彻姿#看到一些Asp網(wǎng)頁點(diǎn)擊的結(jié)果卻是下載到的一個(gè)文件或一張圖片的原因。
HTTP content-type 對照表
文件擴(kuò)展名 | Content-Type(Mime-Type) | 文件擴(kuò)展名 | Content-Type(Mime-Type) |
---|---|---|---|
.*( 二進(jìn)制流种樱,不知道下載文件類型) | application/octet-stream | .tif | image/tiff |
.001 | application/x-001 | .301 | application/x-301 |
.323 | text/h323 | .906 | application/x-906 |
.907 | drawing/907 | .a11 | application/x-a11 |
.acp | audio/x-mei-aac | .ai | application/postscript |
.aif | audio/aiff | .aifc | audio/aiff |
.aiff | audio/aiff | .anv | application/x-anv |
.asa | text/asa | .asf | video/x-ms-asf |
.asp | text/asp | .asx | video/x-ms-asf |
.au | audio/basic | .avi | video/avi |
.awf | application/vnd.adobe.workflow | .biz | text/xml |
.bmp | application/x-bmp | .bot | application/x-bot |
.c4t | application/x-c4t | .c90 | application/x-c90 |
.cal | application/x-cals | .cat | application/vnd.ms-pki.seccat |
.cdf | application/x-netcdf | .cdr | application/x-cdr |
.cel | application/x-cel | .cer | application/x-x509-ca-cert |
.cg4 | application/x-g4 | .cgm | application/x-cgm |
.cit | application/x-cit | .class | java/* |
.cml | text/xml | .cmp | application/x-cmp |
.cmx | application/x-cmx | .cot | application/x-cot |
.crl | application/pkix-crl | .crt | application/x-x509-ca-cert |
.csi | application/x-csi | .css | text/css |
.cut | application/x-cut | .dbf | application/x-dbf |
.dbm | application/x-dbm | .dbx | application/x-dbx |
.dcd | text/xml | .dcx | application/x-dcx |
.der | application/x-x509-ca-cert | .dgn | application/x-dgn |
.dib | application/x-dib | .dll | application/x-msdownload |
.doc | application/msword | .dot | application/msword |
.drw | application/x-drw | .dtd | text/xml |
.dwf | Model/vnd.dwf | .dwf | application/x-dwf |
.dwg | application/x-dwg | .dxb | application/x-dxb |
.dxf | application/x-dxf | .edn | application/vnd.adobe.edn |
.emf | application/x-emf | .eml | message/rfc822 |
.ent | text/xml | .epi | application/x-epi |
.eps | application/x-ps | .eps | application/postscript |
.etd | application/x-ebx | .exe | application/x-msdownload |
.fax | image/fax | .fdf | application/vnd.fdf |
.fif | application/fractals | .fo | text/xml |
.frm | application/x-frm | .g4 | application/x-g4 |
.gbr | application/x-gbr | . | application/x- |
.gif | image/gif | .gl2 | application/x-gl2 |
.gp4 | application/x-gp4 | .hgl | application/x-hgl |
.hmr | application/x-hmr | .hpg | application/x-hpgl |
.hpl | application/x-hpl | .hqx | application/mac-binhex40 |
.hrf | application/x-hrf | .hta | application/hta |
.htc | text/x-component | .htm | text/html |
.html | text/html | .htt | text/webviewhtml |
.htx | text/html | .icb | application/x-icb |
.ico | image/x-icon | .ico | application/x-ico |
.iff | application/x-iff | .ig4 | application/x-g4 |
.igs | application/x-igs | .iii | application/x-iphone |
.img | application/x-img | .ins | application/x-internet-signup |
.isp | application/x-internet-signup | .IVF | video/x-ivf |
.java | java/* | .jfif | image/jpeg |
.jpe | image/jpeg | .jpe | application/x-jpe |
.jpeg | image/jpeg | .jpg | image/jpeg |
.jpg | application/x-jpg | .js | application/x-javascript |
.jsp | text/html | .la1 | audio/x-liquid-file |
.lar | application/x-laplayer-reg | .latex | application/x-latex |
.lavs | audio/x-liquid-secure | .lbm | application/x-lbm |
.lmsff | audio/x-la-lms | .ls | application/x-javascript |
.ltr | application/x-ltr | .m1v | video/x-mpeg |
.m2v | video/x-mpeg | .m3u | audio/mpegurl |
.m4e | video/mpeg4 | .mac | application/x-mac |
.man | application/x-troff-man | .math | text/xml |
.mdb | application/msaccess | .mdb | application/x-mdb |
.mfp | application/x-shockwave-flash | .mht | message/rfc822 |
.mhtml | message/rfc822 | .mi | application/x-mi |
.mid | audio/mid | .midi | audio/mid |
.mil | application/x-mil | .mml | text/xml |
.mnd | audio/x-musicnet-download | .mns | audio/x-musicnet-stream |
.mocha | application/x-javascript | .movie | video/x-sgi-movie |
.mp1 | audio/mp1 | .mp2 | audio/mp2 |
.mp2v | video/mpeg | .mp3 | audio/mp3 |
.mp4 | video/mpeg4 | .mpa | video/x-mpg |
.mpd | application/vnd.ms-project | .mpe | video/x-mpeg |
.mpeg | video/mpg | .mpg | video/mpg |
.mpga | audio/rn-mpeg | .mpp | application/vnd.ms-project |
.mps | video/x-mpeg | .mpt | application/vnd.ms-project |
.mpv | video/mpg | .mpv2 | video/mpeg |
.mpw | application/vnd.ms-project | .mpx | application/vnd.ms-project |
.mtx | text/xml | .mxp | application/x-mmxp |
.net | image/pnetvue | .nrf | application/x-nrf |
.nws | message/rfc822 | .odc | text/x-ms-odc |
.out | application/x-out | .p10 | application/pkcs10 |
.p12 | application/x-pkcs12 | .p7b | application/x-pkcs7-certificates |
.p7c | application/pkcs7-mime | .p7m | application/pkcs7-mime |
.p7r | application/x-pkcs7-certreqresp | .p7s | application/pkcs7-signature |
.pc5 | application/x-pc5 | .pci | application/x-pci |
.pcl | application/x-pcl | .pcx | application/x-pcx |
application/pdf | application/pdf | ||
.pdx | application/vnd.adobe.pdx | .pfx | application/x-pkcs12 |
.pgl | application/x-pgl | .pic | application/x-pic |
.pko | application/vnd.ms-pki.pko | .pl | application/x-perl |
.plg | text/html | .pls | audio/scpls |
.plt | application/x-plt | .png | image/png |
.png | application/x-png | .pot | application/vnd.ms-powerpoint |
.ppa | application/vnd.ms-powerpoint | .ppm | application/x-ppm |
.pps | application/vnd.ms-powerpoint | .ppt | application/vnd.ms-powerpoint |
.ppt | application/x-ppt | .pr | application/x-pr |
.prf | application/pics-rules | .prn | application/x-prn |
.prt | application/x-prt | .ps | application/x-ps |
.ps | application/postscript | .ptn | application/x-ptn |
.pwz | application/vnd.ms-powerpoint | .r3t | text/vnd.rn-realtext3d |
.ra | audio/vnd.rn-realaudio | .ram | audio/x-pn-realaudio |
.ras | application/x-ras | .rat | application/rat-file |
.rdf | text/xml | .rec | application/vnd.rn-recording |
.red | application/x-red | .rgb | application/x-rgb |
.rjs | application/vnd.rn-realsystem-rjs | .rjt | application/vnd.rn-realsystem-rjt |
.rlc | application/x-rlc | .rle | application/x-rle |
.rm | application/vnd.rn-realmedia | .rmf | application/vnd.adobe.rmf |
.rmi | audio/mid | .rmj | application/vnd.rn-realsystem-rmj |
.rmm | audio/x-pn-realaudio | .rmp | application/vnd.rn-rn_music_package |
.rms | application/vnd.rn-realmedia-secure | .rmvb | application/vnd.rn-realmedia-vbr |
.rmx | application/vnd.rn-realsystem-rmx | .rnx | application/vnd.rn-realplayer |
.rp | image/vnd.rn-realpix | .rpm | audio/x-pn-realaudio-plugin |
.rsml | application/vnd.rn-rsml | .rt | text/vnd.rn-realtext |
.rtf | application/msword | .rtf | application/x-rtf |
.rv | video/vnd.rn-realvideo | .sam | application/x-sam |
.sat | application/x-sat | .sdp | application/sdp |
.sdw | application/x-sdw | .sit | application/x-stuffit |
.slb | application/x-slb | .sld | application/x-sld |
.slk | drawing/x-slk | .smi | application/smil |
.smil | application/smil | .smk | application/x-smk |
.snd | audio/basic | .sol | text/plain |
.sor | text/plain | .spc | application/x-pkcs7-certificates |
.spl | application/futuresplash | .spp | text/xml |
.ssm | application/streamingmedia | .sst | application/vnd.ms-pki.certstore |
.stl | application/vnd.ms-pki.stl | .stm | text/html |
.sty | application/x-sty | .svg | text/xml |
.swf | application/x-shockwave-flash | .tdf | application/x-tdf |
.tg4 | application/x-tg4 | .tga | application/x-tga |
.tif | image/tiff | .tif | application/x-tif |
.tiff | image/tiff | .tld | text/xml |
.top | drawing/x-top | .torrent | application/x-bittorrent |
.tsd | text/xml | .txt | text/plain |
.uin | application/x-icq | .uls | text/iuls |
.vcf | text/x-vcard | .vda | application/x-vda |
.vdx | application/vnd.visio | .vml | text/xml |
.vpg | application/x-vpeg005 | .vsd | application/vnd.visio |
.vsd | application/x-vsd | .vss | application/vnd.visio |
.vst | application/vnd.visio | .vst | application/x-vst |
.vsw | application/vnd.visio | .vsx | application/vnd.visio |
.vtx | application/vnd.visio | .vxml | text/xml |
.wav | audio/wav | .wax | audio/x-ms-wax |
.wb1 | application/x-wb1 | .wb2 | application/x-wb2 |
.wb3 | application/x-wb3 | .wbmp | image/vnd.wap.wbmp |
.wiz | application/msword | .wk3 | application/x-wk3 |
.wk4 | application/x-wk4 | .wkq | application/x-wkq |
.wks | application/x-wks | .wm | video/x-ms-wm |
.wma | audio/x-ms-wma | .wmd | application/x-ms-wmd |
.wmf | application/x-wmf | .wml | text/vnd.wap.wml |
.wmv | video/x-ms-wmv | .wmx | video/x-ms-wmx |
.wmz | application/x-ms-wmz | .wp6 | application/x-wp6 |
.wpd | application/x-wpd | .wpg | application/x-wpg |
.wpl | application/vnd.ms-wpl | .wq1 | application/x-wq1 |
.wr1 | application/x-wr1 | .wri | application/x-wri |
.wrk | application/x-wrk | .ws | application/x-ws |
.ws2 | application/x-ws | .wsc | text/scriptlet |
.wsdl | text/xml | .wvx | video/x-ms-wvx |
.xdp | application/vnd.adobe.xdp | .xdr | text/xml |
.xfd | application/vnd.adobe.xfd | .xfdf | application/vnd.adobe.xfdf |
.xhtml | text/html | .xls | application/vnd.ms-excel |
.xls | application/x-xls | .xlw | application/x-xlw |
.xml | text/xml | .xpl | audio/scpls |
.xq | text/xml | .xql | text/xml |
.xquery | text/xml | .xsd | text/xml |
.xsl | text/xml | .xslt | text/xml |
.xwd | application/x-xwd | .x_b | application/x-x_b |
.sis | application/vnd.symbian.install | .sisx | application/vnd.symbian.install |
.x_t | application/x-x_t | .ipa | application/vnd.iphone |
.apk | application/vnd.android.package-archive | .xap | application/x-silverlight-app |