Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
1

Как работает браузер типа ХРОМ?

16.04.2019, 14:43. Показов 895. Ответов 7

Author24 — интернет-сервис помощи студентам
Добрый день.
что то ИНДИ совсем уже без присмотра оставили. Конкретно:
- INDY(10.5.9.0 ХЕ3) страницы из https://твояфирма.рф/ загружает
- INDY(10.6.2.5366 ХЕ10 токио) уже не загружает: socket error # 10060
- зато INDY(10.5.9.0 ХЕ3) имеет другие косяки, которых в 10.6.2.5366 уже нет
в общем классическое: вынул нос - хвост увяз
между тем даже ОПЕРА 12 любые страницы грузит (http и https, кириллические домены и страницы со сжатием, и сертификаты "кривые" пропускает, только вопросы ненужные задает), потом конечно не всегда верно отображает, но мне нужны только тексты.

Вопросы для знатоков:
- как браузер загружает страницу с сервера, в браузере должен быть какой то загрузчик?
- на основе чего этот загрузчик, как взглянуть на код, пусть и ЦПП
- вообще браузеры типа имеют "открытый код", ну ХРОМ к примеру. где скачать этот открытый код для анализа?

Всем ответившим по существу заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2019, 14:43
Ответы с готовыми решениями:

Как сделать чтобы писало текст после того, как открываешь браузер гугл хром?)
Как сделать чтобы писало текст "ухади" после того, как открываешь браузер гугл хром?)

Браузер Хром
Что стало с Хромо в последние 2 недели не знаю. Проблема за проблемой. Уже неделю как не могу...

Открывается браузер Хром с рекламой
Здравствуйте, после скачивания с интернета программы подцепил вирус который автоматически каждые...

Автоматически закрывается браузер хром
Здравствуйте. В общем, каюсь, утратил бдительность, установил на компьютер игру с левого сайта,...

7
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
16.04.2019, 15:23 2
Цитата Сообщение от Pcrepair Посмотреть сообщение
как браузер загружает страницу с сервера, в браузере должен быть какой то загрузчик?
Грубо говоря, на сервер отправляется HTTP-запрос, в котором обозначается какую информацию нужно вернуть. Сервер анализирует данные, и возвращает требуемое согласно стандарту HTTP. Т.е. в заголовке присылает данные по передаваемой информации, в теле ответа - сами данные.
Цитата Сообщение от Pcrepair Посмотреть сообщение
на основе чего этот загрузчик, как взглянуть на код, пусть и ЦПП
Протокол TCP/IP. Загрузчика как такового-то и нет, просто анализ данных, пришедших в сокет. Вы думаете, что браузер - это простая штука? Отнюдь. Но основная задача браузера не в том, чтобы загрузить данные, а в том, чтобы их корректно отобразить для пользователя. Получить данные с сервера - достаточно тривиальная задача, имхо, а вот распарсить и показать - уже сложнее.
Цитата Сообщение от Pcrepair Посмотреть сообщение
вообще браузеры типа имеют "открытый код", ну ХРОМ к примеру. где скачать этот открытый код для анализа?
Ввести в поисковик фразу "браузер с открытым исходным кодом"
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
16.04.2019, 16:08  [ТС] 3
Цитата Сообщение от Nanotentacle Посмотреть сообщение
Протокол TCP/IP. Загрузчика как такового-то и нет, просто анализ данных, пришедших в сокет. Вы думаете, что браузер - это простая штука? Отнюдь. Но основная задача браузера не в том, чтобы загрузить данные, а в том, чтобы их корректно отобразить для пользователя. Получить данные с сервера - достаточно тривиальная задача, имхо, а вот распарсить и показать - уже сложнее.
то есть можно взять TClientSocket (или что там еще есть в дельфи) и типа самому реализовать весь протокол обмена с сервером и все будет работать особенно по 443 порту?

да, уже скачал ХРОМ (3 гб), там явно все не так просто как хотелось.
но мне и не надо ничего кроме загрузки страницы в строку

возможно WinInet лучше ИНДИ? для ОС ВЫньХР - ВЫНь7-10
может ли WinInet:
- работать с http - https (ну понятно, нужны последние версии ДЛЛ)
- работать со сжатыми страницами(расжимать их)
- обрабатывать перенаправление и прочие ошибки(301 - 302 - 400 и далее)
- работать с кириллическими доменами(функция трансформации в латиницу есть в наличии)_
- правильно обрабатывать кодировку страницы (чтоб без крякозябров и прочего)
- корректно работать с GET POST
кто то знает достоверно?
0
5785 / 4527 / 1431
Регистрация: 14.04.2014
Сообщений: 20,157
Записей в блоге: 20
16.04.2019, 16:17 4
Цитата Сообщение от Pcrepair Посмотреть сообщение
можно взять TClientSocket (или что там еще есть в дельфи) и типа самому реализовать весь протокол обмена с сервером и все будет работать особенно по 443 порту
конечно будет, на то они и протоколы
вам нужно будет реализовать несколько десятков этих самых протоколов.
т.е. написать Indy с нуля

есть одно сомнение.
современные страницы не состоят из "текстов" которые вам нужны.
эти тексты приходят по запросам. запросы выполняются из JS чаще всего. так что вам нужно будет еще и интерпретатор JS написать

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

P.S. моя опера говорит что
Не удалось подтвердить, что это сервер xn--80adsqinks2h.xn--p1ai. Операционная система компьютера не доверяет его сертификату безопасности. Возможно, сервер настроен неправильно или кто-то пытается перехватить ваши данные.
NET::ERR_CERT_AUTHORITY_INVALID
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
16.04.2019, 16:54  [ТС] 5
Цитата Сообщение от krapotkin Посмотреть сообщение
для конкретных применений вам все равно придется взять THttpClient. (сколько можно уже про Indy, есть родной компонент)
NetHTTPClient ? там много методов и свойств
можно ли сказать что в списке ICS, Indy, Synapse, WinInet, NetHTTPClient
компонет NetHTTPClient:
- имеет все необходимые свойства для загрузки практически любой страницы (не как ИНДИ)
- на его основе можно сделать пусть и сложный но универсальный загрузчик

З.Ы. обработка ЖабаСкриптов пока не нужна, хотя...
0
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
17.04.2019, 05:03 6
Цитата Сообщение от Pcrepair Посмотреть сообщение
NetHTTPClient ? там много методов и свойств
Что есть "много методов и свойств"? Вы же понимаете, что количество методов и свойств зависит от сложности решаемой задачи компонента, и, как вы уже убедились, сложность тут не самая простая.

Цитата Сообщение от Pcrepair Посмотреть сообщение
- имеет все необходимые свойства для загрузки практически любой страницы (не как ИНДИ)
Имеет. Поймите одну такую штуку. Любая страница в интернете - это текст или поток данных (для картинок, файлов и т.д.). Получить этот текст или поток - достаточно несложная (при наличии опыта, конечно) вещь даже при использовании TCP, так как все метки HTTP заданы стандартом.
Другая история заключается в том, что сам стандарт HTTP - это уже более сложная штука. То есть вам надо вручную разобраться с заголовком, например, который может состоять из значительного количества строк с данными. За вас это уже делает ваш компонент, разбирая все по полочкам.
Но это никак не отменяет того, что разбираться с "телом" HTTP сообщения вам придется самостоятельно. TNetHTTPClient, idHTTP и многие прочие компоненты не являются визуальными и не подразумевают разбор тела.

Цитата Сообщение от Pcrepair Посмотреть сообщение
на его основе можно сделать пусть и сложный но универсальный загрузчик
Как я вам и говорил, все зависит от ваших целей. Поскольку мне непонятна фраза "универсальный загрузчик". Вы хотите просто получать HTML-текст страницы со скриптами? Тогда да. Если ваш загрузчик подразумевает что-то более сложное, то надо смотреть.
0
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 260
17.04.2019, 08:39 7
может ли WinInet:
- работать с http - https (ну понятно, нужны последние версии ДЛЛ) - да, но сомневаюсь, могут понадобится дополнительные телодвижения
- работать со сжатыми страницами(расжимать их) - нет
- обрабатывать перенаправление и прочие ошибки(301 - 302 - 400 и далее) - нет
- работать с кириллическими доменами(функция трансформации в латиницу есть в наличии)_ - нет
- правильно обрабатывать кодировку страницы (чтоб без крякозябров и прочего) - нет
- корректно работать с GET POST - да

Поймите, WinInet тупо работает с протоколом HTTP(S). Вот что ему скажете сделать, то он и сделает. Все что более того, ака gzip, 3ХХ коды, кодировка - не относится к самому протоколу. Это уже обработка результата.

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

З.Ы. А он индей я отказался когда понял, что 302 ответ у них считается ошибкой...
0
Nanotentacle
17.04.2019, 11:41     Как работает браузер типа ХРОМ?
  #8

Не по теме:

Цитата Сообщение от smw1975 Посмотреть сообщение
Так вот, она то же тупейшая до невозможности, ничего сама не умеет делать. Но, вот, что я скажу ей, то она и делает.
И в этом прелесть этих компонентов: никакой лишней интеллектуальности. Как пластилин - что ты из него сделал, то и получил. Как в мультфильме, где молодой программист печку пытался заставить пирожки печь с фразой "Да ладно, и так сойдет"

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2019, 11:41

Браузер Хром открывается сам
Браузер Хром открывается сам, куча рекламы. При попытке передвинуть ползунок страницы вниз или...

Внезапно закрывается браузер гугл хром
Привет друзья подскажите пожалуйста как решить проблему? Дело в том что у меня почему то примерно...

Не могу сменить стандартный браузер на хром
В панели задач там где выбор приложений по умолчанию отсутствует выбор браузера хром у меня он...

Умер браузер Хром для яндекса (:
Несколько дней назад браузер Хром для яндекса скончался и уже видимо безвозвратно. Он был старой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru