@phpclubru

Страница 661 из 956
Yuriy
13.09.2018
09:22:32
Имел ввиду ид сессии.

Dmitry
13.09.2018
09:22:34
Причем тут страдж, аутентификацию ты по куке делаешь все-равно, нет куки - нет проблем

Yuriy
13.09.2018
09:39:04
“Встроенными PHP”? Звучит бредово
пхп по умолчанию сам устанавливает куку сессии - это имел ввиду. сейчас пытаюсь отловить проблему/фичу на "чистом-непорочном" скрипте, чтобы либо убедиться в её актуальности, либо склониться к вероятности, что я что-то упускаю. Хром, кстати, обновился только что - может сама собой мистика уйдёт.

dev
13.09.2018
09:46:09
Дратути) Ощем, пару дней убил тут на одну "фичу" Хрома. Делюсь опытом. Нашёл подтверждения "фичи" в инонете. Суть такова. Руководствуясь идеей загружать страницы "ещё быстрее", разрабы Хрома решили отправлять "предварительный" (официальной терминологии пока не обнаружил) GET-запрос В ПРОЦЕССЕ ВЫБОРА запомненного URL в выпадающем списке адресной строки, то есть, вы ещё не перешли на страницу а только думаете нажать - Хром скорее всего её подгрузит предварительно и потом ещё раз, когда вы на неё перейдёте. "Скорее всего", как я понял, зависит от частоты обращаемости к странице, от того как давно была загружена страница ранее, от того насколько часто эта страница меняется, от того сколько в среднем эта страница грузится. Дело было так: дебагил страницу и некоторую управляющую тестовую переменную передавал через GET-запрос, и, соответственно, тестовое действие срабатывало 2жды и причём не всегда. Про автозапрос /favicon.ico знание есть, и он исключался в этих ситуациях, а вот про двойной GET-запрос - крайне удивился. Конечно, на том же стэкаверфлоу такому же "открывателю" как я пишут, что мол плохой тон делать управление через GET-запрос и подобное. Но как насчёт, к примеру, серверной статистики, когда идёт подсчёт загрузок. Да масса вещей, которые могут оказаться скомпрометированы подобным неявным поведением Хрома. Уот так уот.
это вполне нормально и ничего критического нет

Google
dev
13.09.2018
09:46:30
удивлю но если ссылку кинешь в скайп/телеграм то внезапно увидишь гет запрос от серверов буржуйских. чудеса но что поделать

и тот факт что коряво работает скрипт при таком поведении это не баг хрома или еще. это скорее всего неправильно сделан скрипт что он както реагирует и чтото меняет при гет запросах =\ имхо

Artem
13.09.2018
10:33:10
тут же не java группа, мог бы и код переписать p.s. и да, всех с праздником.

Yuriy
13.09.2018
10:38:58
Ощем, нашёл причину, вернее логику. Когда пхп инициирует сессию он посылает в тч такой заголовок: Cache-Control: no-store, no-cache, must-revalidate А хром, ко всем подобным страницам ранее выдавшим кэш-контрол с такими настройками посылает предварительный запрос. Фактически сервер говорит, что страницу не нужно запоминать. Хром говорит ОК, но ради увеличения скорости загрузки пока пользователь не нажал но подумал это сделать (выбирая в выпадающем списке адресной строки) - обращается к странице

Сейчас сделаю видос на память о такой фичи.

ustasby
13.09.2018
10:52:45
Предзагрузка вроде как несколько лет работает? С каких гор спустился или с какого леса вышел?

Yuriy
13.09.2018
18:15:00
Предзагрузка вроде как несколько лет работает? С каких гор спустился или с какого леса вышел?
Ну если ты такой как бы знаток уже 2 года как, то почему не упомянуть заголовок HTTP_PURPOSE с его значением prefetch, CASHE-CONTROL с no-cashe, must-revalidate? Я уже раскопал детали, позже опубликую. Но это скорее для тех, кто не боится чего-то не знать ??‍♂️

Dmitry
13.09.2018
18:20:32
кеш контрол из другой оперы, а purpose вроде хром перестал ставить

Yuriy
13.09.2018
18:20:48
Ставит.

Dmitry
13.09.2018
18:22:16
ну в общем пофиг... не представляю зачем это может понадобится Но можешь рассказать, хуже не будет

Google
Yuriy
13.09.2018
18:51:26
Ну на хабре была статья 100 лет назад где все было расжевано, кому лень прочитать тот может и дальше ставить опыты.
Я, конечно, не смотрел десять страниц гугла вглубь по этой проблеме, но гуглил и в том числе инонет, вообще его предпочитаю, ставил фильтры на поиск показывать последнее за год в тч. Нигде проблема толком не освещена. Ютубил, там есть видос близкий, но крайне невнятный и ничего об этих управляющих заголовках. Я не исключаю, что упустил. Но мой вопрос, хотя и риторический, но более весомый: почему Вы будучи знатоком сразу не сказали что смотреть? Я бы, если бы знал - тут же выдал ключевые моменты, но не стал бы показывать свою гипотетическую гиперосведомлённость - к чему?

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

