Generalmente llamamos a los servidores web estáticos sitios web estáticos . Su característica principal es que todo el contenido del servidor está listo para usar y no requiere procesamiento adicional en el back-end. Cuando enviamos una solicitud de página web a un servidor estático, el servidor solo necesita devolver el archivo html
correspondiente según nuestra ruta de solicitud (URL).
Un sitio web estático se refiere a un sitio web que está compuesto enteramente por páginas con formato de código HTML (un subconjunto del lenguaje de marcado universal estándar) y todo el contenido está incluido en archivos de páginas web. También pueden aparecer varios efectos dinámicos visuales en las páginas web, como animaciones GIF, animaciones FLASH, subtítulos continuos, etc. Los sitios web se componen principalmente de páginas y códigos estáticos. Generalmente, los nombres de los archivos tienen los sufijos htm, html, shtml, etc. —— La Enciclopedia Baidu
corresponde a sitios web estáticos y es nuestro servidor web dinámico más común. La característica más importante de este tipo de servidor es que todos los recursos generalmente no se almacenan en forma de html
, sino que requieren datos de consulta de back-end para formar una web. página y luego devolverla al usuario, el contenido visto por cada usuario puede ser diferente. Por ejemplo, en un servidor web creado en Java
, podemos usar JSP
para unir páginas web y formar páginas específicas del usuario.
(1) Las páginas web dinámicas se basan en tecnología de bases de datos, lo que puede reducir en gran medida la carga de trabajo del mantenimiento del sitio web
(2) Los sitios web que utilizan tecnología de páginas web dinámicas pueden implementar más funciones, como registro de usuarios, inicio de sesión de usuarios, encuestas en línea, gestión de usuarios, y gestión de pedidos, etc.;
(3
) Las páginas web dinámicas no son en realidad archivos de páginas web que existen de forma independiente en el servidor. El servidor devuelve una página web completa solo cuando el usuario la solicita.
Las páginas web generalmente no son posibles para los motores de búsqueda. Acceder a todas las páginas web desde la base de datos de un sitio web o, debido a consideraciones técnicas, las arañas de búsqueda no rastrean el contenido después de "?" en la URL. Ciertas técnicas a la hora de promocionar los motores de búsqueda pueden adaptarse a los requisitos de los motores de búsqueda.
(5) Los sitios web estáticos no están conectados a la base de datos, por lo que para tener el efecto de un sitio web dinámico, se deben producir una gran cantidad de páginas web, muchas de las cuales solo pueden ser páginas web falsas y no pueden realizar las funciones de un sitio web dinámico en absoluto.
——Baidu Encyclopedia
Dado que los servidores estáticos no requieren una base de datos de back-end, la estructura es muy simple y muy adecuada para escenarios como la gestión de documentos y los blogs. En lo que respecta a los blogs en sí, creo que los sitios web estáticos tienen las siguientes características:
requieren una configuración de servidor baja y el servidor más básico puede satisfacer las necesidades de rendimiento de la mayoría de las personas,
la velocidad de respuesta es rápida y el contenido está listo; creado html
, al que se puede acceder directamente Los resultados se pueden obtener;
un html
corresponde a una url
, el contenido es estable y los motores de búsqueda lo recuperan fácilmente,
es simple de crear y solo necesita evitarlo; El archivo especifica la ubicación después de configurar el servidor;
los puntos anteriores son todos para el sistema de blog estático. Si usa un servidor estático puro para crear un sitio web a gran escala de otros tipos, puede ser más costoso.
Si desea construir rápidamente un servidor estático, puede usar el paquete http-server
basado en Node.js
, que puede completar la configuración del servidor en un minuto. Los pasos son los siguientes:
npm i
http-server
ingresa a la carpeta del servidor e inicia el servidor
http-server -a 127.0.0.1 -p 9999
para que el servidor se inicie. El directorio raíz es el directorio donde está el comando del servidor. ejecutado.
Puede ver todos los archivos visitando localhost:9999
. Aquí está el contenido de mis archivos:
Si hacemos clic en el nombre del archivo, obtendremos el archivo correspondiente. Por ejemplo, si hacemos clic en *.html
, obtendremos la página web:
Esto parece un servidor FTP
, ¿deberíamos detenernos ahí?
No, ¡un programador cualificado sólo será feliz si tiene las manos sucias! !
Podemos utilizar los módulos integrados básicos Node.js
para completar la construcción, por lo que no es necesario instalar kits de herramientas adicionales.
El trabajo principal es crear un directorio de servidor con la siguiente estructura:
web_server/ //Directorio raíz |- estático/ |-css/ | |- estilo.css //estilo |- js/ |- común.js //js | |- index.js //Página de inicio |- app.js //Archivo de servidor |- mime.json //Configuración de extensión
app.js
const http = require('http');const fs = require('fs')const url = require('url')const ruta = require('path')FileMimes = JSON.parse(fs.readFileSync('./mime.json').toString())http.createServer (función (req, res) { //1. Obtener la dirección let nombre_ruta = url.parse(req.url).nombre_ruta nombre de ruta = nombre de ruta == '/' ? '/index.html' : nombre de ruta let extname = ruta.extname(nombre de ruta) //2.fs lee el archivo if (nombre de ruta! = '/favicon.ico') { fs.readFile('./static' + nombre de ruta, async (err, datos) => { si (errar) { res.writeHead(404, { 'Tipo de contenido': 'text/html;charset="utf-8"' }) res.end(error.mensaje) devolver } si (!err) { // 3. Devuelve diferentes encabezados de contenido para diferentes archivos let mime = FileMimes[extname] res.writeHead(200, { 'Tipo de contenido': mime + ';charset="utf-8"' }) res.end(datos) } }) }}).listen(8081);console.log('Servidor ejecutándose en http://127.0.0.1:8081/');
mime.json
{ ".323":"text/h323", ".3gp":"vídeo/3gpp" , ".aab":"aplicación/x-autoware-bin", ".aam":"aplicación/x-autoware-map" , ".aas":"aplicación/x-autoware-seg", ".acx":"aplicación/flujo-de-propiedades-de-internet" , ".ai":"aplicación/posdata" , ".aif":"audio/x-aiff" , ".aifc":"audio/x-aiff" , ".aiff":"audio/x-aiff" , ".als":"audio/X-Alpha5" , ".amc":"aplicación/x-mpeg" , ... // Es demasiado largo, así que no lo publicaré aquí. El código completo se encuentra al final del artículo}
nodo del servidor ./app.js
El efecto de inicio es el siguiente:
PS E:. CódigoNododemos 3-static_web_server> nodo . app.js Servidor ejecutándose en http://127.0.0.1:8081/Visite
localhost:8081
para obtener la página index.html
.
también se puede implementar en un servidor remoto
1. Compre un servidor
Los proveedores de servidores más populares actualmente incluyen
.
- Nube Tencent
- Nube de Alibaba
- Huawei Cloud
Pero ahora CSDN se ha unido a la diversión: CSDN Cloud, CSDN parece estar basado en Tencent Cloud y los precios son similares.
2. Compra un nombre de dominio (opcional, puedes usar IP para acceder directamente)
3. Registro del sitio web
4. Implementación <br/> La implementación de sitios web estáticos también es muy simple. Dado que hay pocos errores y es necesario iniciar y detener la carga de nuevos archivos de blog con frecuencia, puede
copiar
los archivos directamente al servidor y luego usarnode ./. aplicación.js.
Construir un servidor estático basado en Node.js
es muy simple. Podemos usar el paquete http-server
o escribir código a mano basado en Node
.
El contenido principal del código escrito a mano es el archivo mime.json
, lo que significa dar response
diferentes encabezados de retorno para diferentes tipos de archivos.
Fin del artículo
El siguiente es el código mime.json
(es demasiado largo):
{ ".323": "texto/h323", ".3gp":"vídeo/3gpp" , ".aab":"aplicación/x-autoware-bin", ".aam":"aplicación/x-autoware-map" , ".aas":"aplicación/x-autoware-seg", ".acx":"aplicación/flujo-de-propiedades-de-internet" , ".ai":"aplicación/posdata" , ".aif":"audio/x-aiff" , ".aifc":"audio/x-aiff" , ".aiff":"audio/x-aiff" , ".als":"audio/X-Alpha5" , ".amc":"aplicación/x-mpeg" , ".ani":"aplicación/flujo de octetos", ".apk":"aplicación/vnd.android.package-archive" , ".asc":"texto/sin formato", ".asd":"aplicación/asombro" , ".asf":"vídeo/x-ms-asf" , ".asn":"aplicación/asombro" , ".asp":"aplicación/x-lo antes posible" , ".asr":"vídeo/x-ms-asf" , ".asx": "vídeo/x-ms-asf", ".au":"audio/básico" , ".avb":"aplicación/octeto-stream" , ".avi":"video/x-msvideo" , ".awb":"audio/amr-wb" , ".axs":"aplicación/olescript" , ".bas":"texto/sin formato" , ".bcpio":"aplicación/x-bcpio" , ".bin ":"aplicación/octeto-stream" , ".bld":"aplicación/bld" , ".bld2":"aplicación/bld2" , ".bmp":"imagen/bmp" , ".bpk":"aplicación/octeto-stream" , ".bz2": "aplicación/x-bzip2", ".c":"texto/sin formato", ".cal":"imagen/x-cals" , ".cat":"aplicación/vnd.ms-pkisecat" , ".ccn":"aplicación/x-cnc" , ".cco":"aplicación/x-cacao" , ".cdf":"aplicación/x-cdf" , ".cer":"aplicación/x-x509-ca-cert" , ".cgi":"magnus-interno/cgi" , ".chat":"aplicación/x-chat" , ".class":"aplicación/octeto-stream" , ".clp":"aplicación/x-msclip" , ".cmx":"imagen/x-cmx" , ".co":"aplicación/x-cult3d-objeto", ".cod":"imagen/cis-cod" , ".conf":"texto/sin formato", ".cpio":"aplicación/x-cpio" , ".cpp":"texto/sin formato", ".cpt":"aplicación/mac-compactpro" , ".crd":"aplicación/x-mscardfile" , ".crl":"aplicación/pkix-crl" , ".crt":"aplicación/x-x509-ca-cert" , ".csh":"aplicación/x-csh" , ".csm":"químico/x-csml" , ".csml":"químico/x-csml" , ".css":"texto/css" , ".cur":"aplicación/octeto-stream" , ".dcm":"x-lml/x-evm" , ".dcr":"aplicación/x-director" , ".dcx":"imagen/x-dcx" , ".der":"aplicación/x-x509-ca-cert" , ".dhtml":"texto/html" , ".dir":"aplicación/x-director" , ".dll":"aplicación/x-msdescargar" , ".dmg":"aplicación/octeto-stream" , ".dms":"aplicación/octeto-stream" , ".doc":"aplicación/msword" , ".docx":"aplicación/vnd.openxmlformats-officedocument.wordprocessingml.document", ".dot":"aplicación/msword" , ".dvi":"aplicación/x-dvi" , ".dwf":"dibujo/x-dwf" , ".dwg":"aplicación/x-autocad" , ".dxf":"aplicación/x-autocad" , ".dxr":"aplicación/x-director" , ".ebk":"aplicación/librox-expandido" , ".emb":"químico/x-embl-dl-nucleótido" , ".embl":"químico/x-embl-dl-nucleótido", ".eps":"solicitud/posdata" , ".epub":"aplicación/epub+zip" , ".eri": "imagen/x-eri" , ".es":"audio/ecodiscurso" , ".esl":"audio/echospeech" , ".etc":"aplicación/x-earthtime" , ".etx":"texto/x-setext" , ".evm":"x-lml/x-evm" , ".evy":"solicitud/enviado" , ".exe":"aplicación/octeto-stream" , ".fh4":"imagen/x-freehand" , ".fh5":"imagen/x-freehand" , ".fhc":"imagen/x-freehand" , ".fif":"aplicación/fractales" , ".flr":"x-mundo/x-vrml" , ".flv":"aplicación-flv/flujo-octeto" , ".fm":"aplicación/x-maker" , ".fpx":"imagen/x-fpx" , ".fvi":"video/isivideo" , ".gau":"química/entrada-x-gaussiana", ".gca":"aplicación/x-gca-comprimido", ".gdb":"x-lml/x-gdb" , ".gif":"imagen/gif" , ".gps":"aplicación/x-gps" , ".gtar":"aplicación/x-gtar" , ".gz":"aplicación/x-gzip" , ".h":"texto/sin formato" , ".hdf":"aplicación/x-hdf" , ".hdm":"texto/x-hdml" , ".hdml":"texto/x-hdml" , ".hlp":"aplicación/winhlp" , ".hqx":"aplicación/mac-binhex40", ".hta":"aplicación/hta" , ".htc":"texto/componente x" , ".htm":"texto/html" , ".html":"texto/html" , ".hts": "texto/html", ".htt":"texto/webviewhtml" , ".ice":"x-conferencia/x-cooltalk" , ".ico":"imagen/icono x" , ".ief":"imagen/ief" , ".ifm":"imagen/gif" , ".ifs":"imagen/ifs" , ".iii":"aplicación/x-iphone" , ".imy":"audio/melodía" , ".ins":"aplicación/x-internet-signup" , ".ips":"aplicación/x-ipscript" , ".ipx":"aplicación/x-ipix" , ".isp":"aplicación/x-internet-signup" , ".it":"audio/x-mod" , ".itz":"audio/x-mod" , ".ivr":"i-mundo/i-vrml" , ".j2k":"imagen/j2k" , ".jad":"text/vnd.sun.j2me.app-descriptor", ".jam":"aplicación/x-jam" , ".jar":"aplicación/archivo-java" , ".java": "texto/sin formato", ".jfif":"imagen/pipeg" , ".jnlp":"aplicación/archivo-x-java-jnlp", ".jpe":"imagen/jpeg" , ".jpeg":"imagen/jpeg" , ".jpg": "imagen/jpeg", ".jpz":"imagen/jpeg" , ".js":"aplicación/x-javascript" , ".jwc":"aplicación/jwc" , ".kjx":"aplicación/x-kjx" , ".lak":"x-lml/x-lak" , ".latex":"aplicación/x-latex" , ".lcc":"aplicación/fastman" , ".lcl":"aplicación/x-digitalloca" , ".lcr":"aplicación/x-digitalloca" , ".lgh":"aplicación/lgh" , ".lha":"aplicación/octeto-stream" , ".lml":"x-lml/x-lml" , ".lmlpack":"x-lml/x-lmlpack" , ".log":"texto/sin formato" , ".lsf":"video/x-la-asf" , ".lsx":"video/x-la-asf" , ".lzh":"aplicación/flujo de octetos" , ".m13": "aplicación/x-msmediaview", ".m14":"aplicación/x-msmediaview" , ".m15":"audio/x-mod" , ".m3u":"audio/x-mpegurl" , ".m3url":"audio/x-mpegurl" , ".m4a": "audio/mp4a-latm", ".m4b":"audio/mp4a-latm" , ".m4p": "audio/mp4a-latm", ".m4u":"vídeo/vnd.mpegurl" , ".m4v":"vídeo/x-m4v" , ".ma1":"audio/ma1" , ".ma2":"audio/ma2" , ".ma3":"audio/ma3" , ".ma5":"audio/ma5" , ".man":"aplicación/x-troff-man" , ".map":"magnus-interno/imagemap" , ".mbd":"aplicación/mbedlet" , ".mct":"aplicación/x-mascota" , ".mdb":"aplicación/x-msaccess" , ".mdz":"audio/x-mod" , ".me":"aplicación/x-troff-me", ".mel":"texto/x-vmel" , ".mht": "mensaje/rfc822", ".mhtml": "mensaje/rfc822", ".mi":"aplicación/x-mif" , ".mid":"audio/medios" , ".midi": "audio/midi" , ".mif":"aplicación/x-mif" , ".mil":"imagen/x-cals" , ".mio":"audio/x-mio" , ".mmf":"aplicación/x-skt-lbs" , ".mng":"vídeo/x-mng" , ".mny":"aplicación/x-msmoney" , ".moc":"aplicación/x-mocha" , ".mocha":"aplicación/x-mocha" , ".mod":"audio/x-mod" , ".mof":"aplicación/x-yumekara" , ".mol":"químico/x-mdl-molfile" , ".mop":"químico/entrada-x-mopac" , ".mov":"vídeo/quicktime" , ".movie":"video/x-sgi-movie" , ".mp2": "vídeo/mpeg", ".mp3": "audio/mpeg", ".mp4": "vídeo/mp4", ".mpa": "vídeo/mpeg", ".mpc":"aplicación/vnd.mpohun.certificado", ".mpe": "vídeo/mpeg", ".mpeg": "vídeo/mpeg", ".mpg": "vídeo/mpeg", ".mpg4": "vídeo/mp4", ".mpga": "audio/mpeg", ".mpn":"aplicación/vnd.mophun.aplicación", ".mpp":"aplicación/vnd.ms-proyecto", ".mps":"aplicación/x-mapserver" , ".mpv2": "vídeo/mpeg", ".mrl":"texto/x-mrml" , ".mrm":"aplicación/x-mrm" , ".ms":"aplicación/x-troff-ms" , ".msg":"aplicación/vnd.ms-outlook", ".mts":"aplicación/metastream" , ".mtx":"aplicación/metastream" , ".mtz":"aplicación/metastream" , ".mvb":"aplicación/x-msmediaview" , ".mzv":"aplicación/metastream" , ".nar":"aplicación/zip" , ".nbmp":"imagen/nbmp" , ".nc":"aplicación/x-netcdf" , ".ndb":"x-lml/x-ndb" , ".ndwn":"aplicación/ndwn" , ".nif":"aplicación/x-nif" , ".nmz":"aplicación/x-scream" , ".nokia-op-logo":"imagen/vnd.nok-oplogo-color" , ".npx": "aplicación/x-netfpx", ".nsnd":"audio/nsnd" , ".nva":"aplicación/x-neva1" , ".nws": "mensaje/rfc822", ".oda":"aplicación/oda" , ".ogg":"audio/ogg" , ".oom":"aplicación/x-AtlasMate-Plugin" , ".p10":"aplicación/pkcs10" , ".p12":"aplicación/x-pkcs12" , ".p7b":"aplicación/certificados x-pkcs7", ".p7c":"aplicación/x-pkcs7-mime" , ".p7m":"aplicación/x-pkcs7-mime" , ".p7r":"aplicación/x-pkcs7-certreqresp" , ".p7s":"aplicación/firma-x-pkcs7" , ".pac":"audio/x-pac" , ".pae":"audio/x-epac" , ".pan":"aplicación/x-pan" , ".pbm":"imagen/x-portable-bitmap" , ".pcx":"imagen/x-pcx" , ".pda":"imagen/x-pda" , ".pdb":"químico/x-pdb" , ".pdf":"aplicación/pdf" , ".pfr":"aplicación/font-tdpfr" , ".pfx":"aplicación/x-pkcs12" , ".pgm":"imagen/x-portable-graymap" , ".pict":"imagen/x-pict" , ".pko":"aplicación/ynd.ms-pkipko", ".pm":"aplicación/x-perl" , ".pma":"aplicación/x-perfmon" , ".pmc":"aplicación/x-perfmon" , ".pmd":"aplicación/x-pmd" , ".pml":"aplicación/x-perfmon" , ".pmr":"aplicación/x-perfmon" , ".pmw":"aplicación/x-perfmon" , ".png":"imagen/png" , ".pnm":"imagen/x-portable-anymap" , ".pnz":"imagen/png" , ".pot,":"aplicación/vnd.ms-powerpoint", ".ppm":"imagen/x-portable-pixmap" , ".pps":"aplicación/vnd.ms-powerpoint", ".ppt":"aplicación/vnd.ms-powerpoint", ".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation", ".pqf":"aplicación/x-cpplayer" , ".pqi":"aplicación/cpplayer" , ".prc":"aplicación/x-prc" , ".prf":"aplicación/reglas-de-fotos" , ".prop":"texto/sin formato" , ".proxy":"aplicación/x-ns-proxy-autoconfig", ".ps":"solicitud/posdata" , ".ptlk":"aplicación/escucha" , ".pub":"aplicación/x-mspublisher", ".pvx":"vídeo/x-pv-pvx" , ".qcp":"audio/vnd.qcelp" , ".qt":"vídeo/tiempo rápido" , ".qti":"imagen/x-quicktime" , ".qtif":"imagen/x-quicktime" , ".r3t":"texto/vnd.rn-realtext3d" , ".ra":"audio/x-pn-realaudio" , ".ram":"audio/x-pn-realaudio", ".rar":"aplicación/octeto-stream" , ".ras":"imagen/x-cmu-raster" , ".rc": "texto/sin formato", ".rdf":"aplicación/rdf+xml" , ".rf":"imagen/vnd.rn-realflash", ".rgb":"imagen/x-rgb" , ".rlf":"aplicación/x-richlink" , ".rm": "audio/x-pn-realaudio", ".rmf":"audio/x-rmf" , ".rmi": "audio/medios", ".rmm":"audio/x-pn-realaudio" , ".rmvb":"audio/x-pn-realaudio" , ".rnx":"aplicación/vnd.rn-realplayer" , ".roff":"aplicación/x-troff" , ".rp":"imagen/vnd.rn-realpix" , ".rpm":"audio/x-pn-realaudio-plugin" , ".rt":"texto/vnd.rn-realtext" , ".rte":"x-lml/x-gps" , ".rtf":"aplicación/rtf" , ".rtg":"aplicación/metastream" , ".rtx": "texto/texto enriquecido", ".rv":"video/vnd.rn-realvideo" , ".rwc":"aplicación/x-rogerwilco" , ".s3m":"audio/x-mod" , ".s3z":"audio/x-mod" , ".sca":"aplicación/x-supercard" , ".scd":"aplicación/x-msschedule" , ".sct":"texto/scriptlet" , ".sdf":"aplicación/e-score" , ".sea":"aplicación/x-stuffit" , ".setpay":"aplicación/establecer-inicio-de-pago" , ".setreg":"aplicación/establecer-inicio-de-registro" , ".sgm":"texto/x-sgml" , ".sgml":"texto/x-sgml" , ".sh":"aplicación/x-sh" , ".shar":"aplicación/x-shar" , ".shtml": "magnus-internal/parsed-html", ".shw":"aplicación/presentaciones" , ".si6":"imagen/si6" , ".si7":"imagen/vnd.stiwap.sis" , ".si9": "imagen/vnd.lgtwap.sis", ".sis":"aplicación/vnd.symbian.install" , ".sit":"aplicación/x-stuffit" , ".skd":"aplicación/x-Koan" , ".skm":"aplicación/x-Koan" , ".skp":"aplicación/x-Koan" , ".skt":"aplicación/x-Koan" , ".slc":"aplicación/x-salsa" , ".smd":"audio/x-smd" , ".smi":"aplicación/sonrisa" , ".smil":"aplicación/sonrisa" , ".smp":"aplicación/estudio" , ".smz": "audio/x-smd" , ".snd":"audio/básico" , ".spc":"aplicación/certificados x-pkcs7", ".spl":"aplicación/futurosplash" , ".spr":"aplicación/x-sprite" , ".sprite":"aplicación/x-sprite" , ".sdp":"aplicación/sdp" , ".spt":"aplicación/x-spt" , ".src":"aplicación/x-wais-source" , ".sst":"aplicación/vnd.ms-pkicertstore" , ".stk":"aplicación/hiperestudio" , ".stl":"aplicación/vnd.ms-pkistl" , ".stm":"texto/html" , ".svg":"imagen/svg+xml" , ".sv4cpio":"aplicación/x-sv4cpio" , ".sv4crc":"aplicación/x-sv4crc" , ".svf":"imagen/vnd" , ".svg":"imagen/svg+xml" , ".svh":"imagen/svh" , ".svr":"x-mundo/x-svr" , ".swf":"aplicación/x-shockwave-flash" , ".swfl":"aplicación/x-shockwave-flash" , ".t":"aplicación/x-troff" , ".tad":"aplicación/octeto-stream" , ".talk":"texto/x-voz" , ".tar":"aplicación/x-tar" , ".taz":"aplicación/x-tar" , ".tbp":"aplicación/x-tombuctú" , ".tbt":"aplicación/x-tombuctú" , ".tcl":"aplicación/x-tcl" , ".tex":"aplicación/x-tex" , ".texi":"aplicación/x-texinfo" , ".texinfo":"aplicación/x-texinfo" , ".tgz":"aplicación/x-comprimido" , ".thm":"aplicación/vnd.eri.thm" , ".tif":"imagen/tiff" , ".tiff":"imagen/tiff" , ".tki":"aplicación/x-tkined" , ".tkined":"aplicación/x-tkined" , ".toc":"aplicación/toc" , ".toy":"imagen/juguete" , ".tr":"aplicación/x-troff" , ".trk":"x-lml/x-gps" , ".trm":"aplicación/x-msterminal" , ".tsi":"audio/tsplayer" , ".tsp":"aplicación/tipodsp" , ".tsv":"texto/valores-separados-por-tabulaciones" , ".ttf":"aplicación/octeto-stream" , ".ttz":"aplicación/t-tiempo", ".txt":"texto/sin formato" , ".uls":"texto/iuls" , ".ult":"audio/x-mod" , ".ustar":"aplicación/x-ustar" , ".uu":"aplicación/x-uuencode" , ".uue":"aplicación/x-uuencode" , ".vcd":"aplicación/x-cdlink" , ".vcf":"texto/x-vcard" , ".vdo":"vídeo/vdo" , ".vib":"audio/vib" , ".viv":"vídeo/vivo" , ".vivo":"vídeo/vivo" , ".vmd":"aplicación/vocaltec-media-desc", ".vmf":"aplicación/archivo-media-vocaltec" , ".vmi":"aplicación/x-dreamcast-vms-info" , ".vms":"aplicación/x-dreamcast-vms" , ".vox":"audio/voxware" , ".vqe": "audio/x-twinvq-plugin", ".vqf":"audio/x-twinvq" , ".vql":"audio/x-twinvq" , ".vre":"x-mundo/x-vream" , ".vrml":"x-mundo/x-vrml" , ".vrt":"x-mundo/x-vrt" , ".vrw":"x-mundo/x-vream" , ".vts":"libro de trabajo/fórmula uno", ".wav":"audio/x-wav" , ".wax":"audio/x-ms-wax" , ".wbmp":"imagen/vnd.wap.wbmp" , ".wcm":"aplicación/vnd.ms-works", ".wdb":"aplicación/vnd.ms-works", ".web":"aplicación/vnd.xara" , ".wi":"imagen/wavelet" , ".wis":"aplicación/x-InstallShield" , ".wks":"aplicación/vnd.ms-works", ".wm":"vídeo/x-ms-wm" , ".wma": "audio/x-ms-wma", ".wmd":"aplicación/x-ms-wmd" , ".wmf":"aplicación/x-msmetafile" , ".wml": "texto/vnd.wap.wml", ".wmlc":"aplicación/vnd.wap.wmlc" , ".wmls": "texto/vnd.wap.wmlscript", ".wmlsc":"aplicación/vnd.wap.wmlscriptc" , ".wmlscript":"text/vnd.wap.wmlscript" , ".wmv":"audio/x-ms-wmv" , ".wmx":"video/x-ms-wmx" , ".wmz":"aplicación/x-ms-wmz" , ".wpng":"imagen/x-up-wpng" , ".wps":"aplicación/vnd.ms-works", ".wpt":"x-lml/x-gps" , ".wri":"aplicación/x-mswrite" , ".wrl":"x-mundo/x-vrml" , ".wrz":"x-mundo/x-vrml" , ".ws":"texto/vnd.wap.wmlscript", ".wsc":"aplicación/vnd.wap.wmlscriptc" , ".wv":"vídeo/wavelet" , ".wvx":"vídeo/x-ms-wvx" , ".wxl":"aplicación/x-wxl" , ".x-gzip":"aplicación/x-gzip" , ".xaf":"x-mundo/x-vrml" , ".xar":"aplicación/vnd.xara" , ".xbm":"imagen/x-xbitmap" , ".xdm":"aplicación/x-xdma" , ".xdma":"aplicación/x-xdma" , ".xdw":"aplicación/vnd.fujixerox.docuworks" , ".xht":"aplicación/xhtml+xml" , ".xhtm":"aplicación/xhtml+xml" , ".xhtml":"aplicación/xhtml+xml" , ".xla":"aplicación/vnd.ms-excel", ".xlc":"aplicación/vnd.ms-excel", ".xll":"aplicación/x-excel" , ".xlm":"aplicación/vnd.ms-excel", ".xls":"aplicación/vnd.ms-excel", ".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlt":"aplicación/vnd.ms-excel", ".xlw":"aplicación/vnd.ms-excel", ".xm":"audio/x-mod" , ".xml": "texto/sin formato", ".xml":"aplicación/xml", ".xmz":"audio/x-mod" , ".xof":"x-mundo/x-vrml" , ".xpi":"aplicación/x-xpinstall" , ".xpm":"imagen/x-xpixmap" , ".xsit":"texto/xml" , ".xsl":"texto/xml" , ".xul":"texto/xul" , ".xwd":"imagen/x-xwindowdump" , ".xyz": "químico/x-pdb" , ".yz1":"aplicación/x-yz1" , ".z":"aplicación/x-compress" , ".zac":"aplicación/x-zaurus-zac" , ".zip":"aplicación/zip" , ".json":"aplicación/json"}