Jump to content
Korean Random

Оптимизация запросов к static.modxvm.com


13

Recommended Posts

Если вам известны моды, которые запрашивают данные с сервера static.modxvm.com, пожалуйста, отправьте ссылку на эту тему их разработчикам.

 


 

1. Запрашивайте файлы в gzip.

При запросах json или csv файлов с сервера static.modxvm.com добавляйте расширение .gz, например wn8exp.json.gz вместо wn8exp.json

Это значительно уменьшает трафик и длительность загрузки файлов с сервера.

Разница на примере файла с данными за сегодняшний день:

без сжатия: 66 630 байт
      gzip: 13 153 байт

Сжатый вариант компактнее как минимум в 5 раз.

Для игроков с невысокой скоростью подключения эта разница весьма значительна, особенно, если запрашиваются несколько файлов для разных задач.
 

2. Кешируйте полученные файлы.

В последнее время распространены моды, которые бессмысленно запрашивают файлы слишком часто, вместо того, чтобы сохранить и в дальнейшем использовать сохранённые версии, обновляя их с сервера только по мере необходимости.


Поскольку данные в файлах на сервере обновляются всего один раз в день, вполне достаточно запрашивать файлы также раз в день.

  • Это производительнее: локальный файл всегда доступен многократно быстрее.
  • Это надёжнее: локальный файл можно использовать не только между обновлениями, но и в качестве фоллбека в случае недоступности сервера.
  • Upvote 7
Link to comment
Short link
Share on other sites

  • The topic was pinned

@ShuraBB можно делать условные запросы, при которых сервер вернёт новый файл, если он изменился, либо просто сообщит, что файл не изменился.

Есть 2 варианта:

  1. Отправлять с запросом дату последнего изменения файла в заголовке If-Modified-Since: Sun, 02 Feb 2020 14:00:06 GMT
    Если отправленная дата позже серверной, придёт короткий ответ с кодом 304 (файл не изменён). Если отправленная дата раньше даты изменения файла на сервере, в ответе придёт новый файл.
  2. При получении файла сохранять значение заголовка ETag из ответа и подставлять его в заголовок If-None-Match при последующих запросах этого файла.
    Если отправленное значение совпадает с тем, которое присвоено файлу сервером, придёт короткий ответ с кодом 304 (файл не изменён). Если значения отличаются, придёт обновлённый файл.
Link to comment
Short link
Share on other sites

3 часа назад, Mr 13 сказал:

При получении файла сохранять значение заголовка ETag из ответа и подставлять его в заголовок If-None-Match при последующих запросах этого файла.

 

В данный момент сервер поддерживает данный запрос?

Edited by night_dragon_on
Очистка, не актуально ...
Link to comment
Short link
Share on other sites

@night_dragon_on зачем мне это? Я скинул тебе ссылку на доку, где показано как сделать правильно.

Добавляя второй параметр Data ты меняешь тип запроса с GET на POST, а не добавляешь заголовок.

Тебе нужно добавить Header к GET запросу. Это делается третьим параметром в Request или методом Request.add_header(key, val)

Edited by yepev
Link to comment
Short link
Share on other sites

15 минут назад, yepev сказал:

Тебе нужно добавить Header к GET запросу. Это делается третьим параметром в Request или методом Request.add_header(key, val)

 

Хотя да, не туда смотрел. Но даже с get запросом сервер отдал сам *.json файл, хотя по идее должен был вернуть код 304. Видимо пора спать идти, утро вечера мудренее.

Link to comment
Short link
Share on other sites

10 часов назад, yepev сказал:

Вопрос не в том как это сделать на питоне, вопрос в том чтобы это работало в WOT клиенте ;-) А то уже были прецеденты.

Link to comment
Short link
Share on other sites

  • The title was changed to Оптимизация запросов к static.modxvm.com

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...