LINUX.ORG.RU

Заголовки HTTP

 ,


0

3

Почему бы браузеру не передавать в заголовках запроса http разрешение экрана? Хочу показывать тот или иной контент в зависимости от разрешения. Например на маленьких экранах скрывать некоторые блоки на сайте. Понятно что это можно сделать js и css, но как быть в php скрипте?

★★★★
Ответ на: комментарий от h578b1bde

Перечитай выше, этот момент обсуждали... Будет достаточно передать разрешение устройства. Только не повторяй что у тебя 2 монитора или еще какая то экзотика, таких еденицы. Да и 99% смотрят фуллскрин

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

зря нагружать сервер

Выключи сервер и разделегируй домен

Goury ★★★★★
()
Ответ на: комментарий от gobot

Тебе уже десяток раз сказали что нехер в заголовки лезть со своей жопорукостью

Goury ★★★★★
()

Иметь представление о возможностях клиентского устройства не помешает, но зависимость не нужна.

В момент первого запроса страницы, каким-то способом нужно передать на сервер данный контекст. Способов есть немало.

anonymous
()
Ответ на: комментарий от gobot

Будет достаточно передать разрешение устройства

Спрошу ещё раз: что тебе даст разрешение моего устройства если у меня окно браузера меньше? Например, у меня сбоку и снизу есть панельки. Это не говоря уже о рабочей области браузера, которая ещё меньше.

Только не повторяй что у тебя 2 монитора

А у меня их таки два, да. И что теперь?

экзотика

Экзотика — это та невменяемая хрень которую ты хочешь.

h578b1bde ★☆
()
Ответ на: комментарий от gobot

не хочешь нагружать свой говносервер - делай все ajax'ом. он, блядь, для того и придумал. ты заебал уже всех своим дебилизмом, HTTP - стандарт протокола. протоколу на твои интимные проблемы - насрать. протокол должен работать и иметь смысл всегда, а не в твоем конкретном случае.

anonymous
()

сделай вдоль лучше

anonymous
()
Ответ на: комментарий от h578b1bde

Да у 99% окно на всю ширину. Ну ок, пусть браузер шлет макс. разрешение устройства, мне как раз это и нужно.

А что тут невменяемого - всего лишь передавать width&height в заголовке? Ведь юзерагент, geolocation передает, почему бы и это не слать. Так никто и не сказал ничего вразумительного...

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Ведь юзерагент, geolocation передает, почему бы и это не слать. Так никто и не сказал ничего вразумительного...

Тут два варианта. Либо в w3c эта идея никому в голову не приходила, либо приходила, но это посчитали ненужным.

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

suuaq
()
Ответ на: комментарий от gobot

А что если у меня браузер не на весь экран развёрнут? И я внезапно потяну на край окна и изменю его размер? А на мобильных девайсах может меняться ориентация экрана. А ещё вроде как на самсунгах можно делить экран на две части и запускать там разные приложения. А на многих планшетах есть разъём HDMI для внешнего дисплея. А ещё можно менять масштаб. В общем, размер области документа вещь непостоянная слишком.

И нифига это не частные случаи. Ориентацию экрана пользователи смартфонов меняют сотни раз за день, как и масштабируют сайты. Частный случай это как раз ты.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от gobot

Люди редко меняют страну местонахождения во время просмотра одной страницы. Да и даже если меняют неверное определение GeoIP никакого дискомфорта не доставит (в принципе логично читать новости для страны, где ты загрузил веб-страницу). А вот размер рабочей области браузера очень часто. И если при этом веб-страница будет разваливаться, то это будет не айс.

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

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

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 4)
Ответ на: комментарий от gobot

Да у 99% окно на всю ширину

Пруф на статистику будет? Кстати, помимо системных панелей у некоторых в браузерах часто есть всякие сворачивающиеся верхние/нижние/боковые панельки, при вылезании которых твой сайт превратится в тыкву.

пусть браузер шлет макс. разрешение устройства

Таки зачем тебе максимальное разрешение устройства если рабочая область браузера с контентом в подавляющем большинстве случаев ему не равна?

А что тут невменяемого

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

почему бы и это не слать

Потому что „это” часто может как угодно меняться уже после загрузки твоего сайта браузером во время его отображения на экране пользователя, из-за чего оно не нужно.

Так никто и не сказал ничего вразумительного...

Тебе выше уже накидали целый вагон распространённых ситуаций, в которых твоё „решение” не поможет, но ты, видимо, просто не умеешь читать.

h578b1bde ★☆
()
Ответ на: комментарий от gobot

Разрешение монитора меняется между запоосами? Хотя ту же ширину окна браузера можно передавать

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

h578b1bde ★☆
()

А почему бы не рендерить страницу на сервере в png перед отдачей клиенту? А то напридумали какого-то хэтэмэле, цэсэсэ, жэсэ. Тьфу, дебилы.

thesis ★★★★★
()
Ответ на: комментарий от KivApple

А что если у меня браузер не на весь экран развёрнут? И я внезапно потяну на край окна и изменю его размер?

This site only looks right in IE 5.5 SP2, at 800*600 resolution with 24bit color using a full size window, and the default toolbars all showing. The Verdona and Georgia fonts must be present. Your browser font size must be set to medium. Your windows appearance settings must be set to «windows default». The wind must be blowing from the south.

h578b1bde ★☆
()
Ответ на: комментарий от thesis

Видел я такой костыль у индусов однажды.
Довольно неплохо смотрелось, кстати.
Грузился один хорошо прожатый PNG с картой ссылок. Вот и вся страница.

Goury ★★★★★
()

Ещё раз для самых непроходимо тупых чугуноголовых дураков я расскажу в чём суть:

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

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

Итог для чугуниевого ТС: разрешение на стороне клиента — не твоё собачье дело.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 4)
Ответ на: комментарий от gobot

У тебя уже половина действий - частные случаи. Какой профит от твоего решения, если оно покрывает минимальное количество возможных случаев?

comp00 ★★★★
()
Ответ на: комментарий от h578b1bde

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

gobot ★★★★
() автор топика
Ответ на: комментарий от Goury

Кстати полезный заголовок, плюсую. Но геоип определяет реальное месторасположение, а не язык, хотя в большинстве случает оно совпадает. Хотя, хз, англ язык стоит у многих, а жить могут много где... Также испанский он ведь и в юж америке тоже

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Но ты не совсем может понял, выглядить он будет одинаково просто не будет лишних блоков отображаться, тут не в верстке дело

Т.е. в остальных 99.9% случаев предлагаемый тобой заголовок будет просто невостребованным, и как следствие — ненужным.

выглядить он будет одинаково
не будет лишних блоков

/0

для слабых устройств с маленьким экраном

В современном мире маленький экран не является признаком слабого устройства.

не хочу я отдавать определенный контент

Если этот контент для работы сайта настолько некритичный — отдавай его аяксом, чего ты от протокола хочешь-то?

h578b1bde ★☆
()
Ответ на: комментарий от gobot

Также испанский он ведь и в юж америке тоже

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

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

Также испанский он ведь и в юж америке тоже

Хотя, для таких случаев придумали совмещённое обозначения языка и региона вроде es_CO.

h578b1bde ★☆
()
Ответ на: комментарий от gobot

А что, w3c тебя не спросили, когда http клепали? Вот негодяи. Напиши им, что они не правы.

suuaq
()
Ответ на: комментарий от h578b1bde

Т.е. специально сделали, чтобы не было соблазна злоупотреблять этими данными? Но ведь кому нужно будет тот вре равно через ту же куку и js узнает размеры экнара...зачем усложнять не пойму.

gobot ★★★★
() автор топика
Ответ на: комментарий от h578b1bde

Почему в 99? Устройств с маленьким экраном много. Малый экран является признаком слабого устройства. В большинстве случаев малый экран это мобилка или планшет, они что не слабые? Но слабость можно детектить на уровне юзерагента, а вот размер экрана никак получается. Андроиды есть и с малым и большим экраном

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

не пойму

Потому что тупой.

Сделали так потому, что оно нахер не нужно и не решает никаких проблем, но только создаёт новые.

Goury ★★★★★
()
Ответ на: комментарий от gobot

слабость можно детектить на уровне юзерагента

2 all: предлагаю признать гобота невменяемым и послать его в массовый игнор. Не, ну правда, такую ахинею даже самые толстые тролли не порят.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Что ты тут ноешь всю тему? Высказался, иди дальше, если больше сказать нечего или не интересно. Я понял уже давно тебя, смысл одно и тоже писать?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

Малый экран является признаком слабого устройства

слабость можно детектить на уровне юзерагента

размер экрана никак получается

4.2

В большинстве случаев малый экран это мобилка или планшет, они что не слабые?

Не слабее десктопа пятилетней-десятилетней давности.

h578b1bde ★☆
()
Ответ на: комментарий от gobot

Т.е. специально сделали, чтобы не было соблазна злоупотреблять этими данными?

Нет.

зачем усложнять не пойму

Я тоже не пойму зачем ты это делаешь.

h578b1bde ★☆
()
Ответ на: комментарий от h578b1bde

4.2

Чего 4.2? Аргументы? ) Приведи типичный пример устройства с малым экраном, но по мощности соизмеримым с типичным ПК )

Не слабее десктопа пятилетней-десятилетней давности

Вот сам и ответил )

gobot ★★★★
() автор топика
Ответ на: комментарий от tired_eyes

Нет, не посоветовали, да и не нужно особо, детектить андроид и IOS банально на юзерагенту. Но на основе этого не определишь размер экрана

gobot ★★★★
() автор топика

Сделал для себя вывод: в http не добавляют инфу о экране потому что не хотят дать разработчикам злоупотреблять этими данными. Это искусственно созданное препятствие. Информация должна быть доступна на любом устройстве, вне зависимости от размера экрана, цвета кожи, национальности и вероисповедания. Хотя никто не запрещает методом js передавать инфу о экране на сервер и в последующем ее использовать

Всем адекватным спасибо!

gobot ★★★★
() автор топика

в заголовках запроса http разрешение экрана?

Потому что экран есть не всегда?

как быть в php скрипте?

Можешь запихать эту информацию куки.

no-such-file ★★★★★
()
Ответ на: комментарий от gobot

в http не добавляют инфу о экране потому что не хотят дать разработчикам злоупотреблять этими данными

Нет, просто когда клепали стандарт, это было не актуально - никто об этом не подумал. А теперь всем начхать, т.к. можно узнать через js.

no-such-file ★★★★★
()
Ответ на: комментарий от gobot

Чего 4.2?

Пункта правил.

Аргументы?

Да, где они? Раз уж несёшь ахинею — хоть чем-то её подкрепляй.

Вот сам и ответил

Я уже понял что с чтением у тебя плохо.

h578b1bde ★☆
()
Ответ на: комментарий от Deleted

А если я юзерагент не передам?

Злой ты, у него же сервер упадёт.

h578b1bde ★☆
()
Ответ на: комментарий от gobot

в http не добавляют инфу о экране потому что не хотят дать разработчикам злоупотреблять этими данными

Есть куча случаев, когда данные запрашивает не человек через браузер, а программа, у которой нет никакого «экрана» и которой просто нужен raw html в ответ. Информация об экране - это не забота протокола http, поэтому ее отсутствие - вовсе не искусственное ограничение.

tired_eyes
()
Ответ на: комментарий от kelyar

Медиазапросы обрабатываются на стороне клиента, т.е. уже после того, как клиент скачал все (в т.ч. ненужные ему ассеты).

tired_eyes
()
Ответ на: комментарий от tired_eyes

Да ладно куча, 99.(9)% запросов в интернете запрашиваются без всякого экрана.
В любом современном бровзере нажми F12 и во вкладке network посмотри что происходит.

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 1)
Ответ на: комментарий от tired_eyes

ненужные ему ассеты

это решается отдельным мобильным дизайном

но как быть в php скрипте?

а это решается кешем.

kelyar ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.