Nous appelons généralement des serveurs Web statiques des sites Web statiques . Sa principale caractéristique est que tout le contenu du serveur est prêt à l'emploi et ne nécessite aucun traitement supplémentaire en arrière-plan. Lorsque nous envoyons une requête de page Web à un serveur statique, le serveur n'a qu'à renvoyer le fichier html
correspondant en fonction de notre chemin de requête (URL).
Un site Web statique fait référence à un site Web entièrement composé de pages au format de code HTML (un sous-ensemble du Standard Universal Markup Language), et tout le contenu est inclus dans des fichiers de page Web. Divers effets visuels dynamiques peuvent également apparaître sur les pages Web, tels que des animations GIF, des animations FLASH, des sous-titres déroulants, etc. Les sites Web sont principalement composés de pages et de codes statiques. Généralement, les noms de fichiers sont suffixés par htm, html, shtml, etc. —— L'Encyclopédie Baidu
correspond à un site Web statique et est notre serveur Web dynamique le plus courant. La plus grande caractéristique de ce type de serveur est que toutes les ressources ne sont généralement pas stockées sous forme de html
, mais nécessitent des données de requête back - end pour former un site Web. page puis la renvoyer à l'utilisateur, le contenu vu par chaque utilisateur peut être différent. Par exemple, dans un serveur Web construit en Java
, nous pouvons utiliser JSP
pour fusionner des pages Web afin de former des pages spécifiques à l'utilisateur.
(1) Les pages Web dynamiques sont basées sur la technologie de base de données, ce qui peut réduire considérablement la charge de travail de maintenance du site Web ;
(2) Les sites Web utilisant la technologie des pages Web dynamiques peuvent mettre en œuvre davantage de fonctions, telles que l'enregistrement des utilisateurs, la connexion des utilisateurs, les enquêtes en ligne, la gestion des utilisateurs, et les commandes, etc. ;
(3
) Les pages Web dynamiques ne sont pas réellement des fichiers de pages Web qui existent indépendamment sur le serveur. Le serveur renvoie une page Web complète uniquement lorsque l'utilisateur le demande ;
Les pages Web ne sont généralement pas possibles pour les moteurs de recherche. Accéder à toutes les pages Web à partir de la base de données d'un site Web ou, pour des raisons techniques, les robots de recherche n'explorent pas le contenu après "?" dans l'URL. Par conséquent, les sites Web utilisant des pages Web dynamiques doivent le faire. certaines techniques lors de la promotion des moteurs de recherche. Le traitement peut s'adapter aux exigences des moteurs de recherche.
(5) Les sites Web statiques ne sont pas connectés à la base de données, donc pour avoir l'effet d'un site Web dynamique, il faut produire un grand nombre de pages Web, dont beaucoup ne peuvent être que de fausses pages Web et ne peuvent pas réaliser les fonctions d'un site Web statique. site Web dynamique du tout.
——Baidu Encyclopedia
Étant donné que les serveurs statiques ne nécessitent pas de base de données principale, la structure est très simple et très adaptée à des scénarios tels que la gestion de documents et les blogs. En ce qui concerne les blogs eux-mêmes, je pense que les sites Web statiques ont les caractéristiques suivantes :
ils nécessitent une faible configuration du serveur, et le serveur le plus basique peut répondre aux besoins de performances de la plupart des gens,
la vitesse de réponse est rapide et le contenu est prêt ; made html
, accessible directement Les résultats peuvent être obtenus ;
un html
correspond à une url
, le contenu est stable et il est facile à récupérer par les moteurs de recherche,
il est simple à créer et il suffit d'empêcher le fichier en spécifiant l'emplacement après la configuration du serveur ;
les points ci-dessus concernent tous le système de blog statique. Si vous utilisez un serveur statique pur pour créer un site Web à grande échelle d'autres types, cela peut être plus coûteux.
Si vous souhaitez créer rapidement un serveur statique, vous pouvez utiliser le package http-server
basé sur Node.js
, qui peut terminer la configuration du serveur en une minute. Les étapes sont les suivantes :
npm i
http-server
entre dans le dossier du serveur et démarre le serveur
http-server -a 127.0.0.1 -p 9999
pour que le serveur démarre. Le répertoire racine est le répertoire où se trouve la commande du serveur. exécuté.
Vous pouvez voir tous les fichiers en visitant localhost:9999
. Voici le contenu de mes fichiers :
Si nous cliquons sur le nom du fichier, nous obtiendrons le fichier correspondant. Par exemple, si nous cliquons sur *.html
, nous obtiendrons la page web :
Cela ressemble à un serveur FTP
, faut-il s'arrêter là ?
Non, un programmeur qualifié ne sera content que s’il a les mains sales ! !
Nous pouvons utiliser les modules intégrés de base Node.js
pour terminer la construction, il n'est donc pas nécessaire d'installer des kits d'outils supplémentaires.
Le travail principal consiste à créer un répertoire de serveur avec la structure suivante :
serveur_web/ //Répertoire racine |- static/ |-css/ |- style.css //style |- js/ |- commun.js //js |- index.js //Page d'accueil |- app.js //Fichier serveur |- mime.json //Configuration de l'extension
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 (fonction (req, res) { //1. Récupère l'adresse let pathname = url.parse(req.url).pathname pathname = pathname == '/' ? '/index.html' : pathname let extname = path.extname(pathname) //2.fs lit le fichier if (pathname != '/favicon.ico') { fs.readFile('./static' + chemin, async (erreur, données) => { si (erreur) { res.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' }) res.end(err.message) retour } si (!err) { // 3. Renvoie différents en-têtes de contenu pour différents fichiers let mime = FileMimes[extname] res.writeHead(200, { 'Content-Type': mime + ';charset="utf-8"' }) res.end (données) } }) }}).listen(8081);console.log('Serveur exécuté sur http://127.0.0.1:8081/');
mime.json
{ ".323": "text/h323" , ".3gp": "vidéo/3gpp" , ".aab": "application/x-autoware-bin" , ".aam": "application/x-autoware-map" , ".aas": "application/x-autoware-seg" , ".acx": "application/internet-property-stream" , ".ai": "application/postscript" , ".aif": "audio/x-aiff" , ".aifc": "audio/x-aiff" , ".aiff": "audio/x-aiff" , ".als": "audio/X-Alpha5" , ".amc": "application/x-mpeg" , ...//C'est trop long, donc je ne le posterai pas ici. Le code complet est à la fin de l'article}
nœud du serveur ./app.js
L'effet de démarrage est le suivant :
PS E: CodeNodedemos 3-static_web_server> nœud . app.js Serveur exécuté sur http://127.0.0.1:8081/Visitez
localhost:8081
pour obtenir la page index.html
.
peut également être déployé sur un serveur distant
1. Achetez un serveur
Les fournisseurs de serveurs actuellement populaires incluent
.
- Tencent Cloud
-Alibaba Cloud
- Huawei Cloud
Mais maintenant, CSDN s'est joint à la fête : CSDN Cloud, CSDN semble être basé sur Tencent Cloud, et les prix sont similaires.
2. Achetez un nom de domaine (facultatif, vous pouvez utiliser l'IP pour y accéder directement)
3. Inscription sur le site Web
4. Déploiement <br/> Le déploiement de sites Web statiques est également très simple. Puisqu'il y a peu d'erreurs et que vous devez démarrer et arrêter fréquemment le téléchargement de nouveaux fichiers de blog, vous
pouvez
directement copier les fichiers sur le serveur, puis utilisernode ./. app.js.
Construire un serveur statique basé sur Node.js
est très simple. Nous pouvons utiliser le package http-server
ou écrire du code manuellement basé sur Node
.
Le contenu principal du code manuscrit est le fichier mime.json
, ce qui signifie donner response
différents en-têtes de retour pour différents types de fichiers.
Fin de l'article
Voici le code mime.json
(il est trop long) :
{ ".323": "texte/h323" , ".3gp": "vidéo/3gpp" , ".aab": "application/x-autoware-bin" , ".aam": "application/x-autoware-map" , ".aas": "application/x-autoware-seg" , ".acx": "application/internet-property-stream" , ".ai": "application/postscript" , ".aif": "audio/x-aiff" , ".aifc": "audio/x-aiff" , ".aiff": "audio/x-aiff" , ".als": "audio/X-Alpha5" , ".amc": "application/x-mpeg" , ".ani": "application/octet-stream" , ".apk": "application/vnd.android.package-archive" , ".asc": "texte/plain" , ".asd": "application/étonnement" , ".asf": "vidéo/x-ms-asf" , ".asn": "application/étonnement" , ".asp": "application/x-asap" , ".asr": "vidéo/x-ms-asf" , ".asx": "vidéo/x-ms-asf" , ".au": "audio/basique" , ".avb": "application/octet-stream" , ".avi": "vidéo/x-msvideo" , ".awb": "audio/amr-wb" , ".axs": "application/olescript" , ".bas": "texte/plain" , ".bcpio": "application/x-bcpio" , ".bin ": "application/octet-stream" , ".bld": "application/bld" , ".bld2": "application/bld2" , ".bmp": "image/bmp" , ".bpk": "application/octet-stream" , ".bz2": "application/x-bzip2" , ".c": "texte/plain" , ".cal": "image/x-cals" , ".cat": "application/vnd.ms-pkiseccat" , ".ccn": "application/x-cnc" , ".cco": "application/x-cacao" , ".cdf": "application/x-cdf" , ".cer": "application/x-x509-ca-cert" , ".cgi": "magnus-internal/cgi" , ".chat": "application/x-chat" , ".class": "application/octet-stream" , ".clp": "application/x-msclip" , ".cmx": "image/x-cmx" , ".co": "application/x-cult3d-object" , ".cod": "image/cis-cod" , ".conf": "text/plain" , ".cpio": "application/x-cpio" , ".cpp": "texte/plain" , ".cpt": "application/mac-compactpro" , ".crd": "application/x-mscardfile" , ".crl": "application/pkix-crl" , ".crt": "application/x-x509-ca-cert" , ".csh": "application/x-csh" , ".csm": "chimique/x-csml" , ".csml": "chimique/x-csml" , ".css": "texte/css" , ".cur": "application/octet-stream" , ".dcm": "x-lml/x-evm" , ".dcr": "application/x-directeur" , ".dcx": "image/x-dcx" , ".der": "application/x-x509-ca-cert" , ".dhtml": "texte/html" , ".dir": "application/x-directeur" , ".dll": "application/x-msdownload" , ".dmg": "application/octet-stream" , ".dms": "application/octet-stream" , ".doc": "application/msword" , ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".dot": "application/msword" , ".dvi": "application/x-dvi" , ".dwf": "dessin/x-dwf" , ".dwg": "application/x-autocad" , ".dxf": "application/x-autocad" , ".dxr": "application/x-directeur" , ".ebk": "application/x-expandedbook" , ".emb": "chimique/x-embl-dl-nucléotide" , ".embl": "chimique/x-embl-dl-nucléotide" , ".eps": "application/postscript" , ".epub": "application/epub+zip" , ".eri": "image/x-eri" , ".es": "audio/échoparole" , ".esl": "audio/échoparole" , ".etc": "application/x-earthtime" , ".etx": "texte/x-setext" , ".evm": "x-lml/x-evm" , ".evy": "application/envoyé" , ".exe": "application/octet-stream" , ".fh4": "image/x-à main levée" , ".fh5": "image/x-à main levée" , ".fhc": "image/x-freehand" , ".fif": "application/fractales" , ".flr": "x-world/x-vrml" , ".flv": "flv-application/octet-stream" , ".fm": "application/x-maker" , ".fpx": "image/x-fpx" , ".fvi": "vidéo/isivideo" , ".gau": "entrée chimique/x-gaussienne" , ".gca": "application/x-gca-compressé" , ".gdb": "x-lml/x-gdb" , ".gif": "image/gif" , ".gps": "application/x-gps" , ".gtar": "application/x-gtar" , ".gz": "application/x-gzip" , ".h": "texte/plain" , ".hdf": "application/x-hdf" , ".hdm": "text/x-hdml" , ".hdml": "text/x-hdml" , ".hlp": "application/winhlp" , ".hqx": "application/mac-binhex40" , ".hta": "application/hta" , ".htc": "texte/x-component" , ".htm": "texte/html" , ".html": "texte/html" , ".hts": "texte/html" , ".htt": "text/webviewhtml" , ".ice": "x-conference/x-cooltalk" , ".ico": "image/x-icône" , ".ief": "image/ief" , ".ifm": "image/gif" , ".ifs": "image/ifs" , ".iii": "application/x-iphone" , ".imy": "audio/mélodie" , ".ins": "application/x-internet-signup" , ".ips": "application/x-ipscript" , ".ipx": "application/x-ipix" , ".isp": "application/x-internet-signup" , ".it": "audio/x-mod" , ".itz": "audio/x-mod" , ".ivr": "i-world/i-vrml" , ".j2k": "image/j2k" , ".jad": "text/vnd.sun.j2me.app-descriptor" , ".jam": "application/x-jam" , ".jar": "application/java-archive" , ".java": "texte/plain" , ".jfif": "image/pipeg" , ".jnlp": "application/x-java-jnlp-file" , ".jpe": "image/jpeg" , ".jpeg": "image/jpeg" , ".jpg": "image/jpeg" , ".jpz": "image/jpeg" , ".js": "application/x-javascript" , ".jwc": "application/jwc" , ".kjx": "application/x-kjx" , ".lak": "x-lml/x-lak" , ".latex": "application/x-latex" , ".lcc": "application/fastman" , ".lcl": "application/x-digitalloca" , ".lcr": "application/x-digitalloca" , ".lgh": "application/lgh" , ".lha": "application/octet-stream" , ".lml": "x-lml/x-lml" , ".lmlpack": "x-lml/x-lmlpack" , ".log": "texte/plain" , ".lsf": "vidéo/x-la-asf" , ".lsx": "vidéo/x-la-asf" , ".lzh": "application/octet-stream" , ".m13": "application/x-msmediaview" , ".m14": "application/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": "vidéo/vnd.mpegurl" , ".m4v": "vidéo/x-m4v" , ".ma1": "audio/ma1" , ".ma2": "audio/ma2" , ".ma3": "audio/ma3" , ".ma5": "audio/ma5" , ".man": "application/x-troff-man" , ".map": "magnus-internal/imagemap" , ".mbd": "application/mbedlet" , ".mct": "application/x-mascotte" , ".mdb": "application/x-msaccess" , ".mdz": "audio/x-mod" , ".me": "application/x-troff-me" , ".mel": "text/x-vmel" , ".mht": "message/rfc822" , ".mhtml": "message/rfc822" , ".mi": "application/x-mif" , ".mid": "audio/mid" , ".midi": "audio/midi" , ".mif": "application/x-mif" , ".mil": "image/x-cals" , ".mio": "audio/x-mio" , ".mmf": "application/x-skt-lbs" , ".mng": "vidéo/x-mng" , ".mny": "application/x-msmoney" , ".moc": "application/x-mocha" , ".mocha": "application/x-mocha" , ".mod": "audio/x-mod" , ".mof": "application/x-yumekara" , ".mol": "chimique/x-mdl-molfile" , ".mop": "chimique/x-mopac-input" , ".mov": "vidéo/quicktime" , ".movie": "vidéo/x-sgi-movie" , ".mp2": "vidéo/mpeg" , ".mp3": "audio/mpeg" , ".mp4": "vidéo/mp4" , ".mpa": "vidéo/mpeg" , ".mpc": "application/vnd.mpohun.certificate" , ".mpe": "vidéo/mpeg" , ".mpeg": "vidéo/mpeg" , ".mpg": "vidéo/mpeg" , ".mpg4": "vidéo/mp4" , ".mpga": "audio/mpeg" , ".mpn": "application/vnd.mophun.application" , ".mpp": "application/vnd.ms-project" , ".mps": "application/x-mapserver" , ".mpv2": "vidéo/mpeg" , ".mrl": "text/x-mrml" , ".mrm": "application/x-mrm" , ".ms": "application/x-troff-ms" , ".msg": "application/vnd.ms-outlook" , ".mts": "application/métastream" , ".mtx": "application/métastream" , ".mtz": "application/métastream" , ".mvb": "application/x-msmediaview" , ".mzv": "application/métastream" , ".nar": "application/zip" , ".nbmp": "image/nbmp" , ".nc": "application/x-netcdf" , ".ndb": "x-lml/x-ndb" , ".ndwn": "application/ndwn" , ".nif": "application/x-nif" , ".nmz": "application/x-scream" , ".nokia-op-logo": "image/vnd.nok-ologo-color" , ".npx": "application/x-netfpx" , ".nsnd": "audio/nsnd" , ".nva": "application/x-neva1" , ".nws": "message/rfc822" , ".oda": "application/oda" , ".ogg": "audio/ogg" , ".oom": "application/x-AtlasMate-Plugin" , ".p10": "application/pkcs10" , ".p12": "application/x-pkcs12" , ".p7b": "application/x-pkcs7-certificats" , ".p7c": "application/x-pkcs7-mime" , ".p7m": "application/x-pkcs7-mime" , ".p7r": "application/x-pkcs7-certreqresp" , ".p7s": "application/x-pkcs7-signature" , ".pac": "audio/x-pac" , ".pae": "audio/x-epac" , ".pan": "application/x-pan" , ".pbm": "image/x-portable-bitmap" , ".pcx": "image/x-pcx" , ".pda": "image/x-pda" , ".pdb": "chimique/x-pdb" , ".pdf": "application/pdf" , ".pfr": "application/font-tdpfr" , ".pfx": "application/x-pkcs12" , ".pgm": "image/x-portable-graymap" , ".pict": "image/x-pict" , ".pko": "application/ynd.ms-pkipko" , ".pm": "application/x-perl" , ".pma": "application/x-perfmon" , ".pmc": "application/x-perfmon" , ".pmd": "application/x-pmd" , ".pml": "application/x-perfmon" , ".pmr": "application/x-perfmon" , ".pmw": "application/x-perfmon" , ".png": "image/png" , ".pnm": "image/x-portable-anymap" , ".pnz": "image/png" , ".pot,": "application/vnd.ms-powerpoint" , ".ppm": "image/x-portable-pixmap" , ".pps": "application/vnd.ms-powerpoint" , ".ppt": "application/vnd.ms-powerpoint" , ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation" , ".pqf": "application/x-cprplayer" , ".pqi": "application/cprplayer" , ".prc": "application/x-prc" , ".prf": "application/pics-rules" , ".prop": "texte/plain" , ".proxy": "application/x-ns-proxy-autoconfig" , ".ps": "application/postscript" , ".ptlk": "application/écoute" , ".pub": "application/x-mspublisher" , ".pvx": "vidéo/x-pv-pvx" , ".qcp": "audio/vnd.qcelp" , ".qt": "vidéo/quicktime" , ".qti": "image/x-quicktime" , ".qtif": "image/x-quicktime" , ".r3t": "text/vnd.rn-realtext3d" , ".ra": "audio/x-pn-realaudio" , ".ram": "audio/x-pn-realaudio" , ".rar": "application/octet-stream" , ".ras": "image/x-cmu-raster" , ".rc": "texte/plain" , ".rdf": "application/rdf+xml" , ".rf": "image/vnd.rn-realflash" , ".rgb": "image/x-rgb" , ".rlf": "application/x-richlink" , ".rm": "audio/x-pn-realaudio" , ".rmf": "audio/x-rmf" , ".rmi": "audio/milieu" , ".rmm": "audio/x-pn-realaudio" , ".rmvb": "audio/x-pn-realaudio" , ".rnx": "application/vnd.rn-realplayer" , ".roff": "application/x-troff" , ".rp": "image/vnd.rn-realpix" , ".rpm": "audio/x-pn-realaudio-plugin" , ".rt": "text/vnd.rn-realtext" , ".rte": "x-lml/x-gps" , ".rtf": "application/rtf" , ".rtg": "application/métastream" , ".rtx": "texte/richtext" , ".rv": "vidéo/vnd.rn-realvideo" , ".rwc": "application/x-rogerwilco" , ".s3m": "audio/x-mod" , ".s3z": "audio/x-mod" , ".sca": "application/x-supercard" , ".scd": "application/x-msschedule" , ".sct": "texte/scriptlet" , ".sdf": "application/e-score" , ".sea": "application/x-stuffit" , ".setpay": "application/set-payment-initiation" , ".setreg": "application/set-registration-initiation" , ".sgm": "text/x-sgml" , ".sgml": "text/x-sgml" , ".sh": "application/x-sh" , ".shar": "application/x-shar" , ".shtml": "magnus-internal/parsed-html" , ".shw": "application/présentations" , ".si6": "image/si6" , ".si7": "image/vnd.stiwap.sis" , ".si9": "image/vnd.lgtwap.sis" , ".sis": "application/vnd.symbian.install" , ".sit": "application/x-stuffit" , ".skd": "application/x-Koan" , ".skm": "application/x-Koan" , ".skp": "application/x-Koan" , ".skt": "application/x-Koan" , ".slc": "application/x-salsa" , ".smd": "audio/x-smd" , ".smi": "application/smil" , ".smil": "application/smil" , ".smp": "application/studio" , ".smz": "audio/x-smd" , ".snd": "audio/basique" , ".spc": "application/x-pkcs7-certificates" , ".spl": "application/futuresplash" , ".spr": "application/x-sprite" , ".sprite": "application/x-sprite" , ".sdp": "application/sdp" , ".spt": "application/x-spt" , ".src": "application/x-wais-source" , ".sst": "application/vnd.ms-pkicertstore" , ".stk": "application/hyperstudio" , ".stl": "application/vnd.ms-pkistl" , ".stm": "texte/html" , ".svg": "image/svg+xml" , ".sv4cpio": "application/x-sv4cpio" , ".sv4crc": "application/x-sv4crc" , ".svf": "image/vnd" , ".svg": "image/svg+xml" , ".svh": "image/svh" , ".svr": "x-world/x-svr" , ".swf": "application/x-shockwave-flash" , ".swfl": "application/x-shockwave-flash" , ".t": "application/x-troff" , ".tad": "application/octet-stream" , ".talk": "texte/x-speech" , ".tar": "application/x-tar" , ".taz": "application/x-tar" , ".tbp": "application/x-tombouctou" , ".tbt": "application/x-tombouctou" , ".tcl": "application/x-tcl" , ".tex": "application/x-tex" , ".texi": "application/x-texinfo" , ".texinfo": "application/x-texinfo" , ".tgz": "application/x-compressé" , ".thm": "application/vnd.eri.thm" , ".tif": "image/tiff" , ".tiff": "image/tiff" , ".tki": "application/x-tkined" , ".tkined": "application/x-tkined" , ".toc": "application/toc" , ".toy": "image/jouet" , ".tr": "application/x-troff" , ".trk": "x-lml/x-gps" , ".trm": "application/x-msterminal" , ".tsi": "audio/tsplayer" , ".tsp": "application/dsptype" , ".tsv": "texte/valeurs-séparées par des tabulations" , ".ttf": "application/octet-stream" , ".ttz": "application/heure-t" , ".txt": "texte/plain" , ".uls": "texte/iuls" , ".ult": "audio/x-mod" , ".ustar": "application/x-ustar" , ".uu": "application/x-uuencode" , ".uue": "application/x-uuencode" , ".vcd": "application/x-cdlink" , ".vcf": "text/x-vcard" , ".vdo": "vidéo/vdo" , ".vib": "audio/vib" , ".viv": "vidéo/vivo" , ".vivo": "vidéo/vivo" , ".vmd": "application/vocaltec-media-desc" , ".vmf": "application/vocaltec-media-file" , ".vmi": "application/x-dreamcast-vms-info" , ".vms": "application/x-dreamcast-vms" , ".vox": "audio/voxware" , ".vqe": "audio/x-twinvq-plugin" , ".vqf": "audio/x-twinvq" , ".vql": "audio/x-twinvq" , ".vre": "x-world/x-vream" , ".vrml": "x-world/x-vrml" , ".vrt": "x-monde/x-vrt" , ".vrw": "x-world/x-vream" , ".vts": "classeur/formule" , ".wav": "audio/x-wav" , ".wax": "audio/x-ms-wax" , ".wbmp": "image/vnd.wap.wbmp" , ".wcm": "application/vnd.ms-works" , ".wdb": "application/vnd.ms-works" , ".web": "application/vnd.xara" , ".wi": "image/ondelette" , ".wis": "application/x-InstallShield" , ".wks": "application/vnd.ms-works" , ".wm": "vidéo/x-ms-wm" , ".wma": "audio/x-ms-wma" , ".wmd": "application/x-ms-wmd" , ".wmf": "application/x-msmetafile" , ".wml": "text/vnd.wap.wml" , ".wmlc": "application/vnd.wap.wmlc" , ".wmls": "text/vnd.wap.wmlscript" , ".wmlsc": "application/vnd.wap.wmlscriptc" , ".wmlscript": "text/vnd.wap.wmlscript" , ".wmv": "audio/x-ms-wmv" , ".wmx": "vidéo/x-ms-wmx" , ".wmz": "application/x-ms-wmz" , ".wpng": "image/x-up-wpng" , ".wps": "application/vnd.ms-works" , ".wpt": "x-lml/x-gps" , ".wri": "application/x-mswrite" , ".wrl": "x-world/x-vrml" , ".wrz": "x-world/x-vrml" , ".ws": "text/vnd.wap.wmlscript" , ".wsc": "application/vnd.wap.wmlscriptc" , ".wv": "vidéo/ondelette" , ".wvx": "vidéo/x-ms-wvx" , ".wxl": "application/x-wxl" , ".x-gzip": "application/x-gzip" , ".xaf": "x-world/x-vrml" , ".xar": "application/vnd.xara" , ".xbm": "image/x-xbitmap" , ".xdm": "application/x-xdma" , ".xdma": "application/x-xdma" , ".xdw": "application/vnd.fujixerox.docuworks" , ".xht": "application/xhtml+xml" , ".xhtm": "application/xhtml+xml" , ".xhtml": "application/xhtml+xml" , ".xla": "application/vnd.ms-excel" , ".xlc": "application/vnd.ms-excel" , ".xll": "application/x-excel" , ".xlm": "application/vnd.ms-excel" , ".xls": "application/vnd.ms-excel" , ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlt": "application/vnd.ms-excel" , ".xlw": "application/vnd.ms-excel" , ".xm": "audio/x-mod" , ".xml": "texte/plain", ".xml": "application/xml", ".xmz": "audio/x-mod" , ".xof": "x-world/x-vrml" , ".xpi": "application/x-xpinstall" , ".xpm": "image/x-xpixmap" , ".xsit": "texte/xml" , ".xsl": "texte/xml" , ".xul": "texte/xul" , ".xwd": "image/x-xwindowdump" , ".xyz": "chimique/x-pdb" , ".yz1": "application/x-yz1" , ".z": "application/x-compress" , ".zac": "application/x-zaurus-zac" , ".zip": "application/zip" , ".json": "application/json"}