Hammerhall Сколько стоит Войти

Кука: как забывчивому интернету выдали номерок

Выпуск 1 · читать минут 5

Слово: кука · где услышишь: вход на платформу, «кука сессии», сервисы команды

«Истории слов» — рубрика буткемпа Hammerhall. Наша команда строит учебную платформу и сервисы вокруг неё, а здесь рассказывает, откуда взялись слова, на которых говорит.

1994 год, Калифорния. Молодая компания Netscape делает браузер — программу, через которую смотрят сайты. Среди её программистов — Лу Монтулли (Lou Montulli). Он недавно бросил университет, чтобы сюда прийти.

У тогдашнего интернета была странная беда: он ничего не помнил. Открываешь страницу — сайт тебя видит. Переходишь на соседнюю — и для сайта ты уже незнакомец. Как разговор с человеком, который после каждой фразы забывает, кто ты. Сам Монтулли потом так и говорил: сайт забывал своих посетителей.

Попробуй в таком мире что-нибудь купить. Положил в корзину яйца, перешёл на страницу с маслом — корзина пустая. Интернет-магазин так не построишь. А Netscape нужно было решить именно эту задачу: сделать корзину покупок.

Записка, которую носит браузер

Монтулли придумал простую вещь. Пусть сайт, когда ты к нему пришёл, отдаёт браузеру маленькую записку. Браузер её хранит и каждый раз, когда ты снова заходишь на этот сайт, молча её показывает. Сайт читает и вспоминает: а, это ты, у тебя в корзине яйца. По словам самого Монтулли, написал он это примерно за час.

Осенью 1994 года вышел первый браузер Netscape, и записки в нём уже были. Первое, что Netscape с их помощью проверял, — пришёл ли человек на его сайт впервые.

Монтулли описал записку для других программистов, и в описании есть чудесная фраза: эта штука называется cookie «без особой на то причины» (for no compelling reason). Cookie по-английски — печенье. А русские программисты говорят короче: кука.

Волшебное печенье#

Причина, конечно, была. Задолго до первых сайтов у программистов ходило выражение magic cookie — «волшебное печенье». Оно встречается уже в руководстве 1979 года к системе Unix. Так называли маленький кусочек данных, который одна программа выдаёт другой. Та хранит его, не заглядывая внутрь, а потом возвращает — и по нему первая программа понимает, о чём речь.

В старом словаре программистского жаргона, Jargon File, есть прекрасный пример такого печенья: квитанция из химчистки. По-нашему — номерок в гардеробе. Сам по себе он ничего не значит: кусочек пластмассы с цифрой. Но по нему тебе отдают именно твоё пальто. Монтулли слышал про «волшебное печенье» ещё в студенчестве — взял половину выражения, и получилась кука.

А почему печенье? Тут начинаются догадки. Монтулли в интервью говорил: «Думаю, это от печенья с предсказанием: записка, во что-то завёрнутая, и снаружи её не видно». Красиво и похоже на правду. Но он говорит «думаю»: выражение придумал не он, а кто и почему его придумал — точно неизвестно.

А версия про Гензеля и Гретель, которые сыпали крошки, чтобы найти дорогу домой, — чистая легенда. Свидетельств нет, да и в сказке крошки были хлебные.

Свой номерок в каждом гардеробе

Ещё одно Монтулли решил с самого начала: кука одного сайта показывается только этому сайту. Не один пропуск на весь интернет, а свой номерок в каждом гардеробе — чтобы никто не прошёл за тобой следом от сайта к сайту.

Через пару лет рекламщики нашли обход. Их реклама стояла на множестве сайтов сразу. Браузер грузил её и каждый раз показывал рекламщику номерок, который тот сам и выдал. Сайты разные, а номерок один — и рекламщик видел, где ты ходишь. Монтулли признавался, что был немного в шоке: «Мы ведь специально устроили всё так, чтобы это было невозможно».

С тех пор о куках спорят. Отсюда окошки «Мы используем куки» почти на каждом сайте: европейский закон требует спросить твоего согласия. А некоторые браузеры чужие куки уже не пропускают вовсе.

Кука у нас#

Сегодня кука — всё тот же номерок. Ты один раз вошёл на сайт с паролем, дальше сайт узнаёт тебя по куке и не спрашивает пароль на каждой странице. Почистил куки — и сайт тебя снова не помнит, как гардеробщик, который видит тебя впервые.

Когда ты входишь на платформу буткемпа, браузер получает куку. У нас её называют кукой сессии: сессия — это твой визит от входа до выхода. Для команды эта кука значит важную вещь: за ней живой человек в браузере. Ты.

Вокруг платформы есть и другие программы команды — например, шлюз, который пишет людям уведомления. Паролей они не хранят и не проверяют: это дело одной платформы.

А у программ, которые работают сами, без человека, вместо куки служебный ключ. Но это уже другая история — выпуск 2.

Кука — номерок, по которому сайт тебя узнаёт. А у нас за каждым таким номерком — живой человек.


Источники

← Все истории слов

Попробовать руками

В кузницах Hammerhall — задачи по Java, которые проверяет сервер: решаешь в своей IDE, отправляешь одной командой, проверка запускает твои тесты и закрытые. Сложность растёт вместе с решённым, первые задачи бесплатны.