Будет ли когда-то решена проблема с заполнением куки форума? При частой активности через недели 2-3 приходится вручную удалять куку, чтоб была возможность зайти на страницу форума, так как . Данная проблема не критична конечно, но все же бесит
Вид для печати
Будет ли когда-то решена проблема с заполнением куки форума? При частой активности через недели 2-3 приходится вручную удалять куку, чтоб была возможность зайти на страницу форума, так как . Данная проблема не критична конечно, но все же бесит
Активность каждый день, проблем никогда не было.
Сброшу скрин в следующий раз как появится. Может вопрос в браузере? У меня данная проблема возникает на хроме (тянется еще со старых версий форума)
Ну оно то не проблема (хотя для людей, которые не знают что такое куки все таки проблема), но все же это единственный сайт, где приходится мне раз в месяц вспоминать где находятся куки в браузере
Пфф , гугл хромом каждый день пользуюсь форумом , с момента покупки телефона год и ни разу не было проблем с форумом..
ммм. Парень, скорее всего у тебя проблема с телефоном/компьютером... В частности мало место на диске? Или проблемы с записью.. Я хз... Но точно не в форуме дело.
Куки - временные файлы, с фиксированным сроком хранения. И не может в принципе занимать больше 4Kb что является стандартным ограничением браузера, и то 4Kb - это текст на 4тысячи знаков латиницы или 2 тысячи знаков кириллицы. Этого более чем достаточно для использования.
Я только что глянул,
На этом форуме в куках хранится информация о текущем пользователе и текущей сессии,
Из долгохранимых кук там самая большая кука 51 байт содержащая строку csprf для авторизации форм остальные 10-25 байт,
Из временых кук (до закрытия браузер) самая большая кука - 300байт, содержащая историю, идентификаторы последних 5 тем которые я просматривал и больше 5 не накапливается
В общем информация в куках не накапливается ибо нечему накапливаться... хоть 20 страниц открой... хоть 100 страниц.
Так что скорее всего это проблемы с местом. Имейте ввиду что браузер что на телефоне что на компьютерах для кук использует системный диск (на котором записана система). Надо разбираться именно в этом направлении...
Не думаю, комп довольно заряженный и за рабочим компом тестил, да и Вусейл там выше написал, что такие же проблемы есть у него.
Скиньте скриншоты ошибки...
Просто я веб-разработчик с достаточно большим стажем. и мне даже стало интересно... Со стороны сервера такая проблема может быть только в одном случае если в куку записать value больше 4kb или больше 4к знаков латиницы... и отдаст просто folse... Но куки не созданы для хранения больших объемов информации...
Но допустим это действительно так, форум действительно слишком большой объем информации пытается записать в куку. И тут из официальной документации
Т.е. вернет false. и такой ошибки какой ты пишешь быть просто не может (ну если только это exception обработка ошибки, но такая обработка ошибки не имеет логики в production, только в debug и только для разработчика чтобы он сам понял что сделал бред и записал в куку слишком большой пласт информации).Цитата:
Если перед вызовом функции клиенту уже передавался какой-либо вывод (теги, пустые строки, пробелы, текст и т.п.) или превышен объем куки, setcookie() потерпит неудачу и вернёт false. Если setcookie() успешно отработает, то вернёт true. Это, однако, не означает, что клиентское приложение (браузер) правильно приняло и обработало cookie.
В общем Либо вы неправильно интерпретируете ошибку и имеется ввиду нехватка у вас места на ЖД для записи куки
Либо форум работает в debug режиме и косяк разработчика
Либо какой то мегакрутой разработчик форума накосячил выкинув debug информацию в продакшн=)
Но я не могу представить себе разработчика способного так накосячить с куками... это же бред записывать в куки текст объемом в 2 страницы А4... для этого есть База данных. В общем хотелось бы увидеть скриншот момента ошибки...
UPD. Записал видео тестирование и попытка поймать ошибку=) Думаю это всё до конца объяснит. https://youtu.be/kGN0otHWqL8
Спасибо вам за подробный тест sm5ile
Не уверен был ли там бэд реквест или ошибка с номером, но описание было иное, которое содержало текст "to large cookie size" или как-то так. В общем ловлю ошибку и возвращаюсь со скрином сюда.
ПС: на харде более 100 гб. свободного места
ммм..
Ошибка Request Header Or Cookie Too Large
Вот что я нашел по этому поводу. https://rusadmin.biz/oshibki/kak-isp...kie-too-large/, тут причины этой ошибки и варианты исправления
описание параметра large_client_header_buffers https://server-gu.ru/buffers-nginx/, тут доказательство что если бы была проблема на стороне сервера, ошибка была бы статичной и у всех.
Но это точно не связано с кодом самого форума и механикой кук, их размером и т.д.
Как я понял такая ошибка есть только в nginx сервере, но опять же если бы были проблемы именно с сервером такая ошибка была бы у всех а не у 1% всего комьюнити форума, а значит проблема на стороне клиента.
Я подразумеваю, что проблема в этих полях куки: vb_thread_lastview и vb_forum_view.
Когда серфаешь дофигища тем на форуме, то кол-во знаков в этих полях просто заоблачное, потому что хранят, не понятно зачем, все темы, которые я глядел, в принципе, а не за последние там 2-3 дня, к примеру.
С последней чистки там уже размер под 4кб в общей сумме.
И хранятся они на всю сессию, что, опять же, для первого поля не сильно логично.
- - - Updated - - -
@VúSale ^^^
- - - Updated - - -
Интересно, каким образом такое можно словить, что места на ЖД будет недостаточно, в нынешних реалиях то, когда 1Тб воспринимается уже, как что-то обычное и не сильно большое?
4кб не записать на ЖД, мммм, это прямо постараться нужно))
Вот такая ошибка возникает, только без nginx'a, вроде:
https://www.thewindowsclub.com/wp-co...ad-request.png
Должен заметить что ошибка 400 только на этом сайте, остальные никогда так не ломаются.
Лично у меня появляется раз в 7 - 14 дней.
Ты делаешь запрос на сервер, который тебе возвращает Bad request из-за неправильных куки и здесь проблема на стороне клиента?
Ты в этом уверен?
По факту клиента(здесь рассматриваю именно человека, а не браузер) не должны заботить такие проблемы, как куки и их чистка. Это всё должен решать сервер.
Если сервер возвращает Bad request на обычный запрос клиента - уже стоит задуматься над тем, как эту проблему решить, а не придумывать такой костыль, как "почистить вручную".
Тем более тебе прикладывают скрины ошибки + не один человек жалуется на эту проблему.
----
Вот представь, если бы у тебя в вк такое возникало и тебе служба поддержки пишет: "Проблема у вас, чистите куки вручную".
Удобно было бы пользоваться таким сервисом?
А ты, по факту, даже и не имеешь представления, что такое куки и как браузер работает, в принципе.
----
В дополнение к вышесказанному:
Есть такое понятие как "максимальный размер запроса", который устанавливается на стороне сервера.
Если он преувеличен - сервер может возвратить эту ошибку.
Как раз таки здесь и может крыться косяк.
Размер куки не преувеличен, но размер всего запроса выше установленного.
Еще раз, я ОПРОВЕРГ возможность переполнения кук, и ДОКАЗАЛ что в случае если бы была проблема на стороне сервера, данная проблема была
а) статичной (значит ПОСТОЯННОЙ)
б) соответственно была бы у всех пользователей постоянно, сайт бы не открывался у всех.
Я объяснил, показал, разжевал, дал ссылки на технические объяснения. И один фиг чел пишет что проблема в ресурсе... тьфу блин... слов нет... вк просто предлагает на такой запрос в техпод с такой ошибкой проверить свой комп на вирусы. Потому что со стороны сервера невозможно записать слишком большую куку(что еще раз говорю доказано), а со стороны клиента это делает только вирусняк.Цитата:
Решением данной проблемы Request Header Or Cookie Too Large со стороны пользователя является удаление куков проблемного сайта на компьютере пользователя. А со стороны администрации ресурса эффективным способом решения проблемы станет изменение параметра «large_client_header_buffers» в nginx. В большинстве случаев реализация данных советов помогает избавиться от возникшей ошибки, возобновив полноценную работу с сайтом на вашем ПК.
Есть правда еще 1 маааленький ну очень маленький шанс что на сервере битая оперативка ибо large_client_header_buffers - это запись заголовков в ОЗУ, в буфер. Но тогда проблемы были бы не у 1% а у 40-50% пользователей и форум бы пестрил запросами на эту ошибку...
Внимательно прочитай, пожалуйста.
Ещё раз поясню:
Чем длиннее куки, тем длиннее запрос, тем больше вероятность выйти за допустимые рамки, которые установлены на сервере.
Понятное дело, что не каждый человек, который находится на форуме, серфает его по максимуму. С данной проблемой он и не будет встречаться, потому что поля, которые я отметил выше, будут небольшие, в плане размера.
Блин парень, просто посмотри это видео а... и не пиши бред... https://youtu.be/kGN0otHWqL8
Я там доказал что кука больше 4kb просто не запишется и ошибки никакой не будет, её сам браузер просто не примет.
Окау, мы не знаем, что такое размер запроса(
Смотри изи способ как воспроизвести проблему даже на этой странице форума.
Добавляешь первое поле с именем test, к примеру, в куки и туда 4кб данных любых.
Добавляешь второе поле с именем test2, к примеру, в куки и туда 4кб данных любых.
Перезагружаешь страницу.
Ловишь ошибку.
блин я в шоке...
По стандарту максимум можно 20 кук на 1 домен повесить, я в том видео сделал 21 куку размером 4kb и никаких ошибок=) Далее перебрав с количеством кук я получил ошибку которая прямо говорит что превышен лимит заголовков, но не размер. У меня эту ошибку удалось воспроизвести у себя только если я вручную изменю уже записанную куку на более 4kb. И мне отдается ошибка именно такая что кука большая слишком.
UPD. но при этом технически средствами php записать куку более 4kb нереально.
Естественно что изменив вручную куку более 4kb на этом сайте - получишь эту ошибку. кстати в 4kb входит имя куки. Так что общее количество символов имя+value не должно превышать 4096 символов
Так мы про куки сейчас, по сути, и не говорим)
Явно проблема в ограничении размера запроса.
Вот пример кук и их длина, которые вызывают эту ошибку:
Вложение 929920
Кружком отметил ту, которую добавил вручную.
Ни одна из представленных в списке не выходит за пределы 4кб, но сервак пишет, что дружок, я такой запрос обрабатывать не буду.
- - - Updated - - -
Ну правильно, ты свой же сервак подымал и на нем тестировал)
Понятное дело, что конфигурация может отличаться)
Прошу Вас провести аудит следующих серверных переменных чтобы диагностировать проблему
client_body_buffer_size
client_header_buffer_size
client_max_body_size
large_client_header_buffers
Данные переменные позволят понять серверная эта проблема или всё же клиентская проблема... Если честно я больше склоняюсь к тому что это клиентская проблема... Но всё же есть мизерный шанс что серверная.
Данные переменные должны быть не менее
client_body_buffer_size 48K; // Это максимальный размер буфера который может использоваться для загрузки блока body
client_header_buffer_size 24k; // Максимальный размер буфера который может использоваться для хранения заголовков
client_max_body_size 12m; // Максимальный размер передаваемого блока body в который входят заголовки и POST запросы
large_client_header_buffers 2 12k; // принимает два значения, разделенных пробелами: количество буферов и размер буферов для чтения большого заголовка запроса клиента. второе число не может превышать client_body_buffer_size и client_header_buffer_size
Он у меня всегда поднят, я работаю php-разработчиком=)
Аналогичная проблема. Возникает и в Gecko, и в Blink'e. Частота реже, но напрягает.
Апнемс
Апнемс
@VúSale, ап
Что-то давно не апал тему.