бинарный формат

fixxxer

К.О.
Партнер клуба
По логам в sentry с разных проектов ни разу не видел проблем с частично полученным контентом.
Только в вебсокетах бывает, что фрейм, полученный не целиком, отдается в JS, да и это - только в старых версиях ios safari, и настолько редко, что какие-то проверки там добавлять смысла нет.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
По логам в sentry с разных проектов ни разу не видел проблем с частично полученным контентом.
Только в вебсокетах бывает, что фрейм, полученный не целиком, отдается в JS, да и это - только в старых версиях ios safari, и настолько редко, что какие-то проверки там добавлять смысла нет.
Same here. За несколько лет видел ошибки разбора gzip на даже на jumbo frames всего раза три.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
SSL тоннель обеспечивает целостность неявно. При повреждении соединение разрушается.
gzip так же обеспечивает проверку целостности неявно, но в зависимости от реализации клиента, можно получить обрезанный контент.
Если клиент поддерживает message checksumming https://tools.ietf.org/html/rfc3230 , можно обеспечивать явную проверку целостности.
Разрушение соединения подходит - у меня идет манифест каталога, на уровне приложения перезапрашивает.

rfc3230 - прикольно, не знал о нем, стандартные браузеры его поддерживают?
главная проблема - sha на js на мобильном считать не очень хочется
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Ну, полифилл не подключится на chromium-based и ff, а это большинство. А вот какая там реализация - фиг его ж знает. Но скорее всего, тоже поверх XHR накрутили :)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в MDN написано, что fetch еще experimental и в следующих версиях не будет поддерживаться совместимость api
 

AmdY

Пью пиво
Команда форума
Ну, полифилл не подключится на chromium-based и ff, а это большинство. А вот какая там реализация - фиг его ж знает. Но скорее всего, тоже поверх XHR накрутили :)
боже упаси использовать fetch и прочую дрянь из es6, с обычным таймайтом вылазит куча проблем.
 

antson

Новичок
Партнер клуба
мои пять копеек. перетертый не до конца ветром кабель к wifi точке доступа на крыше может дать кучу не забываемых чудес .
Чтобы такое повторить нужно сильно по колдовать со шлюзом ;)
 

AmdY

Пью пиво
Команда форума
fetch не поддерживает отстановки по таймауту, надо городить свой через setTimeout, а так как fetch возвращает промис в интерфейсе которого не продуман внешний метод вроде abort-reject, то надо всё это дерьмо ещё завернуть во врапер с промисом
PHP:
   function timeout(time, promise) {
        return new Promise(function (resolve, reject) {
            promise.then(resolve);
            setTimeout(function () {
                reject(new Error('Timeout'));
            }, time);
        });
    }[
timeout(1000, fetch('....'));
Файл надо прицепить, опять городишь пристройку. В итоге как была куча библиотек и обёрток, так и осталось, плюс ещё надо полифилы подключать для альтернативных пользователей, бабели и т.д.. Подключаешь вебпак и тебе уже не хватает 8Г оперативки для разработки.
 

Sufir

Я не волшебник, я только учусь
Уже несколько в офтоп ушли, тоже влезу... А с упомянутым protobuf в PHP кто-то работал, какую библиотечку использовали? google/protobuf не рабочая, у меня сразу падает с кучей ошибок и нотайсов, не стал разбираться. Попробовал centraldesktop/protobuf-php, но что-то она сгенерить классы нужные не может, генерилка падает...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
промежуточный результат
сделал протокол вида json-csv: метаданные со структурой - отдельно, данные в многомерном массиве без ключей,
сравнил со стандартным json, в обоих случаях nginx отдавал данные в gzip и в https (tls 1.2), 40 тысяч записей, по 1000 записей в файле, 40 файлов
замерял tcpdump исходящие пакеты по 443 порту на локальном ip, то есть траффик с учетом хендшейков и http-заголовков

выигрыш json-csv составил 1.6 раза
предположение, что gzip нивелирует overhead от имен полей json и разделителей, не подтверждается

если интересно как замерять трафик по порту - могу написать
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
А насколько сильно там данные меняются со временем, в смысле постоянного наличия большого количества повторяемых подстрок?
Если не очень сильно, возможно, SDCH с заранее подготовленным словарем даст заметный профит. Он, правда, только в chromium-браузерах поддерживается, но их доля сейчас больше половины.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@fixxxer, 1% в день. Любопытный протокол. Только в IE нет поддержки.
Отличная идея - синкать словарь отдельно от данных, и дельта-изменения реализуются проще.
 
Последнее редактирование:
Сверху