Geralmente chamamos servidores Web estáticos de sites estáticos . Sua principal característica é que todo o conteúdo do servidor já vem pronto e não requer processamento adicional no back-end. Quando enviamos uma solicitação de página da web para um servidor estático, o servidor só precisa retornar o arquivo html
correspondente com base no caminho da solicitação (URL).
Um site estático refere-se a um site inteiramente composto de páginas em formato de código HTML (um subconjunto da Standard Universal Markup Language), e todo o conteúdo está incluído em arquivos de páginas da web. Vários efeitos visuais dinâmicos também podem aparecer em páginas da web, como animações GIF, animações FLASH, legendas contínuas, etc. Os sites são compostos principalmente de páginas e códigos estáticos. Geralmente, os nomes dos arquivos são sufixados com htm, html, shtml, etc. —— A Enciclopédia Baidu
corresponde a sites estáticos e é nosso servidor web dinâmico mais comum. A maior característica desse tipo de servidor é que todos os recursos geralmente não são armazenados na forma de html
, mas requerem dados de consulta de back-end para formar uma web. página e depois devolvê-la ao usuário, o conteúdo visto por cada usuário pode ser diferente. Por exemplo, em um servidor web construído em Java
, podemos usar JSP
para unir páginas web para formar páginas específicas do usuário.
(1) As páginas da web dinâmicas são baseadas em tecnologia de banco de dados, o que pode reduzir significativamente a carga de trabalho de manutenção do site.
(2) Os sites que usam a tecnologia de páginas da web dinâmicas podem implementar mais funções, como registro de usuário, login de usuário, pesquisas on-line, gerenciamento de usuários, e pedidos. Gerenciamento, etc.;
(3) As páginas web dinâmicas não são, na verdade, arquivos de páginas web que existem independentemente no servidor. O servidor retorna uma página web completa apenas quando o usuário a solicita
. geralmente não é possível para os mecanismos de pesquisa acessar todas as páginas da web a partir do banco de dados de um site ou, devido a considerações técnicas, os spiders de pesquisa não rastreiam o conteúdo após "?" certas técnicas de promoção dos motores de busca podem se adaptar aos requisitos dos motores de busca.
(5) Os sites estáticos não estão conectados ao banco de dados, portanto, para ter o efeito de um site dinâmico, um grande número de páginas da web deve ser produzido, muitas das quais podem ser apenas páginas da web falsas e não podem realizar as funções de um site dinâmico.
——Enciclopédia Baidu
Como os servidores estáticos não requerem um banco de dados back-end, a estrutura é muito simples e muito adequada para cenários como gerenciamento de documentos e blogs. No que diz respeito aos blogs em si, acho que os sites estáticos têm as seguintes características:
exigem baixa configuração do servidor, e o servidor mais básico pode atender às necessidades de desempenho da maioria das pessoas,
a velocidade de resposta é rápida e o conteúdo está todo pronto; feito html
, que pode ser acessado diretamente Os resultados podem ser obtidos
um html
corresponde a uma url
, o conteúdo é estável e é fácil de ser recuperado pelos motores de busca
é simples de criar, bastando evitar o; arquivo de especificar o local após a configuração do servidor;
os pontos acima são todos para o sistema de blog estático. Se você usar um servidor estático puro para criar um site de grande escala de outros tipos, pode ser mais caro.
Se você deseja construir rapidamente um servidor estático, você pode usar o pacote http-server
baseado em Node.js
, que pode concluir a configuração do servidor em um minuto.
o npm i
http-server
entra na pasta do servidor e inicia o servidor
http-server -a 127.0.0.1 -p 9999
para que o servidor seja iniciado. executado.
Você pode ver todos os arquivos visitando localhost:9999
.
Se clicarmos no nome do arquivo, obteremos o arquivo correspondente. Por exemplo, se clicarmos em *.html
, obteremos a página web:
Parece um servidor FTP
, devemos parar por aí?
Não, um programador qualificado só ficará feliz se sujar as mãos! !
Podemos usar os módulos básicos integrados Node.js
para concluir a construção, portanto, não há necessidade de instalar kits de ferramentas adicionais.
A tarefa principal é criar um diretório de servidor com a seguinte estrutura:
web_server/ //Diretório raiz |- static/ |-css/ |- estilo.css //estilo |- js/ |- comum.js //js |- index.js //Página inicial |- app.js //Arquivo do servidor |- mime.json //Configuração da extensão
app.js
const http = require('http');const fs = require('fs')const url = require('url')const path = require('path')FileMimes = JSON.parse(fs.readFileSync('./mime.json').toString())http.createServer (função (req, res) { //1. Obtenha o endereço let pathname = url.parse(req.url).pathname nome do caminho = nome do caminho == '/' ? /index.html': nome do caminho deixe extname = caminho.extname (nome do caminho) //2.fs lê o arquivo if (pathname != '/favicon.ico') { fs.readFile('./static' + nome do caminho, async (err, dados) => { se (errar) { res.writeHead(404, { 'Tipo de conteúdo': 'text/html;charset="utf-8"' }) res.end(err.mensagem) retornar } se (!errar) { // 3. Retorne cabeçalhos de conteúdo diferentes para arquivos diferentes let mime = FileMimes[extname] res.writeHead(200, { 'Tipo de conteúdo': mime + ';charset="utf-8"' }) res.end(dados) } }) }}).listen(8081);console.log('Servidor rodando em http://127.0.0.1:8081/');
mime.json
{ ".323":"text/h323" , ".3gp":"vídeo/3gpp" , ".aab":"aplicativo/x-autoware-bin" , ".aam":"application/x-authoware-map" , ".aas":"application/x-autoware-seg" , ".acx":"aplicativo/internet-property-stream" , ".ai":"aplicativo/postscript" , ".aif":"áudio/x-aiff" , ".aifc":"áudio/x-aiff" , ".aiff":"áudio/x-aiff" , ".als":"áudio/X-Alpha5" , ".amc":"aplicativo/x-mpeg" , ...//É muito longo, então não vou postar aqui. O código completo está no final do artigo}
nó do servidor ./app.js
O efeito de inicialização é o seguinte:
PS E: CódigoNodedemos 3-static_web_server> node.app.js Servidor rodando em http://127.0.0.1:8081/Visite
localhost:8081
para obter a página index.html
.
também pode ser implantada em um servidor remoto
1. Compre um servidor
Os provedores de servidores atualmente populares incluem
.
- Nuvem Tencent
- Nuvem Alibaba
- Huawei Cloud
Mas agora a CSDN entrou na diversão: CSDN Cloud, a CSDN parece ser baseada na Tencent Cloud e os preços são semelhantes.
2. Compre um nome de domínio (opcional, você pode usar IP para acessá-lo diretamente)
3. Cadastro no site
4. Implantação <br/> A implantação de sites estáticos também é muito simples. Como há poucos erros e você precisa iniciar e parar o upload de novos arquivos de blog com frequência, você
pode
copiar os arquivos diretamente para o servidor e usarnode ./. aplicativo.js.
Construir um servidor estático baseado em Node.js
é muito simples. Podemos usar o pacote http-server
ou escrever código manualmente baseado em Node
.
O conteúdo principal do código manuscrito é o arquivo mime.json
, o que significa fornecer response
diferentes cabeçalhos de retorno para diferentes tipos de arquivo.
Fim do artigo
A seguir está o código mime.json
(é muito longo):
{ ".323":"texto/h323" , ".3gp":"vídeo/3gpp" , ".aab":"aplicativo/x-autoware-bin" , ".aam":"application/x-authoware-map" , ".aas":"application/x-autoware-seg" , ".acx":"aplicativo/internet-property-stream" , ".ai":"aplicativo/postscript" , ".aif":"áudio/x-aiff" , ".aifc":"áudio/x-aiff" , ".aiff":"áudio/x-aiff" , ".als":"áudio/X-Alpha5" , ".amc":"aplicativo/x-mpeg" , ".ani":"aplicativo/octeto-stream" , ".apk":"application/vnd.android.package-archive" , ".asc":"texto/simples" , ".asd":"aplicativo/astound" , ".asf":"vídeo/x-ms-asf" , ".asn":"aplicativo/astound" , ".asp":"aplicativo/x-asap" , ".asr":"vídeo/x-ms-asf" , ".asx":"vídeo/x-ms-asf" , ".au":"áudio/básico" , ".avb":"aplicativo/fluxo de octetos" , ".avi":"vídeo/x-msvídeo" , ".awb":"áudio/amr-wb" , ".axs":"aplicativo/olescript" , ".bas":"texto/simples" , ".bcpio":"aplicativo/x-bcpio" , ".bin ":"aplicativo/octeto-stream" , ".bld":"aplicativo/bld" , ".bld2":"aplicativo/bld2" , ".bmp":"imagem/bmp" , ".bpk":"aplicativo/octeto-stream" , ".bz2":"aplicativo/x-bzip2" , ".c":"texto/simples" , ".cal":"imagem/x-cals" , ".cat":"application/vnd.ms-pkiseccat" , ".ccn":"aplicativo/x-cnc" , ".cco":"aplicativo/x-cacau" , ".cdf":"aplicativo/x-cdf" , ".cer":"application/x-x509-ca-cert" , ".cgi":"magnus-internal/cgi" , ".chat":"aplicativo/x-chat" , ".class":"aplicativo/octeto-stream" , ".clp":"aplicativo/x-msclip" , ".cmx":"imagem/x-cmx" , ".co":"aplicativo/x-cult3d-object" , ".cod":"imagem/cis-cod" , ".conf":"texto/simples" , ".cpio":"aplicativo/x-cpio" , ".cpp":"texto/simples" , ".cpt":"application/mac-compactpro" , ".crd":"aplicativo/x-mscardfile" , ".crl":"aplicativo/pkix-crl" , ".crt":"application/x-x509-ca-cert" , ".csh":"aplicativo/x-csh" , ".csm":"químico/x-csml" , ".csml":"químico/x-csml" , ".css":"texto/css" , ".cur":"aplicativo/octeto-stream" , ".dcm":"x-lml/x-evm" , ".dcr":"aplicativo/diretor-x" , ".dcx":"imagem/x-dcx" , ".der":"application/x-x509-ca-cert" , ".dhtml":"texto/html" , ".dir":"aplicativo/diretor-x" , ".dll":"application/x-msdownload" , ".dmg":"aplicativo/octeto-stream" , ".dms":"aplicativo/octeto-stream" , ".doc":"aplicativo/msword" , ".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".dot":"aplicativo/msword" , ".dvi":"aplicativo/x-dvi" , ".dwf":"desenho/x-dwf" , ".dwg":"aplicativo/x-autocad" , ".dxf":"aplicativo/x-autocad" , ".dxr":"aplicativo/diretor-x" , ".ebk":"application/x-expandedbook" , ".emb":"químico/x-embl-dl-nucleotídeo" , ".embl":"químico/x-embl-dl-nucleotídeo" , ".eps":"aplicativo/postscript" , ".epub":"aplicativo/epub+zip" , ".eri":"imagem/x-eri" , ".es":"áudio/echospeech" , ".esl":"áudio/echospeech" , ".etc":"application/x-earthtime" , ".etx":"texto/x-setext" , ".evm":"x-lml/x-evm" , ".evy":"aplicativo/enviado" , ".exe":"aplicativo/octeto-stream" , ".fh4":"imagem/x-freehand" , ".fh5":"imagem/x-freehand" , ".fhc":"imagem/x-freehand" , ".fif":"aplicação/fractais" , ".flr":"x-mundo/x-vrml" , ".flv":"flv-application/octeto-stream" , ".fm":"aplicativo/x-maker" , ".fpx":"imagem/x-fpx" , ".fvi":"vídeo/isivideo" , ".gau":"entrada química/x-gaussiana" , ".gca":"aplicativo/x-gca-comprimido" , ".gdb":"x-lml/x-gdb" , ".gif":"imagem/gif" , ".gps":"aplicativo/x-gps" , ".gtar":"aplicativo/x-gtar" , ".gz":"aplicativo/x-gzip" , ".h":"texto/simples" , ".hdf":"aplicativo/x-hdf" , ".hdm":"texto/x-hdml" , ".hdml":"texto/x-hdml" , ".hlp":"aplicativo/winhlp" , ".hqx":"aplicativo/mac-binhex40" , ".hta":"aplicativo/hta" , ".htc":"texto/componente x" , ".htm":"texto/html" , ".html":"texto/html" , ".hts":"texto/html" , ".htt":"texto/webviewhtml" , ".ice":"x-conference/x-cooltalk" , ".ico":"imagem/x-icon" , ".ief":"imagem/ief" , ".ifm":"imagem/gif" , ".ifs":"imagem/ifs" , ".iii":"aplicativo/x-iphone" , ".imy":"áudio/melodia" , ".ins":"application/x-internet-signup" , ".ips":"aplicativo/x-ipscript" , ".ipx":"aplicativo/x-ipix" , ".isp":"aplicativo/x-internet-signup" , ".it":"áudio/x-mod" , ".itz":"áudio/x-mod" , ".ivr":"i-mundo/i-vrml" , ".j2k":"imagem/j2k" , ".jad":"text/vnd.sun.j2me.app-descriptor" , ".jam":"aplicativo/x-jam" , ".jar":"application/java-archive" , ".java":"texto/simples" , ".jfif":"imagem/pipeg" , ".jnlp":"aplicativo/x-java-jnlp-file" , ".jpe":"imagem/jpeg" , ".jpeg":"imagem/jpeg" , ".jpg":"imagem/jpeg" , ".jpz":"imagem/jpeg" , ".js":"aplicativo/x-javascript" , ".jwc":"aplicativo/jwc" , ".kjx":"aplicativo/x-kjx" , ".lak":"x-lml/x-lak" , ".latex":"aplicativo/x-latex" , ".lcc":"aplicativo/fastman" , ".lcl":"aplicativo/x-digitalloca" , ".lcr":"aplicativo/x-digitalloca" , ".lgh":"aplicativo/lgh" , ".lha":"application/octet-stream" , ".lml":"x-lml/x-lml" , ".lmlpack":"x-lml/x-lmlpack" , ".log":"texto/simples" , ".lsf":"vídeo/x-la-asf" , ".lsx":"vídeo/x-la-asf" , ".lzh":"aplicativo/octeto-stream" , ".m13":"aplicativo/x-msmediaview" , ".m14":"aplicativo/x-msmediaview" , ".m15":"áudio/x-mod" , ".m3u":"áudio/x-mpegurl" , ".m3url":"áudio/x-mpegurl" , ".m4a":"áudio/mp4a-latm" , ".m4b":"áudio/mp4a-latm" , ".m4p":"áudio/mp4a-latm" , ".m4u":"vídeo/vnd.mpegurl" , ".m4v":"vídeo/x-m4v" , ".ma1":"áudio/ma1" , ".ma2":"áudio/ma2" , ".ma3":"áudio/ma3" , ".ma5":"áudio/ma5" , ".man":"aplicativo/x-troff-man" , ".map":"magnus-internal/imagemap" , ".mbd":"aplicativo/mbedlet" , ".mct":"aplicativo/x-mascote" , ".mdb":"aplicativo/x-msaccess" , ".mdz":"áudio/x-mod" , ".me":"aplicativo/x-troff-me" , ".mel":"texto/x-vmel" , ".mht":"mensagem/rfc822" , ".mhtml":"mensagem/rfc822" , ".mi":"aplicativo/x-mif" , ".mid":"áudio/mid" , ".midi":"áudio/midi" , ".mif":"aplicativo/x-mif" , ".mil":"imagem/x-cals" , ".mio":"áudio/x-mio" , ".mmf":"aplicativo/x-skt-lbs" , ".mng":"vídeo/x-mng" , ".mny":"aplicativo/x-msmoney" , ".moc":"aplicativo/x-mocha" , ".mocha":"aplicativo/x-mocha" , ".mod":"áudio/x-mod" , ".mof":"aplicativo/x-yumekara" , ".mol":"químico/x-mdl-molfile" , ".mop":"química/x-mopac-input" , ".mov":"vídeo/tempo rápido" , ".movie":"video/x-sgi-movie" , ".mp2":"vídeo/mpeg" , ".mp3":"áudio/mpeg" , ".mp4":"vídeo/mp4" , ".mpa":"vídeo/mpeg" , ".mpc":"application/vnd.mpohun.certificate" , ".mpe":"vídeo/mpeg" , ".mpeg":"vídeo/mpeg" , ".mpg":"vídeo/mpeg" , ".mpg4":"vídeo/mp4" , ".mpga":"áudio/mpeg" , ".mpn":"application/vnd.mohun.application" , ".mpp":"application/vnd.ms-project" , ".mps":"aplicativo/x-mapserver" , ".mpv2":"vídeo/mpeg" , ".mrl":"texto/x-mrml" , ".mrm":"aplicativo/x-mrm" , ".ms":"aplicativo/x-troff-ms" , ".msg":"aplicativo/vnd.ms-outlook" , ".mts":"aplicativo/metastream" , ".mtx":"aplicativo/metastream" , ".mtz":"aplicativo/metastream" , ".mvb":"aplicativo/x-msmediaview" , ".mzv":"aplicativo/metastream" , ".nar":"aplicativo/zip" , ".nbmp":"imagem/nbmp" , ".nc":"aplicativo/x-netcdf" , ".ndb":"x-lml/x-ndb" , ".ndwn":"aplicativo/ndwn" , ".nif":"aplicativo/x-nif" , ".nmz":"aplicativo/x-scream" , ".nokia-op-logo":"image/vnd.nok-oplogo-color" , ".npx":"aplicativo/x-netfpx" , ".nsnd":"áudio/nsnd" , ".nva":"aplicativo/x-neva1" , ".nws":"mensagem/rfc822" , ".oda":"aplicativo/oda" , ".ogg":"áudio/ogg" , ".oom":"application/x-AtlasMate-Plugin" , ".p10":"aplicativo/pkcs10" , ".p12":"aplicativo/x-pkcs12" , ".p7b":"application/x-pkcs7-certificates" , ".p7c":"aplicativo/x-pkcs7-mime" , ".p7m":"aplicativo/x-pkcs7-mime" , ".p7r":"aplicativo/x-pkcs7-certreqresp" , ".p7s":"aplicativo/x-pkcs7-signature" , ".pac":"áudio/x-pac" , ".pae":"áudio/x-epac" , ".pan":"aplicativo/x-pan" , ".pbm":"imagem/x-portable-bitmap" , ".pcx":"imagem/x-pcx" , ".pda":"imagem/x-pda" , ".pdb":"químico/x-pdb" , ".pdf":"aplicativo/pdf" , ".pfr":"aplicativo/font-tdpfr" , ".pfx":"aplicativo/x-pkcs12" , ".pgm":"imagem/x-portable-graymap" , ".pict":"imagem/x-pict" , ".pko":"application/ynd.ms-pkipko" , ".pm":"application/x-perl" , ".pma":"aplicativo/x-perfmon" , ".pmc":"aplicativo/x-perfmon" , ".pmd":"aplicativo/x-pmd" , ".pml":"aplicativo/x-perfmon" , ".pmr":"aplicativo/x-perfmon" , ".pmw":"aplicativo/x-perfmon" , ".png":"imagem/png" , ".pnm":"imagem/x-portable-anymap" , ".pnz":"imagem/png" , ".pot,":"application/vnd.ms-powerpoint" , ".ppm":"imagem/x-portable-pixmap" , ".pps":"application/vnd.ms-powerpoint" , ".ppt":"application/vnd.ms-powerpoint" , ".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation" , ".pqf":"aplicativo/x-cprplayer" , ".pqi":"aplicativo/cprplayer" , ".prc":"aplicativo/x-prc" , ".prf":"application/pics-rules" , ".prop":"texto/simples" , ".proxy":"application/x-ns-proxy-autoconfig" , ".ps":"aplicativo/postscript" , ".ptlk":"aplicativo/listenup" , ".pub":"aplicativo/x-mspublisher" , ".pvx":"vídeo/x-pv-pvx" , ".qcp":"áudio/vnd.qcelp" , ".qt":"vídeo/quicktime" , ".qti":"imagem/x-quicktime" , ".qtif":"imagem/x-quicktime" , ".r3t":"text/vnd.rn-realtext3d" , ".ra":"audio/x-pn-realaudio" , ".ram":"audio/x-pn-realaudio" , ".rar":"aplicativo/octeto-stream" , ".ras":"imagem/x-cmu-raster" , ".rc":"texto/simples" , ".rdf":"aplicativo/rdf+xml" , ".rf":"imagem/vnd.rn-realflash" , ".rgb":"imagem/x-rgb" , ".rlf":"aplicativo/x-richlink" , ".rm":"audio/x-pn-realaudio" , ".rmf":"áudio/x-rmf" , ".rmi":"áudio/mid" , ".rmm":"audio/x-pn-realaudio" , ".rmvb":"áudio/x-pn-realaudio" , ".rnx":"application/vnd.rn-realplayer" , ".roff":"aplicativo/x-troff" , ".rp":"image/vnd.rn-realpix" , ".rpm":"audio/x-pn-realaudio-plugin" , ".rt":"text/vnd.rn-realtext" , ".rte":"x-lml/x-gps" , ".rtf":"aplicativo/rtf" , ".rtg":"aplicativo/metastream" , ".rtx":"texto/richtext" , ".rv":"video/vnd.rn-realvideo" , ".rwc":"aplicativo/x-rogerwilco" , ".s3m":"áudio/x-mod" , ".s3z":"áudio/x-mod" , ".sca":"aplicativo/x-supercard" , ".scd":"aplicativo/x-msschedule" , ".sct":"texto/scriptlet" , ".sdf":"aplicativo/pontuação eletrônica" , ".sea":"aplicativo/x-stuffit" , ".setpay":"aplicativo/set-payment-initiation" , ".setreg":"aplicativo/set-registration-initiation" , ".sgm":"texto/x-sgml" , ".sgml":"texto/x-sgml" , ".sh":"aplicativo/x-sh" , ".shar":"aplicativo/x-shar" , ".shtml":"magnus-internal/parsed-html" , ".shw":"aplicativo/apresentações" , ".si6":"imagem/si6" , ".si7":"imagem/vnd.stiwap.sis" , ".si9":"imagem/vnd.lgtwap.sis" , ".sis":"application/vnd.symbian.install" , ".sit":"aplicativo/x-stuffit" , ".skd":"aplicativo/x-Koan" , ".skm":"aplicativo/x-Koan" , ".skp":"aplicativo/x-Koan" , ".skt":"aplicativo/x-Koan" , ".slc":"aplicativo/x-salsa" , ".smd":"áudio/x-smd" , ".smi":"aplicativo/smil" , ".smil":"aplicativo/smil" , ".smp":"aplicativo/studiom" , ".smz":"áudio/x-smd" , ".snd":"áudio/básico" , ".spc":"application/x-pkcs7-certificates" , ".spl":"aplicativo/futuresplash" , ".spr":"aplicativo/x-sprite" , ".sprite":"aplicativo/x-sprite" , ".sdp":"aplicativo/sdp" , ".spt":"aplicativo/x-spt" , ".src":"aplicativo/x-wais-source" , ".sst":"application/vnd.ms-pkicertstore" , ".stk":"aplicativo/hyperstudio" , ".stl":"application/vnd.ms-pkistl" , ".stm":"texto/html" , ".svg":"imagem/svg+xml" , ".sv4cpio":"aplicativo/x-sv4cpio" , ".sv4crc":"aplicativo/x-sv4crc" , ".svf":"imagem/vnd" , ".svg":"imagem/svg+xml" , ".svh":"imagem/svh" , ".svr":"x-mundo/x-svr" , ".swf":"aplicativo/x-shockwave-flash" , ".swfl":"aplicativo/x-shockwave-flash" , ".t":"aplicativo/x-troff" , ".tad":"aplicativo/octeto-stream" , ".talk":"texto/x-fala" , ".tar":"aplicativo/x-tar" , ".taz":"aplicativo/x-tar" , ".tbp":"aplicativo/x-timbuktu" , ".tbt":"aplicativo/x-timbuktu" , ".tcl":"aplicativo/x-tcl" , ".tex":"aplicativo/x-tex" , ".texi":"aplicativo/x-texinfo" , ".texinfo":"aplicativo/x-texinfo" , ".tgz":"aplicativo/x-comprimido" , ".thm":"aplicativo/vnd.eri.thm" , ".tif":"imagem/tiff" , ".tiff":"imagem/tiff" , ".tki":"aplicativo/x-tkined" , ".tkined":"aplicativo/x-tkined" , ".toc":"aplicativo/toc" , ".toy":"imagem/brinquedo" , ".tr":"aplicativo/x-troff" , ".trk":"x-lml/x-gps" , ".trm":"aplicativo/x-msterminal" , ".tsi":"áudio/tsplayer" , ".tsp":"aplicativo/dsptype" , ".tsv":"texto/valores separados por tabulação" , ".ttf":"aplicativo/fluxo de octetos" , ".ttz":"aplicativo/t-time" , ".txt":"texto/simples" , ".uls":"texto/iuls" , ".ult":"áudio/x-mod" , ".ustar":"aplicativo/x-ustar" , ".uu":"aplicativo/x-uuencode" , ".uue":"application/x-uuencode" , ".vcd":"aplicativo/x-cdlink" , ".vcf":"texto/x-vcard" , ".vdo":"vídeo/vdo" , ".vib":"áudio/vib" , ".viv":"vídeo/vivo" , ".vivo":"vídeo/vivo" , ".vmd":"application/vocaltec-media-desc" , ".vmf":"application/vocaltec-media-file" , ".vmi":"aplicativo/x-dreamcast-vms-info" , ".vms":"aplicativo/x-dreamcast-vms" , ".vox":"áudio/voxware" , ".vqe":"audio/x-twinvq-plugin" , ".vqf":"áudio/x-twinvq" , ".vql":"áudio/x-twinvq" , ".vre":"x-mundo/x-vream" , ".vrml":"x-mundo/x-vrml" , ".vrt":"x-mundo/x-vrt" , ".vrw":"x-mundo/x-vream" , ".vts":"apostila/fórmula" , ".wav":"áudio/x-wav" , ".wax":"áudio/x-ms-wax" , ".wbmp":"imagem/vnd.wap.wbmp" , ".wcm":"application/vnd.ms-works" , ".wdb":"application/vnd.ms-works" , ".web":"application/vnd.xara" , ".wi":"imagem/wavelet" , ".wis":"application/x-InstallShield" , ".wks":"application/vnd.ms-works" , ".wm":"vídeo/x-ms-wm" , ".wma":"áudio/x-ms-wma" , ".wmd":"aplicativo/x-ms-wmd" , ".wmf":"aplicativo/x-msmetafile" , ".wml":"texto/vnd.wap.wml" , ".wmlc":"aplicativo/vnd.wap.wmlc" , ".wmls":"text/vnd.wap.wmlscript" , ".wmlsc":"application/vnd.wap.wmlscriptc" , ".wmlscript":"text/vnd.wap.wmlscript" , ".wmv":"áudio/x-ms-wmv" , ".wmx":"vídeo/x-ms-wmx" , ".wmz":"aplicativo/x-ms-wmz" , ".wpng":"imagem/x-up-wpng" , ".wps":"application/vnd.ms-works" , ".wpt":"x-lml/x-gps" , ".wri":"aplicativo/x-mswrite" , ".wrl":"x-mundo/x-vrml" , ".wrz":"x-mundo/x-vrml" , ".ws":"text/vnd.wap.wmlscript" , ".wsc":"application/vnd.wap.wmlscriptc" , ".wv":"vídeo/wavelet" , ".wvx":"vídeo/x-ms-wvx" , ".wxl":"aplicativo/x-wxl" , ".x-gzip":"aplicativo/x-gzip" , ".xaf":"x-mundo/x-vrml" , ".xar":"aplicativo/vnd.xara" , ".xbm":"imagem/x-xbitmap" , ".xdm":"aplicativo/x-xdma" , ".xdma":"aplicativo/x-xdma" , ".xdw":"application/vnd.fujixerox.docuworks" , ".xht":"aplicativo/xhtml+xml" , ".xhtm":"aplicativo/xhtml+xml" , ".xhtml":"aplicativo/xhtml+xml" , ".xla":"aplicativo/vnd.ms-excel" , ".xlc":"application/vnd.ms-excel" , ".xll":"aplicativo/x-excel" , ".xlm":"application/vnd.ms-excel" , ".xls":"aplicativo/vnd.ms-excel" , ".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlt":"aplicativo/vnd.ms-excel" , ".xlw":"aplicativo/vnd.ms-excel" , ".xm":"áudio/x-mod" , ".xml":"texto/simples", ".xml":"aplicativo/xml", ".xmz":"áudio/x-mod" , ".xof":"x-mundo/x-vrml" , ".xpi":"aplicativo/x-xpinstall" , ".xpm":"imagem/x-xpixmap" , ".xsit":"texto/xml" , ".xsl":"texto/xml" , ".xul":"texto/xul" , ".xwd":"imagem/x-xwindowdump" , ".xyz":"químico/x-pdb" , ".yz1":"aplicativo/x-yz1" , ".z":"aplicativo/x-compress" , ".zac":"aplicativo/x-zaurus-zac" , ".zip":"aplicativo/zip" , ".json":"aplicativo/json"}