Как работает ipkiwi
Почти всё, что делает ipkiwi быстрым и приватным, сводится к одному решению: посередине нет сервера. Эта страница объясняет, что заняло его место.
Origin-сервера нет
У обычного сайта где-то есть origin — машина в одном конкретном городе, до которой в итоге доходит каждый запрос. CDN впереди помогает, но всё персональное всё равно должно прийти с origin, поэтому посетитель из Джакарты ждёт полный круг до того города, где эта машина стоит.
У ipkiwi origin-сервера нет. Весь сайт — набор статических файлов, разложенных по сети Cloudflare, а код, который их персонализирует, выполняется на том же самом edge-сервере, который принял ваше соединение. В Сан-Паулу, Варшаве или Джакарте отвечающая вам машина находится в нескольких миллисекундах.
Как персональная страница остаётся кэшированным файлом
Страницы с вашими данными — это те же статические файлы, что и всё остальное. Когда такую страницу запрашивают, edge достаёт её из кэша и переписывает прямо в потоке, подставляя в размеченные места значения, взятые из самого соединения: ваш адрес, страну регистрации блока, провайдера, протокол, о котором договорился браузер.
Ничего не собирается, не запрашивается из базы и не рендерится. Файл был построен один раз, на деплое; вся работа на запрос — подстановка нескольких десятков строк в поток, который уже идёт.
Поэтому ответ лежит в HTML, а не появляется мгновением позже. Поэтому же нет сдвигов вёрстки: ничто не приезжает с опозданием, потому что ничто не догружается.
Логировать нечего
Нет ни базы, ни журнала запросов, ни скрипта аналитики. Это не сдержанность — логу просто некуда ложиться. Код работает столько, сколько длится один запрос, и по его завершении не хранит ничего.
Ваш адрес читается, потому что без чтения ответить невозможно, используется, чтобы написать вашу страницу, и исчезает вместе с ответом. Мы его не видим, и нет записи, которую можно было бы выдать, потерять или у нас затребовать.
Проверьте сами
Слова про скорость и приватность ничего не стоят, поэтому страницы-инструменты измеряют себя сами. Строка под ответом показывает три числа, снятые вашим браузером с запроса, который вы только что сделали: за сколько ответил edge, сколько запросов ушло на другие домены и сколько кук было записано.
Последние два всегда нули. С других доменов не грузится ничего — ни шрифтов, ни скриптов, ни тегов, ни фреймов, — и это проверяется в панели сети браузера секунд за десять.
Ещё две вещи, которые стоит попробовать: выключите JavaScript и перезагрузите — ответ останется на месте; затем откройте исходный код страницы и найдите свой адрес прямо в HTML.
Те же данные в JSON
Всё, что есть на странице, доступно по одному адресу — без ключа, без регистрации и без лимита при обычном использовании:
curl https://ipkiwi.com/api/me
/api/me.txt отдаёт только сам адрес, для скриптов оболочки. Оба работают на том же edge, отвечают за те же несколько миллисекунд и логируются ровно настолько же, насколько страницы: никак.
Частые вопросы
Почему это быстрее других сервисов проверки IP?
Потому что ничему не нужно никуда ехать. Обычный сайт загружает страницу, запускает скрипт, обращается к API и только потом рисует ответ. Здесь ответ уже лежит в HTML, когда страница до вас доходит, и записала его та же машина, которая приняла ваше соединение.
Сайт работает с выключенным JavaScript?
Ответ — да. Ваш адрес, местоположение, провайдер и параметры соединения находятся в самом HTML. JavaScript добавляет только то, чего сервер знать не может: размер экрана, часовой пояс браузера — и измерения в верху страниц-инструментов.
Как можно вообще не вести логи?
Их некому писать. Код живёт ровно столько, сколько длится один запрос, и после него ничего не хранит. Не сохранять данные — это меньше работы, чем сохранять, а не больше.
Откуда берутся измерения на страницах-инструментах?
Из вашего же браузера. Время ответа и число запросов приходят из Navigation Timing и Resource Timing и описывают запрос, который вы только что сделали. Мы этих чисел не видим.