Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359

2 особенности по Сессионным куки, на которые не удалось найти ответ

10.07.2025, 08:04. Показов 1821. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если не затруднит, не подскажите ответы :

Вопрос 1. Где хранятся SessionCookie ? В памяти или на диске компьютера?
В одном источнике ответ нашел - в памяти (вроде бы логично) - но правильный ли он (учитывая, что был выражен в форме аксиомы без всяких ссылок) ?
Вопрос скорее более чисто технический, нежели практический. Ибо, даже если в памяти, то разница в скорости обработки информации совершенно минимальна.

Скорее пытаюсь определиться в целесообразности применения данного вида куки.
В пользу их применения - одна особенность - они сразу видны и на сервере. Передаю массив - не знаю, как в других языках, а php сразу формирует их в массив при чтении куки. Учитывая, если они хранятся в памяти - это оптимальный вариант передачи информации в плане скорости.
Но, т.к. одновременно использую аякс, не проще ли в нем передать всю информацию с точки зрения временных характеристик?

Вопрос 2. Можно ли принудительно командой js удалить (очистить) SessionCookie, чтобы они не передавались в сеансе ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2025, 08:04
Ответы с готовыми решениями:

Удалить значение из куки ответом от сервера.
res.cookie(`token= ${token}; Secure; HttpOnly`) вот так я записываю значение в куки, а как удалить

Как исправить код, который запоминает в куках и выводит на след странице данные пользователя?
Здравствуйте. Имеется код, который запоминает в куках браузера введенные пользователем имя и...

Не удалось получить свойство "fadeIn" ссылки, значение которой не определено или является NULL
Доброго времени суток! Нашла хороший пример формы обратной связи:...

49
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 11:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от 755 Посмотреть сообщение
Извините, Usaga, согласно информации примерный мах размер куки 5Кб. Если взять массив с запасом скажем на 200 элементов по 5 байтов получается примерно только 1Кб.
Мах размер далеко не превышен и что мешает их отправить? Будут какие-то задержки?
Ещё раз: какую проблему ты так хочешь решить? И ещё раз: куки не предназначены для передачи данных клиентских. И ещё раз ещё одного раза: куки не передадут данные быстрее и с меньшим трафиком, чем в body ajax-запроса.

Добавлено через 46 секунд
Цитата Сообщение от 755 Посмотреть сообщение
Не о том - два разных массива, чтобы передать в одном запросе аякс (если не ошибаюсь) надо объединить в один.
Что? А остальные как передают два (и более) массивов в одном запросе?.. Я за десять лет разработки впервые такую дичь слышу)
1
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 11:16  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Мне видится, что в силу малой компетенции ты пытаешься найти неизвестное решение неизвестной тебе проблемы, которой ещё нет.
Вполне возможно, на счет компетенции.
А вот насчет проработки алгоритма: [куки], localStorage, indexedDB, sql нее могу согласиться.

Общеизвестный факт: если сразу не проработать алгоритм, почти наверняка придется переделывать и потеряешь намного больше (в данном случае мне время частично не жаль, я на этом учусь). Но глупо наступать на одни грабли несколько раз - вначале думал, что хватит одного localStorage. Сейчас понял: т.к. информации много, надо продумать ее организацию заранее - лучше сейчас потратить день, чем потом месяц.
А заодно решил рассмотреть и возможность использования куки в данном разрезе.

Хотя, наверное, мы немного отклонились от темы заголовка, хотя все это и касается вопросов использования куки

Добавлено через 3 минуты
Цитата Сообщение от krvsa Посмотреть сообщение
755, речь идет вот об этом?
expires, max-age
По умолчанию, если куки не имеют ни одного из этих параметров, то они удалятся при закрытии браузера. Такие куки называются сессионными («session cookies»).
Да, krvsa, речь вел именно об этих куках - по крайней мере я так думал (извините, только сейчас увидел дописанное)
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 11:17
Цитата Сообщение от 755 Посмотреть сообщение
если сразу не проработать алгоритм, почти наверняка придется переделывать и потеряешь намного больше
Прорабатывать нужно только, когда понимаешь что и зачем делаешь. Тогда будет результат. А когда не понимаешь и выдумаешь что попало, то это уже и есть потери большего, чем нужно.

Тут как раз этот случай. Судя по всему, ты просто не знаешь, как передать пачку данных в запросе. Выдумал ерунду с куками и запутался с этим решением сам и запутал нас.

Типичная "проблема X-Y": обсуждение не исходной проблемы, а твоего видения её решения.

Чтобы передать два массива (и три, и сто) заверни их в объект и передай в POST\PUT-запросе в виде JSON. Не трогай куки. Забудь про них.
1
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 11:28  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
куки не передадут данные быстрее и с меньшим трафиком, чем в body ajax-запроса.
В этом не сомневался.
Но истинно ли обратное: куки не передадут данные МЕДЛЕННЕЕ и с меньшим трафиком, чем в body ajax-запроса ?

