Мы обычно называем статические веб-серверы статическими веб-сайтами . Его главная особенность заключается в том, что весь контент на сервере является готовым и не требует дополнительной обработки на серверной стороне. Когда мы отправляем запрос веб-страницы на статический сервер, серверу нужно только вернуть соответствующий html
файл на основе нашего пути запроса (URL).
Статический веб-сайт — это веб-сайт, который полностью состоит из страниц кода формата HTML (подмножество стандартного универсального языка разметки), и весь контент включен в файлы веб-страниц. На веб-страницах также могут появляться различные визуальные динамические эффекты, такие как GIF-анимация, FLASH-анимация, прокручивающиеся субтитры и т. д. Веб-сайты в основном состоят из статических страниц и кодов. Обычно имена файлов имеют суффиксы htm, html, shtml и т. д. —— Энциклопедия Baidu
соответствует статическим веб-сайтам и является нашим наиболее распространенным динамическим веб-сервером . Самая большая особенность этого типа сервера заключается в том, что все ресурсы обычно не хранятся в форме html
, а для формирования сети требуются данные внутренних запросов. page, а затем вернуть ее пользователю, контент, видимый каждым пользователем, может быть разным. Например, в веб-сервере, построенном на Java
, мы можем использовать JSP
для объединения веб-страниц для формирования пользовательских страниц.
(1) Динамические веб-страницы основаны на технологии баз данных, что может значительно снизить нагрузку на обслуживание веб-сайта
(2) Веб-сайты, использующие технологию динамических веб-страниц, могут реализовывать больше функций, таких как регистрация пользователей, вход в систему, онлайн-опросы, управление пользователями и т. д. и заказы и т. д.;
(3) Динамические веб-страницы на самом деле не являются файлами веб-страниц, которые существуют независимо на сервере. Сервер возвращает полную веб-страницу только тогда, когда пользователь запрашивает ее
; веб-страницы обычно невозможны для поисковых систем. Доступ ко всем веб-страницам из базы данных веб-сайта или по техническим причинам поисковые роботы не сканируют содержимое после знака «?» в URL-адресе. определенные методы продвижения в поисковых системах. Обработка может адаптироваться к требованиям поисковых систем.
(5) Статические веб-сайты не подключены к базе данных, поэтому для того, чтобы получить эффект динамического веб-сайта, необходимо создать большое количество веб-страниц, многие из которых могут быть только поддельными веб-страницами и не могут реализовать функции веб-сайта. динамический сайт вообще.
——Энциклопедия Baidu
Поскольку статическим серверам не требуется внутренняя база данных, структура очень проста и очень подходит для таких сценариев, как управление документами и ведение блогов. Что касается самого ведения блога, я считаю, что статические веб-сайты обладают следующими характеристиками:
они требуют минимальной конфигурации сервера, и самый простой сервер может удовлетворить потребности большинства людей в производительности,
высокая скорость ответа и весь контент готов
создан html
, к которому можно получить прямой доступ. Можно получить результаты;
один html
соответствует одному url
, контент стабилен, его легко найти поисковыми системами,
его легко создать, и вам нужно только предотвратить его; файл с указанием местоположения после настройки сервера;
все вышеперечисленные пункты относятся к статической системе блогов . Если вы используете чистый статический сервер для создания крупномасштабного веб-сайта других типов, это может быть дороже.
Если вы хотите быстро собрать статический сервер, вы можете использовать пакет http-server
на основе Node.js
, который может завершить настройку сервера за одну минуту. Шаги следующие:
npm i
http-server
входит в папку сервера и запускает сервер
http-server -a 127.0.0.1 -p 9999,
чтобы корневой каталог - это каталог, в котором находится команда сервера. казнен.
Вы можете просмотреть все файлы, посетив localhost:9999
. Вот содержимое моих файлов:
Если мы нажмем на имя файла, мы получим соответствующий файл. Например, если мы нажмем *.html
, мы получим веб-страницу:
Это похоже на FTP
сервер, стоит ли нам на этом остановиться?
Нет, квалифицированный программист будет только рад, если у него будут грязные руки! !
Для завершения построения мы можем использовать базовые встроенные модули Node.js
, поэтому нет необходимости устанавливать дополнительные наборы инструментов.
Основная задача — создать каталог сервера со следующей структурой:
web_server/ //Корневой каталог |- static/ |- CSS/ | |-стиль.css //стиль |- js/ | |- common.js //js |- index.js //Домашняя страница |- app.js //Файл сервера |- mime.json //Конфигурация расширения
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 (функция (требование, разрешение) { //1. Получаем адрес let pathname = url.parse(req.url).pathname имя пути = имя пути == '/' ? '/index.html' : имя пути let extname = path.extname(pathname) //2.fs читает файл if (pathname != '/favicon.ico') { fs.readFile('./static' + путь, асинхронный (ошибка, данные) => { если (ошибка) { res.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' }) res.end(ошибка.сообщение) возвращаться } если (!ошибка) { // 3. Возвращаем разные заголовки содержимого для разных файлов let mime = FileMimes[extname] res.writeHead(200, { 'Content-Type': mime + ';charset="utf-8"' }) res.end(данные) } }) }}).listen(8081);console.log('Сервер работает по адресу http://127.0.0.1:8081/');
mime.json
{ ".323":"text/h323" , ".3gp":"видео/3gpp" , ".aab":"application/x-authoware-bin" , ".aam":"application/x-authoware-map" , ".aas":"application/x-authoware-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" , ...//Оно слишком длинное, поэтому не буду его сюда выкладывать. Полный код в конце статьи}
ноду ./app.js
Эффект запуска следующий:
PS E:. CodeNodedemos 3-static_web_server> node . app.js Сервер работает по адресу http://127.0.0.1:8081/Посетите
localhost:8081
чтобы получить страницу index.html
.
также можно развернуть на удаленном сервере.
1. Купите сервер.
В настоящее время популярные поставщики серверов включают в себя
.
- Облако Тенсент
- Облако Алибаба
- Huawei Cloud
Но теперь к веселью присоединился CSDN: CSDN Cloud, CSDN, похоже, основан на Tencent Cloud, и цены аналогичны.
2. Купите доменное имя (необязательно, вы можете использовать IP для прямого доступа к нему)
3. Регистрация на сайте
4. Развертывание <br/> Развертывание статических веб-сайтов также очень просто. Поскольку ошибок мало, и вам нужно часто начинать и останавливать загрузку новых файлов блога, вы
можете
напрямую скопировать файлы на сервер, а затем использоватьузел ./. приложение.js.
Создать статический сервер на основе Node.js
очень просто. Мы можем использовать пакет http-server
или написанный вручную код на основе Node
.
Основным содержимым рукописного кода является файл mime.json
, что означает предоставление response
разных возвращаемых заголовков для разных типов файлов.
Конец статьи
Ниже приведен код mime.json
(он слишком длинный):
{ ".323":"текст/h323" , ".3gp":"видео/3gpp" , ".aab":"application/x-authoware-bin" , ".aam":"application/x-authoware-map" , ".aas":"application/x-authoware-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":"текст/обычный" , ".asd":"application/astound" , ".asf":"video/x-ms-asf" , ".asn":"application/astound" , ".asp":"application/x-asap" , ".asr":"video/x-ms-asf" , ".asx":"video/x-ms-asf" , ".au":"аудио/базовый" , ".avb":"application/octet-stream" , ".avi":"video/x-msvideo" , ".awb":"audio/amr-wb" , ".axs":"application/olescript" , ".bas":"text/plain" , ".bcpio":"application/x-bcpio" , ".bin ":"application/octet-stream" , ".bld":"application/bld" , ".bld2":"application/bld2" , ".bmp":"изображение/bmp" , ".bpk":"application/octet-stream" , ".bz2":"application/x-bzip2" , ".c":"текст/обычный" , ".cal":"image/x-cals" , ".cat":"application/vnd.ms-pkiseccat" , ".ccn":"application/x-cnc" , ".cco":"application/x-cocoa" , ".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":"текст/обычный" , ".cpio":"application/x-cpio" , ".cpp":"текст/обычный" , ".cpt":"application/mac-compactpro" , ".crd":"application/x-mscardfile" , ".crl":"application/pkix-crl" , ".crt":"application/x-x509-ca-cert" , ".csh":"application/x-csh" , ".csm":"chemical/x-csml" , ".csml":"chemical/x-csml" , ".css":"текст/css" , ".cur":"application/octet-stream" , ".dcm":"x-lml/x-evm" , ".dcr":"application/x-director" , ".dcx":"изображение/x-dcx" , ".der":"application/x-x509-ca-cert" , ".dhtml":"текст/html" , ".dir":"application/x-director" , ".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":"чертеж/x-dwf" , ".dwg":"application/x-autocad" , ".dxf":"application/x-autocad" , ".dxr":"application/x-director" , ".ebk":"application/x-expandedbook" , ".emb":"chemical/x-embl-dl-нуклеотид" , ".embl":"chemical/x-embl-dl-нуклеотид" , ".eps":"application/postscript" , ".epub":"application/epub+zip" , ".eri":"image/x-eri" , ".es":"аудио/эхоречь" , ".esl":"аудио/эхоречь" , ".etc":"application/x-earthtime" , ".etx":"text/x-setext" , ".evm":"x-lml/x-evm" , ".evy":"application/envoy" , ".exe":"application/octet-stream" , ".fh4":"image/x-freehand" , ".fh5":"image/x-freehand" , ".fhc":"image/x-freehand" , ".fif":"приложение/фракталы" , ".flr":"x-world/x-vrml" , ".flv":"flv-application/octet-stream" , ".fm":"application/x-maker" , ".fpx":"image/x-fpx" , ".fvi":"видео/isivideo" , ".gau":"химический/x-гауссовский-вход" , ".gca":"application/x-gca-compressed" , ".gdb":"x-lml/x-gdb" , ".gif":"изображение/гиф" , ".gps":"application/x-gps" , ".gtar":"application/x-gtar" , ".gz":"application/x-gzip" , ".h":"текст/обычный" , ".hdf":"application/x-hdf" , ".hdm":"text/x-hdml" , ".hdml":"text/x-hdml" , ".hlp":"application/winhlp" , ".hqx":"application/mac-binhex40" , ".hta":"application/hta" , ".htc":"текст/x-компонент" , ".htm":"текст/html" , ".html":"текст/html" , ".hts":"text/html" , ".htt":"text/webviewhtml" , ".ice":"x-conference/x-cooltalk" , ".ico":"image/x-icon" , ".ief":"image/ief" , ".ifm":"изображение/гиф" , ".ifs":"изображение/ifs" , ".iii":"application/x-iphone" , ".imy":"аудио/мелодия" , ".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":"изображение/j2k" , ".jad":"text/vnd.sun.j2me.app-descriptor" , ".jam":"application/x-jam" , ".jar":"приложение/java-архив" , ".java":"текст/обычный" , ".jfif":"изображение/конвейер" , ".jnlp":"application/x-java-jnlp-file" , ".jpe":"изображение/jpeg" , ".jpeg":"изображение/jpeg" , ".jpg":"изображение/jpeg" , ".jpz":"изображение/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":"text/plain" , ".lsf":"video/x-la-asf" , ".lsx":"video/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":"video/vnd.mpegurl" , ".m4v":"video/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-mascot" , ".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":"аудио/миди" , ".mif":"application/x-mif" , ".mil":"image/x-cals" , ".mio":"audio/x-mio" , ".mmf":"application/x-skt-lbs" , ".mng":"video/x-mng" , ".mny":"application/x-msmoney" , ".moc":"application/x-mocha" , ".mocha":"application/x-mocha" , ".mod":"audio/x-mod" , ".mof":"application/x-yumekara" , ".mol":"chemical/x-mdl-molfile" , ".mop":"chemical/x-mopac-input" , ".mov":"video/quicktime" , ".movie":"video/x-sgi-movie" , ".mp2":"видео/mpeg" , ".mp3":"аудио/mpeg" , ".mp4":"видео/mp4" , ".mpa":"видео/mpeg" , ".mpc":"application/vnd.mpohun.certificate" , ".mpe":"видео/mpeg" , ".mpeg":"видео/mpeg" , ".mpg":"видео/mpeg" , ".mpg4":"видео/mp4" , ".mpga":"аудио/mpeg" , ".mpn":"application/vnd.mophun.application" , ".mpp":"application/vnd.ms-project" , ".mps":"application/x-mapserver" , ".mpv2":"видео/mpeg" , ".mrl":"text/x-mrml" , ".mrm":"application/x-mrm" , ".ms":"application/x-troff-ms" , ".msg":"application/vnd.ms-outlook" , ".mts":"application/metastream" , ".mtx":"приложение/метапоток" , ".mtz":"приложение/метапоток" , ".mvb":"application/x-msmediaview" , ".mzv":"приложение/метапоток" , ".nar":"application/zip" , ".nbmp":"изображение/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-oplogo-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-certificates" , ".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":"chemical/x-pdb" , ".pdf":"приложение/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":"изображение/png" , ".pnm":"image/x-portable-anymap" , ".pnz":"изображение/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":"text/plain" , ".proxy":"application/x-ns-proxy-autoconfig" , ".ps":"application/postscript" , ".ptlk":"приложение/прослушивание" , ".pub":"application/x-mspublisher" , ".pvx":"video/x-pv-pvx" , ".qcp":"audio/vnd.qcelp" , ".qt":"video/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":"текст/обычный" , ".rdf":"application/rdf+xml" , ".rf":"image/vnd.rn-realflash" , ".rgb":"изображение/x-rgb" , ".rlf":"application/x-richlink" , ".rm":"audio/x-pn-realaudio" , ".rmf":"audio/x-rmf" , ".rmi":"аудио/мид" , ".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":"приложение/метапоток" , ".rtx":"text/richtext" , ".rv":"video/vnd.rn-realvideo" , ".rwc":"application/x-rogerwilco" , ".s3m":"audio/x-mod" , ".s3z":"audio/x-mod" , ".sca":"application/x-supercard" , ".scd":"application/x-msschedule" , ".sct":"текст/скриптлет" , ".sdf":"application/e-score" , ".sea":"application/x-stuffit" , ".setpay":"application/set-pay-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":"приложение/презентации" , ".si6":"изображение/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":"приложение/студия" , ".smz":"audio/x-smd" , ".snd":"аудио/базовый" , ".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":"text/html" , ".svg":"изображение/svg+xml" , ".sv4cpio":"application/x-sv4cpio" , ".sv4crc":"application/x-sv4crc" , ".svf":"изображение/vnd" , ".svg":"изображение/svg+xml" , ".svh":"изображение/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":"text/x-speech" , ".tar":"application/x-tar" , ".taz":"application/x-tar" , ".tbp":"application/x-timbuktu" , ".tbt":"application/x-timbuktu" , ".tcl":"application/x-tcl" , ".tex":"application/x-tex" , ".texi":"application/x-texinfo" , ".texinfo":"application/x-texinfo" , ".tgz":"application/x-compressed" , ".thm":"application/vnd.eri.thm" , ".tif":"изображение/tiff" , ".tiff":"изображение/tiff" , ".tki":"application/x-tkined" , ".tkined":"application/x-tkined" , ".toc":"application/toc" , ".toy":"изображение/игрушка" , ".tr":"application/x-troff" , ".trk":"x-lml/x-gps" , ".trm":"application/x-msterminal" , ".tsi":"audio/tsplayer" , ".tsp":"application/dsptype" , ".tsv":"текст/значения, разделенные табуляцией" , ".ttf":"application/octet-stream" , ".ttz":"application/t-time" , ".txt":"текст/обычный" , ".uls":"text/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":"видео/вдо" , ".vib":"audio/vib" , ".viv":"видео/vivo" , ".vivo":"video/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-world/x-vrt" , ".vrw":"x-world/x-vream" , ".vts":"workbook/formulaone" , ".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":"изображение/вейвлет" , ".wis":"application/x-InstallShield" , ".wks":"application/vnd.ms-works" , ".wm":"video/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":"video/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":"видео/вейвлет" , ".wvx":"video/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":"текст/обычный", ".xml":"приложение/xml", ".xmz":"audio/x-mod" , ".xof":"x-world/x-vrml" , ".xpi":"application/x-xpinstall" , ".xpm":"image/x-xpixmap" , ".xsit":"текст/xml" , ".xsl":"текст/xml" , ".xul":"text/xul" , ".xwd":"image/x-xwindowdump" , ".xyz":"chemical/x-pdb" , ".yz1":"application/x-yz1" , ".z":"application/x-compress" , ".zac":"application/x-zaurus-zac" , ".zip":"application/zip" , ".json":"application/json"}