Pavel
13.09.2018
19:02:48
Ну на хабре была статья 100 лет назад где все было расжевано, кому лень прочитать тот может и дальше ставить опыты.
Фишка в том что "100 лет назад" - это баг а не фича. Я никогда не ориентируюсь по статьям которые старше 3-4 лет, стандарты постоянно меняются, браузеры перевыпускаются, заголовки новые добавляются.

Если в статье что-то написано про веб и она 2010 года, то скорее всего она лжива и неактуальна

Pavel
13.09.2018
19:04:35
У хрома есть более 62 версий, не считая минорные и патчи

Если бы все они были одинаковые то версия была бы одна а не 62

Yuriy
13.09.2018
19:18:42
это был не баг и не фича, а задокументированное поведение хрома.
Фаерфокс делает немного по своему но то же. Даже в инонете вопрос толком не освещён. Максимум хабра - это фавикон фоновый запрос. Но это детсад и разжованный всеми гуру.

Yuriy
13.09.2018
19:58:57
Да пофиг, это гет запрос, какие проблемы то могут быть
К примеру, есть бизнес решения пострренные на основе логов апача, и это не только статистика посещений но и анализ поведения пользователей. К примеру, урл вызывает скрипт, который может выполнять некоторое действие и будет получаться, что действие выполняется дважды и это невсегда и неточно, а действие может быть критическим. К примеру, урл вызывает скрипт, который совершает высокозатратное по ресурсам действие - будет вызываться дважды. И эта фича делает потенциальным источником проблем всех пользователей. Я планирую рассказать как отлавливать и предотвращать либо жёстко, либо мягко. Возможнл знатокам это всё неважно и их решения давно всё это знают. Возможно)

Pavel
13.09.2018
19:59:59
Да это реально проблема

Причем хром делает запросы от души когда надо и не надо

У меня была проблемка, я как-то дебажил два урла, сначала один /some/url1 потом второй /some/url2. И вот когда я дебажил второй урл, то выбирал первый из last urls в браузере, а потом хотел последнюю цифру отредактировать просто. Так хром уже успевал сделать запрос по первому урлу и запустить мне процесс дебага.

Pavel
13.09.2018
21:08:25
Один мальчик очень много читал мануалов и разбирался а потом деньги инвесторов закончились ... ;]

ustasby
13.09.2018
21:11:26
Pavel
13.09.2018
21:12:59
Вот! ?? И начнут связываться с теми кто фигак и в продакшен

1. сильные люди порождают крутой софт 2. крутой софт порождает слабых людей 3. слабые люди порождают отстойный софт 4. отстойный софт порождает сильных людей

ani
13.09.2018
21:18:10
как это можно было придумать

dev
13.09.2018
21:25:08
так мило

Google
dev
13.09.2018
21:25:32
ещё раз. это не проблема хрома

что такое инонет

Dmitry
13.09.2018
21:40:11
К примеру, есть бизнес решения пострренные на основе логов апача, и это не только статистика посещений но и анализ поведения пользователей. К примеру, урл вызывает скрипт, который может выполнять некоторое действие и будет получаться, что действие выполняется дважды и это невсегда и неточно, а действие может быть критическим. К примеру, урл вызывает скрипт, который совершает высокозатратное по ресурсам действие - будет вызываться дважды. И эта фича делает потенциальным источником проблем всех пользователей. Я планирую рассказать как отлавливать и предотвращать либо жёстко, либо мягко. Возможнл знатокам это всё неважно и их решения давно всё это знают. Возможно)
ну вот вы узнали, что нельзя закладывать важные для бизнеса показатели на гет запросы, и что открытые в паблик гет запросы не нужно делать вычислительно затратными

Adel
13.09.2018
21:41:33
кешировать иногда

Dmitry
13.09.2018
21:45:01
ну в общем веб неведом и неизведан...

Adel
13.09.2018
21:45:50
логи апача он парсит...

логи давновэластиках какихнибудь хранят

Dmitry
13.09.2018
21:46:54
хотя я так и не понял - этот ваш префетч куки то шлет или нет

Yuriy
13.09.2018
23:25:31
хотя я так и не понял - этот ваш префетч куки то шлет или нет
нет, куки тут вообще не при делах. если сессия пхп инициируется ( session_start() ), то пхп шлёт некоторый заголовок, предписывающий браузеру не кэшировать страницу, вернее, что кэш никогда не будет для этой страницы актуальным. браузер (хром) имея ввиду этот запрос позволяет себе делать префетч, при этом посылает в префетч запросе заголовок purpose со значением prefetch.

*имея ввиду этот ответ сервера

