Что происходит во время долгой авторизации некоторых сайтов?
Добрый день!
Есть несколько сайтов, одни крупные, вторые не очень, где вводишь данные для входа на сайт (логин и пароль), и ждешь, секунды 3 все это дело грузится, страница перезагружается, опять ты попадаешь на форму входа, и появляется сверху сообщение мол: "Вход успешен, редирект...", и это сообщение еще висит секунд 4-5, потом наконец-то тебя перекидывает в личный кабинет. Вот вопрос, я всегда подобные вещи разрабатывал довольно просто: логин\пароль проверяю по базе, если сошлось - добавляю инфу в сессию и отправляю на страницу личного кабинета. Быстро и без лишних сообщений. Так вот, может я что-то не так делаю? Может на таких сайтах, где все это долго, производится куча каких-то операций, о которых я даже не знаю?
Спасибо!
Факторов может быть настолько много, что даже страшно представить. Может быть задержка ответа (если сайт, к примеру, американский), перебои в интернет соединении, загруженность сайта (это из явных технических задержек). Программных задержек ещё больше: валидация модели, поиск по базе, да и банальное кэширование данных для дальнейшей быстрой работы с сайтом: вы же не знаете какие именно процессы происходят во время выполнения кода, может там куча разных статических данных запрашиваются, забиваются в кэш/сессию. может там ещё какие данные подтягиваются со сторонних сервисов и т.д. Я к чему веду: бекэнд (да и фронт тоже, просто его легче отследить) порой настолько загадочная вещь, что лучше даже не задумываться - если грузится значит так нужно, значит не просто так. Ну я просто сомневаюсь, что люди, которые разрабатывали эти сайты намеренно поставили небольшую задержку скажем в 2-3 секунды (да и не слишком большая это задержка), чтобы вы чувствовали, что там выполняются какие-то массивные процессы. =)
Для не авторизованных контент отдается быстро из кеша.
Яркий пример лайвжурнал.
Nginx в режиме прокси из любого г. может сделать супер быстрый сайт.
А на крупных проектах возможно уже достигли предела производительности,
а экономической целесообразности улучшать время отклика нет.
Скорее всего есть несколько причин:
1. Используется сложный алгоритм хеширования пароля. Пароль всегда хешируется чтобы сравниться с хешем который есть в БД. Например php.net/manual/en/function.password-hash.php при большом значении cost считается довольно долго.
2. Поскольку сервисы крупные, то возможно есть временные(из-за большого числа запросов) и сетевые задержки при работе с различными серверами приложения.