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

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

10.07.2025, 08:04. Показов 1819. Ответов 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
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,992
10.07.2025, 11:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от 755 Посмотреть сообщение
Извините, Usaga, согласно информации примерный мах размер куки 5Кб. Если взять массив с запасом скажем на 200 элементов по 5 байтов получается примерно только 1Кб.
Мах размер далеко не превышен и что мешает их отправить? Будут какие-то задержки?
Ещё раз: какую проблему ты так хочешь решить? И ещё раз: куки не предназначены для передачи данных клиентских. И ещё раз ещё одного раза: куки не передадут данные быстрее и с меньшим трафиком, чем в body ajax-запроса.

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

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

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

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

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

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

Чтобы передать два массива (и три, и сто) заверни их в объект и передай в POST\PUT-запросе в виде JSON. Не трогай куки. Забудь про них.
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
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
3807 / 1645 / 428
Регистрация: 14.03.2022
Сообщений: 4,091
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
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
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
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,992
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
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
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
3807 / 1645 / 428
Регистрация: 14.03.2022
Сообщений: 4,091
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
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
10.07.2025, 12:07  [ТС]
Цитата Сообщение от black1385 Посмотреть сообщение
Куки хранятся в браузере, а браузер их хранит на компе пользователя.
Сессионные cookies также называют временными — они хранятся только во временной (оперативной) памяти устройства ровно до тех пор, пока пользователь находится на открытой странице сайта. Когда он закроет данную страницу или браузер, сессионные «куки» будут автоматически удаленыhttps://www.mvideo.ru/blog/pom... oni-nuzhny

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

А вот насколько можно доверять данному мнению... Лично я склонен верить, ибо, если не ошибаюсь, в более серьезных источниках читал, что session storage хранятся в памяти браузера. И это кажется более логичным: небольшой объем временной информации хранить в памяти, а не на диске.
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,992
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
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
10.07.2025, 12:51  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
GET: Используйте для получения данных. Например, загрузка страниц, изображений или API-запросов. GET-запросы безопасны и идемпотентны,
krvsa, ссылки быстро найти не удалось, но ранее читал, что URL при GET запросе подвержены какому-то типу уязвимости.

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

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

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

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

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

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

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

К тому, что можно судить по теории, а можно судить по результату.
0
Эксперт .NET
 Аватар для Usaga
14100 / 9317 / 1349
Регистрация: 21.01.2016
Сообщений: 34,992
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
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
10.07.2025, 13:48  [ТС]
black1385, Да, встречал описания, в каких директориях хранит конкретный браузер куки. Но не сказано, относится ли данное утверждение к всем типам куки, или только к постоянным. На скрине же, присланным Вами ранее, если не ошибаюсь, не указано расположение кукис.
* Usaga, это у нас идет чисто теоретический разговор.

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

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

Цитата Сообщение от Usaga Посмотреть сообщение
Две страницы тебя уговаривали сначала рассказать исходную проблему
На счет 2-х страниц. Не сказал бы, что уговаривали. Вопрос 1 был чисто теоретический и вначале обсуждался именно он, а потом уже плавно перетек и на другие темы. (в т.ч. и на аякс)
0
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 349
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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru