Это был тот же вопрос, заданный здесь
Ваш веб-браузер хранит стопку (или список, если хотите) веб-страниц, которые вы посетили в этом окне. Допустим, вашей домашней страницей является google.com, а оттуда вы посещаете несколько других веб-сайтов: youtube.com, yahoo.com и cnn.com. При посещении последнего, список выглядит так:
google.com -> youtube.com -> yahoo.com -> cnn.com
^
|
current page
Когда вы нажимаете кнопку «Назад», браузер возвращает вас на предыдущую страницу в списке, например:
google.com -> youtube.com -> yahoo.com -> cnn.com
^
|
current page
В этот момент вы можете снова нажать Назад, чтобы перейти на youtube.com, или нажать Вперед, чтобы снова попасть на cnn.com. Допустим, вы нажимаете Назад во второй раз:
google.com -> youtube.com -> yahoo.com -> cnn.com
^
|
current page
Если вы сейчас перейдете, скажем, на abc.com, список изменится так:
google.com -> youtube.com -> abc.com
^
|
current page
Обратите внимание, что yahoo.com и cnn.com исчезли из списка. Это потому, что вы выбрали новый маршрут. Браузер поддерживает только список страниц, которые вы посетили, чтобы попасть туда, где вы сейчас находитесь, а не историю каждой страницы, на которой вы когда-либо были. Браузер также ничего не знает о структуре посещаемого вами сайта, что может привести к неожиданному поведению.
Вы находитесь на сайте покупок (например, ne.com), на котором есть категории и подкатегории товаров для просмотра. Дизайнер сайта продуманно предоставил панировочные сухари в верхней части окна, чтобы вы могли перемещаться по категориям. Вы начинаете с верхней страницы сайта, нажимаете «Оборудование», затем «Память». Список теперь выглядит так:
google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem
^
|
current page
Вы хотите вернуться в категорию «Оборудование», поэтому вы используете хлебные крошки, чтобы перейти в родительскую категорию, а не кнопку «Назад». Теперь список браузеров выглядит так:
google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
^
|
current page
Согласно структуре сайта, вы пошли назад (на уровень выше), но в браузере вы пошли вперед, потому что вы нажали на ссылку. Каждый раз, когда вы нажимаете на ссылку или вводите URL-адрес в адресной строке, вы продвигаетесь вперед в том, что касается браузера, независимо от того, ведет ли эта ссылка на страницу, на которой вы уже были.
Наконец, вы хотите вернуться на главную страницу сайта (ne.com). Вы можете использовать хлебные крошки, но на этот раз вы нажмете кнопку «Назад» - кажется очевидным, что это должно поднять вас на один уровень, верно? Но где это взять тебя?
Изначально многих пользователей смущает (включая меня, когда я именно так и поступаю), что вы "понижаете" уровень до категории "Память". Глядя на список страниц, легко понять, почему:
google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw
^
|
current page
Чтобы вернуться на главную страницу, используя только кнопку "Назад", потребуется еще два нажатия, чтобы вернуть вас "назад" в категорию "Оборудование" и, наконец, на главную страницу. Для программистов это кажется настолько очевидным, что происходит, но это удивляет постоянных пользователей все время, потому что они не понимают, что браузер ничего не знает об иерархической структуре любого веб-сайта, на котором они оказались.
Было бы замечательно, если бы браузеры позволяли дизайнерам сайтов программировать кнопку «Назад», чтобы сделать очевидную вещь (поднять вас на уровень), а не то, что она делает сейчас?
Редактировать: комментатор спросил, загружает ли браузер страницу или просто выводит ее из локального кэша.
Ответ зависит. Дизайнеры сайта могут указать, должен ли браузер кэшировать страницу или нет. Для страниц, которые настроены как не кэшированные, браузер перезагружает страницу с сервера при нажатии кнопки «Назад», как будто вы впервые ее посещаете. Для кэшированных страниц браузер выводит их из кэша, что намного быстрее.