логи апача он парсит...
я не парсю. я сталкивался с программами которые парсят логи и это коммерческие решения. у меня ситуация, что через гет запрос идут команды. не все, но как минимум часть и зачастую геты уместнее по логике поведения чем посты. но, кстати, если мы шлём аяксом запрос то там не важно гет/пост - префетч работать не будет.

что такое инонет
англоязычный интернет

Adel
13.09.2018
23:30:51
англоязычный интернет
железный занавес? :)

Yuriy
13.09.2018
23:34:32
железный занавес? :)
?? научите, как сказать, что я искал не только на русском в гугле но и на английском - я называю инонет/буржнет. хотя наверное местные знатоки ищут исключительно на английском, а когда открывают хабр, то пользуются сервисом гугла и заставляют гугл переводить страницы на английский.

Adel
13.09.2018
23:35:04
нет. но основная инфа на английском. да.

ты лучше не обзывайся а языкучи

Yuriy
13.09.2018
23:36:00
я об этом и говорю. где чуть посложнее рунет валиться. больше всего ответов даёт стэковерфлоу причём англ сегмент

ты лучше не обзывайся а языкучи
да? какой? и чтобы что?

и кого я обзываю?

Admin
ERROR: S client not available

Google
Adel
13.09.2018
23:37:23
ну буржнет... так обычно челы, которые английский не учат выражаются

Yuriy
13.09.2018
23:41:53
а переделать get на post нельзя?
лично я, может в силу недостатка опыта/знаний, не уверен что гет это плохо или даже что гет может быть плохо. мне кажется лучшим решением будет знать что существуют префетчи и контролировать этот момент на уровне кода (либо глухо блокировать, либо, к примеру, выполнять команды if(!$bPrefetch){…}

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

вообщем проблему опишу как умею. выложу. сюда скину. покритикуете/почморите ))) глупее от этого не стану, но может что-то замечу, что упустил.

*проблему и решение

Pavel
13.09.2018
23:45:29
get запросы должны быть идемпотентными, значит посылать через них команды очень плохо

Ты не там копаешь, вместо того чтобы бороться с префетчем тебе надо слать post/put запросы, и никаких проблем с предзагрузкой

Yuriy
13.09.2018
23:51:09
Ты не там копаешь, вместо того чтобы бороться с префетчем тебе надо слать post/put запросы, и никаких проблем с предзагрузкой
я это понимаю и на практике в основном команды идут через аякс а в нём через пост. я просто предпочитаю понимать с какого перепуга хром отправляет 2 гета, там где должен быть 1 - уверен это понимание не лишнее. или не посылает вообще гетов, когда страница помечается как кешируемая. нужно понимать что делает браузер, чтобы лучше понимать что делает пользователь.

Pavel
13.09.2018
23:52:33
Ну вообще вся эта тема с префетчем/кешированием непростая, там много подводных камней включая кеширование на стороне сервера, е-таги всякие и т.д.

Бывали у меня проблемы когда хром откровенно глючил и кеш сбрасывался только рестартом

Dmitry
14.09.2018
04:44:28
в следующей серии мы узнаем, что в интернете есть боты краулеры ;)

Yuriy
14.09.2018
05:50:43
в следующей серии мы узнаем, что в интернете есть боты краулеры ;)
заметил, кстати, если пхп-боженькам добавить нечего, то они шутят )

Dmitry
14.09.2018
05:53:54
ну хоть видос не запиливают...

Vitaliy Nameless
14.09.2018
05:57:13
заметил, кстати, если пхп-боженькам добавить нечего, то они шутят )
Это боженькам. А вот если реальный Верховный господь, такой как я.. все иначе

Yuriy
14.09.2018
06:00:50
С неподдельным уважением отношусь к участникам данного сообщества, но публикация имеет множественные цели. Также, понятно, что будет ориентирована на тех, кто не имеет детального представления об этой багофитчи, то есть не для здешних (ведь тут все прокачены).

Dmitry
14.09.2018
06:04:04
обнаружил проблему, пол часа гугла, приделал проверку заголовков, профит... больше разговоров...

Google
Yuriy
14.09.2018
06:05:20
ну хоть видос не запиливают...
И Дмитрий, замечу, что Вы чаще правы, но также замечу, что правота у Вас дополняющая, хотя озвучиваете её, как противопоставляющую.

Да, базары лишние вижу. Сорян. Ну мне парируют, я парирую.

Dmitry
14.09.2018
06:06:18
я правда так и не понял, куки префетч отправляет или нет

Yuriy
14.09.2018
06:06:47
Да не отправляет. Куки вообще тут не при делах.

Кстати, фаер делает префетч только по воле разраба, когда тот прописывает аттрибут rel=prefetch

Dmitry
14.09.2018
06:07:59
раз не отправляет, вообще ни о чем проблема, нет кук, нет аутентификации, нет случайных "переключений"

Yuriy
14.09.2018
06:09:51
Да постами надо делать всё. Про гет забыть. Наверное)

Страница 661 из 956