Создание браузера на с++ в рамках обучения

249
02 апреля 2017, 04:50

Доброго времени суток!

Я занимаюсь самостоятельным и изучением С++ (Microsoft Visual C++): учусь, делая что-то для винды. Например, пеинт, блокнот или простенькие игры. Я хочу в рамках обучения написать свой интернет-браузер. Я не претендую на роль первооткрывателя чего-либо, я просто хочу во всём этом разобраться без готовых решений вроде "установи C++ Builder, добавь веб-движок, часик поколдуй над компонентами и вуаля!". Я хочу разобраться и написать всё (в пределах разумного) с нуля.

Функции, которые должен выполнять самописный браузер - все обычные для обычного пользователя - просмотр веб-страниц, автозаполнение форм, масштабирование, менеджер загрузок, история и поддержка Unity Web Player и Flash Player.

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

Спасибо за внимание!

Answer 1

Основные компоненты браузера - это HTTP-клиент, плюс "построитель" DOM-дерева с реализацией его стандарта, визуализация (рендеринг) дерева, то есть сама отрисовка элементов, и "движок" для CSS и JS (интерпретатор с библиотекой, опять же реализующей стандарты), остальное является дополнительными компонентами и намного проще и менее объемно, там могут быть и FTP, и POP3/IMAP/SMTP (почта), и расширения, плагины, и менеджер загрузок, опять же основа скачивания файлов это HTTP и т.п.

Работа огромна, исходный код Chromium "весит" гигабайты, вам придется потратить очень много времени и энергии, а практического применения нет, пользы обществу нет, разве что в будущем продать как курсовую или дипломную работу, но эти работы должны писаться быстро, ровно столько, сколько нужно для их успешной защиты в ВУЗе, ничего большего студенты не заслуживают за свои деньги, да и на самом деле не нужно, в общем, человеку в обществе надо удовлетворять реальным требованиям общества, а не своим фантазиям.

Answer 2

Работа не то чтобы огромна, она почти невыполнима для хорошего программиста (возможно через 10 лет напишет браузер), ну уж для новичка-то тем более.

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

Если вы хотите создать что-то свое, то начните с чего куда проще: сперва определитесь с тем что вам интересно (например браузер). Задача куда проще - научиться парсить строки. Пробуйте парсить что ли, если вам интересно) Я сам начинал с написания игр, мне игры было интересно делать)

READ ALSO
c++ thread передача enum

c++ thread передача enum

Вот кусок кода, хочу его запустить отдельным потоком

198
Длительность аудио-файла Qt 5.7 QMediaPlayer

Длительность аудио-файла Qt 5.7 QMediaPlayer

Здравствуйте! Как получить длительность музыки в QMediaPlayer? Я сделал всё, что в моих силахduration возвращает всегда 0

246
Как заменить символ в указателе на строку char*?

Как заменить символ в указателе на строку char*?

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

211