Цитата Сообщение от Usaga Посмотреть сообщение
А остальные как передают два (и более) массивов в одном запросе?.
У меня только примерно 1,5 года опыта разработки. Возможно, многие намного способнее меня и и за этом время смогут намного больше, но: возможно есть другой способ, нежели тот, который узнал:
xmlHttp.send(JSON.stringify(nam_mas));
Если правильно понял, при таком подходе нельзя указать список массивов через запятую, а только присвоить элементу массива другой массив?

Ps. Прошу прощения, но это уже совсем не по теме.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,154
10.07.2025, 11:29
Цитата Сообщение от 755 Посмотреть сообщение
правильно ли понял, если передаю через аякс, то данные указываются в запросе xmlHttp.send(params) ?
"Аякс" так же бывает "разный"...
Можно использовать XMLHttpRequest, а можно fetch...
Можно передавать данные в самом URL при GET запросе... А можно в "теле" при более сложных запросах (POST и иже с ними)...

Поскольку спросил ты явно про XMLHttpRequest - в букваре есть пара примеров как можно организовать передачу данных этим способом:
Для GET
JavaScript
1
2
3
4
5
let url = new URL('https://google.com/search');
url.searchParams.set('q', 'test me!');
 
// параметр 'q' закодирован
xhr.open('GET', url); // https://google.com/search?q=test+me%21
Для POST
JavaScript
1
2
3
4
5
let xhr = new XMLHttpRequest();
let formData = new FormData([form]); // создаём объект, по желанию берём данные формы <form>
formData.append(name, value); // добавляем поле
xhr.open("POST", "/article/xmlhttprequest/post/user");
xhr.send(formData);
https://learn.javascript.ru/xmlhttprequest
1
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 11:36  [ТС]
Спасибо, krvsa, именно так и поступаю - - передача данных в самом URL при GET запросе мне не понравилась.
Но вот более сложный вопрос, передача нескольких массивов - кроме как объединения их в один, другого решения пока нет:
JavaScript
1
2
3
4
 mas = new Array(new Array());
 mas1= new Array();
 mas[0][1] = mas1;
xmlHttp.send(JSON.stringify(mas));
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 11:42
Цитата Сообщение от 755 Посмотреть сообщение
Если правильно понял, при таком подходе нельзя указать список массивов через запятую, а только присвоить элементу массива другой массив?
Можно... Ты за 1.5 года даже этих азов не изучил?.. Можно и через формы передавать, можно и через JSON.

Добавлено через 3 минуты
Цитата Сообщение от 755 Посмотреть сообщение
Но вот более сложный вопрос, передача нескольких массивов - кроме как объединения их в один, другого решения пока нет:
Есть:

JavaScript
1
2
3
4
5
6
const arr1 = [1,2,3];
const arr2 = [4,5,6];
 
xmlHttp.send(JSON.stringify({ array1: arr1, array2: arr2 })));
или
xmlHttp.send(JSON.stringify({ arrays: [arr1, arr2] })));
1
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 11:43  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Можно и через формы передавать, можно и через JSON
Из php в js передавал и принимал (ответную информацию), а вот туда не проверял.
Спасибо, Usaga, попробую.

Ps
На самом деле не было в этом большой необходимости - только сейчас возникла ситуация с несколькими двумерными массивами.
0
Заблокирован
10.07.2025, 11:50
Цитата Сообщение от 755 Посмотреть сообщение
У меня только примерно 1,5 года опыта разработки.
А судя по постам, то как будто не больше полторы недели.
Куки хранятся в браузере, а браузер их хранит на компе пользователя. Для каждого сайта свои куки. Сессионная кука это как ссылка на файл сессии для данного юзера, который хранится на сервере сайта. Сессии могут храниться в файлах, а могут в базе. На скрине я пометил сессионную куку. Там есть и другие куки, которые хранят различную информацию.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3823 / 1661 / 428
Регистрация: 14.03.2022
Сообщений: 4,154
10.07.2025, 11:52
Цитата Сообщение от 755 Посмотреть сообщение
передача данных в самом URL при GET запросе мне не понравилась.
Ну ты даешь!
Тут подход не "неравиться/не_нравиться"... Есть некая "традиция":
Рекомендации по выбору метода

GET: Используйте для получения данных. Например, загрузка страниц, изображений или API-запросов. GET-запросы безопасны и идемпотентны, что делает их идеальными для операций, которые не должны изменять данные на сервере.

POST: Используйте для создания новых ресурсов или отправки данных на сервер. Например, регистрация пользователей, отправка форм. POST-запросы не являются идемпотентными, что делает их идеальными для операций, которые изменяют данные на сервере.

PUT: Используйте для обновления или создания ресурса, когда вы знаете его идентификатор. Например, обновление профиля пользователя. PUT-запросы идемпотентны, что делает их идеальными для операций, которые должны быть повторяемыми без изменения состояния сервера.

DELETE: Используйте для удаления ресурса. Например, удаление аккаунта пользователя. DELETE-запросы идемпотентны, что делает их идеальными для операций, которые должны быть повторяемыми без изменения состояния сервера.

PATCH: Используйте для частичного обновления ресурса. Например, изменение одного поля в профиле пользователя. PATCH-запросы позволяют минимизировать объем данных, передаваемых на сервер, и уменьшить нагрузку на сеть.
https://sky.pro/wiki/sql/metod... -i-drugie/
0
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 12:07  [ТС]
Цитата Сообщение от black1385 Посмотреть сообщение
Куки хранятся в браузере, а браузер их хранит на компе пользователя.
Сессионные cookies также называют временными — они хранятся только во временной (оперативной) памяти устройства ровно до тех пор, пока пользователь находится на открытой странице сайта. Когда он закроет данную страницу или браузер, сессионные «куки» будут автоматически удаленыhttps://www.mvideo.ru/blog/pom... oni-nuzhny

* Надеюсь, не нарушаю правил, размещая данную ссылку с сайта на техническую статью.

А вот насколько можно доверять данному мнению... Лично я склонен верить, ибо, если не ошибаюсь, в более серьезных источниках читал, что session storage хранятся в памяти браузера. И это кажется более логичным: небольшой объем временной информации хранить в памяти, а не на диске.
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 12:17
755, без разницы, кто что пишет. Браузеры могут хранить где и как им вздумается. Единственное, что они все обязаны соблюдать одно внешнее поведение - удалять\не использовать такие куки после закрытия вкладки. При этом эти куки могут оставаться как в памяти, так и на диске.

Ещё раз повторяю: отстань от этих кук!
0
Заблокирован
10.07.2025, 12:20
Цитата Сообщение от 755 Посмотреть сообщение
Сессионные cookies также называют временными — они хранятся только во временной (оперативной) памяти устройства ровно до тех пор, пока пользователь находится на открытой странице сайта.
Это если не устанавливать время жизни куки. Например, на моих сайтах время жизни сессионной куки одни сутки. Настраивается в php.ini
Code
1
2
session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400
На этом форуме удаляется после закрытия браузере. Про открытую страницу это какой-то бред. Получается я открою десять страниц и на каждой будет своя сессия? Полная чушь.
0
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 12:51  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
GET: Используйте для получения данных. Например, загрузка страниц, изображений или API-запросов. GET-запросы безопасны и идемпотентны,
krvsa, ссылки быстро найти не удалось, но ранее читал, что URL при GET запросе подвержены какому-то типу уязвимости.

Цитата Сообщение от black1385 Посмотреть сообщение
А судя по постам, то как будто не больше полторы недели.
Что делать, black1385, видимо у меня нет способностей к освоению материала.

Цитата Сообщение от Usaga Посмотреть сообщение
Ещё раз повторяю: отстань от этих кук!
Usaga, спасибо за совет, но раз уж начал, неправильно останавливаться на полпути - надо понять хотя бы частично данный вопрос.

Цитата Сообщение от Usaga Посмотреть сообщение
Браузеры могут хранить где и как им вздумается. Единственное, что они все обязаны соблюдать одно внешнее поведение - удалять\не использовать такие куки после закрытия вкладки. При этом эти куки могут оставаться как в памяти, так и на диске.
Наверное, правильная мысль - видимо ответ на вопрос, где хранятся временные куки, знают только разработчики конкретного браузера.

Добавлено через 3 минуты
Благодарю всех, поучаствовавших в теме, за помощь.
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 12:54
Цитата Сообщение от 755 Посмотреть сообщение
но раз уж начал, неправильно останавливаться на полпути
Даже когда уже осознал, что путь ведёт в кирпичную стену?.. Ты как самурай, цели нет, есть только путь?

С таким подходом не удивительно, что твои 1.5 года разработки такие, что азов не знаешь)
0
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 13:09  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Даже когда уже осознал, что путь ведёт в кирпичную стену
Usaga, стена еще за горизонтом.

Цитата Сообщение от Usaga Посмотреть сообщение
С таким подходом не удивительно, что твои 1.5 года разработки такие, что азов не знаешь
Просто выбрал другой подход: азы изучаю одновременно с программированием. Такое тоже возможно. А цель как раз есть.

Кстати недавно удаленно показывал знакомому программисту, который позвонил и поинтересовался, как идут дела с проектом и который действительно много знает, свой продукт. Его мнение: что неплохо знаю css, js (возможно, он даже сказал, что хорошо). О php трудно судить, т.к. в основном все написано на js.
Когда же показал второй незаконченный продукт, большая часть которого уже была написана на php, за который возможно взялся опрометчиво - думал он намного проще - его мнение изменилось и в отношении моего знания php.

К тому, что можно судить по теории, а можно судить по результату.
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,100
10.07.2025, 13:15
Цитата Сообщение от 755 Посмотреть сообщение
cтена еще за горизонтом.
Но ты уже знаешь, что там стена. Т.е. ты знаешь, что тебе не туда надо, но всё равно продолжаешь идти?

Цитата Сообщение от 755 Посмотреть сообщение
. Его мнение: что неплохо знаю css, js (возможно, он даже сказал, что хорошо). О php трудно судить, т.к. в основном все написано на js.
Цитата Сообщение от 755 Посмотреть сообщение
К тому, что можно судить по теории, а можно судить по результату.
Дружище, какие результаты? Какой "хорошо знаю js"? Ты запрос банальный послать не можешь. Две страницы тебя уговаривали сначала рассказать исходную проблему (ибо стало очевидно, что она завуалирована), а потом уговаривали почитать про AJAX и оставить в покое куки, которые к исходной проблеме отношения не имеют...

Совет дня: потрать вечерок, да почитай про HTTP-запросы, формат JSON (можно ещё Form - application/x-www-form-urlencoded). А эти разговоры про знакомого программиста - пустой звук.
0
Заблокирован
10.07.2025, 13:16
Цитата Сообщение от 755 Посмотреть сообщение
знают только разработчики конкретного браузера.
Всё намного проще


Только сейчас заметил, что написал запрос с ошибками. Но ответ был дан всё-равно
0
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
10.07.2025, 13:48  [ТС]
black1385, Да, встречал описания, в каких директориях хранит конкретный браузер куки. Но не сказано, относится ли данное утверждение к всем типам куки, или только к постоянным. На скрине же, присланным Вами ранее, если не ошибаюсь, не указано расположение кукис.
* Usaga, это у нас идет чисто теоретический разговор.

Цитата Сообщение от Usaga Посмотреть сообщение
Но ты уже знаешь, что там стена.
Нет, не знаю. Но даже если она и есть (у учетом Вашего мнения), ее еще можно и попытаться обойти. (как самурай ее разбить пытаться не буду)

Цитата Сообщение от Usaga Посмотреть сообщение
Какой "хорошо знаю js"? Ты запрос банальный послать не можешь.
Просто высказал его мнение (считаю искреннее), хотя и отличное от моего.
Если высказал сомнения в отправке нескольких массивов, это не значит, что не могу - просто пока в этом не было необходимости - хотя на самом деле в браузере от сервера без проблем получал и до 5 массивов.
И с запросами все нормально: и отправляются, и получаются, и контролируются на безопасность.
Другое дело, что все это происходит на локалке, а вот как поведет себя в реальности - время покажет - пока еще не готов.

Цитата Сообщение от Usaga Посмотреть сообщение
Две страницы тебя уговаривали сначала рассказать исходную проблему
На счет 2-х страниц. Не сказал бы, что уговаривали. Вопрос 1 был чисто теоретический и вначале обсуждался именно он, а потом уже плавно перетек и на другие темы. (в т.ч. и на аякс)
0
-13 / 2 / 0
Регистрация: 12.11.2020
Сообщений: 359
11.07.2025, 11:05  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Это чисто технический вопрос.
Здравствуйте, voraa, возможно неправ, но решил Вам возразить - только сегодня вспомнил о второй причине, почему интересовало, где размещаются временные куки: в ОП или на диске.
Кстати, Вы даже озвучили эту причину: думаю, что к переменным, размещенным в памяти, минимум намного сложнее получить доступ третьим лицам (Вы же ответили, что невозможно) - а это уже не технический, а чисто практический вопрос.

И уже сегодня сообразил, если куки, созданные с помощью document.cookie без даты - все-таки временные, то из сохранения их после выключения компьютера следует факт их размещения на диске.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2025, 11:05
Помогаю со студенческими работами здесь

Особенности работы скриптов
Добрый вечер. Сегодня начал изучать JavaScript, сразу же наткнулся на некоторые трудности. ...

В чем особенность сайта на яваскрипт
Для чего делается сайт исключительно на яваскрипт? какие у него преимущества?

Интересная особенность с bold()
Вот наткнулся на интересную особенность, которой пока не могу найти внятного объяснения. Дело в...

Особенности массива элементов DOM
Всем привет. У меня тут интересная ситуация возникла, никогда бы не подумал, что такое может быть....

Особенности onclick
Добрый день, возник такой вопрос. Простой скрипт добавляющий ширину к контейнеру по нажатию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru