0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
|
|
1 | |
Как работает браузер типа ХРОМ?16.04.2019, 14:43. Показов 895. Ответов 7
Добрый день.
что то ИНДИ совсем уже без присмотра оставили. Конкретно: - 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
|
16.04.2019, 14:43 | |
Ответы с готовыми решениями:
7
Как сделать чтобы писало текст после того, как открываешь браузер гугл хром?) Браузер Хром Открывается браузер Хром с рекламой Автоматически закрывается браузер хром |
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
16.04.2019, 15:23 | 2 |
Грубо говоря, на сервер отправляется HTTP-запрос, в котором обозначается какую информацию нужно вернуть. Сервер анализирует данные, и возвращает требуемое согласно стандарту HTTP. Т.е. в заголовке присылает данные по передаваемой информации, в теле ответа - сами данные.
Протокол TCP/IP. Загрузчика как такового-то и нет, просто анализ данных, пришедших в сокет. Вы думаете, что браузер - это простая штука? Отнюдь. Но основная задача браузера не в том, чтобы загрузить данные, а в том, чтобы их корректно отобразить для пользователя. Получить данные с сервера - достаточно тривиальная задача, имхо, а вот распарсить и показать - уже сложнее. Ввести в поисковик фразу "браузер с открытым исходным кодом"
0
|
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
|
|
16.04.2019, 16:08 [ТС] | 3 |
то есть можно взять TClientSocket (или что там еще есть в дельфи) и типа самому реализовать весь протокол обмена с сервером и все будет работать особенно по 443 порту?
да, уже скачал ХРОМ (3 гб), там явно все не так просто как хотелось. но мне и не надо ничего кроме загрузки страницы в строку возможно WinInet лучше ИНДИ? для ОС ВЫньХР - ВЫНь7-10 может ли WinInet: - работать с http - https (ну понятно, нужны последние версии ДЛЛ) - работать со сжатыми страницами(расжимать их) - обрабатывать перенаправление и прочие ошибки(301 - 302 - 400 и далее) - работать с кириллическими доменами(функция трансформации в латиницу есть в наличии)_ - правильно обрабатывать кодировку страницы (чтоб без крякозябров и прочего) - корректно работать с GET POST кто то знает достоверно?
0
|
16.04.2019, 16:17 | 4 |
конечно будет, на то они и протоколы
вам нужно будет реализовать несколько десятков этих самых протоколов. т.е. написать 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 |
NetHTTPClient ? там много методов и свойств
можно ли сказать что в списке ICS, Indy, Synapse, WinInet, NetHTTPClient компонет NetHTTPClient: - имеет все необходимые свойства для загрузки практически любой страницы (не как ИНДИ) - на его основе можно сделать пусть и сложный но универсальный загрузчик З.Ы. обработка ЖабаСкриптов пока не нужна, хотя...
0
|
884 / 404 / 174
Регистрация: 20.10.2016
Сообщений: 1,828
|
|
17.04.2019, 05:03 | 6 |
Что есть "много методов и свойств"? Вы же понимаете, что количество методов и свойств зависит от сложности решаемой задачи компонента, и, как вы уже убедились, сложность тут не самая простая.
Имеет. Поймите одну такую штуку. Любая страница в интернете - это текст или поток данных (для картинок, файлов и т.д.). Получить этот текст или поток - достаточно несложная (при наличии опыта, конечно) вещь даже при использовании TCP, так как все метки HTTP заданы стандартом. Другая история заключается в том, что сам стандарт HTTP - это уже более сложная штука. То есть вам надо вручную разобраться с заголовком, например, который может состоять из значительного количества строк с данными. За вас это уже делает ваш компонент, разбирая все по полочкам. Но это никак не отменяет того, что разбираться с "телом" HTTP сообщения вам придется самостоятельно. TNetHTTPClient, idHTTP и многие прочие компоненты не являются визуальными и не подразумевают разбор тела. Как я вам и говорил, все зависит от ваших целей. Поскольку мне непонятна фраза "универсальный загрузчик". Вы хотите просто получать HTML-текст страницы со скриптами? Тогда да. Если ваш загрузчик подразумевает что-то более сложное, то надо смотреть.
0
|
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 260
|
|
17.04.2019, 08:39 | 7 |
- работать со сжатыми страницами(расжимать их) - нет - обрабатывать перенаправление и прочие ошибки(301 - 302 - 400 и далее) - нет - работать с кириллическими доменами(функция трансформации в латиницу есть в наличии)_ - нет - правильно обрабатывать кодировку страницы (чтоб без крякозябров и прочего) - нет - корректно работать с GET POST - да Поймите, WinInet тупо работает с протоколом HTTP(S). Вот что ему скажете сделать, то он и сделает. Все что более того, ака gzip, 3ХХ коды, кодировка - не относится к самому протоколу. Это уже обработка результата. Есть такая полезная либа, synapse, черт знает сколько не обновлялась, но меня пока не подводила. Так вот, она то же тупейшая до невозможности, ничего сама не умеет делать. Но, вот, что я скажу ей, то она и делает. А все обработки ответов - самому приходится писать З.Ы. А он индей я отказался когда понял, что 302 ответ у них считается ошибкой...
0
|
Nanotentacle
|
17.04.2019, 11:41
Как работает браузер типа ХРОМ?
#8
|
0
|
17.04.2019, 11:41 | |
Браузер Хром открывается сам Внезапно закрывается браузер гугл хром Не могу сменить стандартный браузер на хром Умер браузер Хром для яндекса (: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |