Cómo crear mi propio navegador web

Digamos que crear un navegador web es una tarea no trivial para un equipo de desarrolladores, y mucho menos para un solo individuo. No comenzaría desde cero, probablemente usaría el navegador Chromium de código abierto de Google como punto de partida:

repositorios de cromo Git – Git en Google

que es exactamente lo que hizo Brave Software. Puede obtener el código fuente de Brave aquí:

Software valiente – GitHub

El código de Chromium en sí está escrito en C ++, por lo que deberá aprender C ++. Pero eso es solo un comienzo, porque el navegador está escrito para admitir múltiples sistemas operativos: Windows, OS X, iOS, Android y Linux. Por lo tanto, deberá conocer los detalles de la plataforma para cada una de las plataformas a las que desea apuntar para su lanzamiento.

Incluso si tuviera todas estas habilidades y estuviera familiarizado con la base de código (una tarea muy grande por sí sola), solo podría esperar escribir como máximo unos pocos miles de líneas de código listas para producción en C ++ por año, lo que significa que solo podría hacer pequeñas mejoras incrementales a la base de código existente.

Antes de siquiera considerar este tipo de proyecto por su cuenta, observe lo que otros están haciendo. Mira esta pregunta: ¿Cuántos desarrolladores trabajan en Chromium? (La respuesta a partir de 2008 fue 42). Y estamos hablando de 42 ingenieros en Google, lo que significa que como mínimo tienen títulos universitarios en ciencias de la computación / ingeniería, y probablemente al menos algunos de ellos tienen maestrías o doctorados en CS. Incluso con toda esa capacidad mental y mano en los teclados, todavía les ha llevado años llevar Chromium al punto que es hoy, y que más que nada debería impresionarle lo difícil que es crear un navegador desde cero.

Un navegador web no es más que un conjunto de motores que pueden analizar el contenido que recibe a través de HTTP.

El contenido generalmente incluye código HTML, CSS y JavaScript. También incluye otro contenido de terceros como applets de Java y objetos Flash y otro contenido multimedia de transmisión.

La mayoría de estos proveedores de tecnología de terceros tienen sus propios complementos que se pueden utilizar para representar su contenido. Eso es 1 dolor de cabeza menos.

Llegando al corazón y al núcleo de su navegador, es una máquina gigante llamada Rendering Engine. ¿Has oído hablar de Gecko, Presto, Trident, Blink o WebKit? Todos estos son motores de renderizado utilizados por navegadores populares.

Entonces, cuando habla sobre la creación de un navegador web, en realidad debe concentrarse en crear el motor de renderizado. El resto del navegador es solo UI mumbo-jumbo pegado en la parte superior.

Comience por echar un vistazo aquí: https://www.webkit.org/building/

Justo en la parte superior de mi cabeza, un navegador web 2016 debe ser capaz de manejar una amplia gama de tecnologías actuales y arcaicas para ser funcional. Los conceptos básicos son muy simples. En su mayor parte, simplemente está leyendo archivos de servidores utilizando el protocolo HTTP, formateándolos y mostrándolos, y luego proporcionando un mecanismo para que los enlaces dentro del documento cambien a un nuevo documento. Por ejemplo, existen navegadores web para el Commodore 64:

HyperLink 2.5e – Visor de documentos y navegador web para el C64 / 128

así que, de alguna manera, lo que quieres hacer es realmente fácil. He escrito analizadores HTTP en REXX, que crean / muestran datos web y siguen hipervínculos en una ventana de consola.

¿Pero quieres (presumiblemente) hacer algo un poco más FireChromePera?

Necesita procesar al menos HTML, CSS y Javascript. Si no está utilizando Blink y V8, entonces necesita saber cómo analizar ambos, manejar errores, etc. HTML5 es una propuesta completamente diferente, lo que te obliga a manejar una situación casi JIT si quieres rendimiento, y todos los subconjuntos de HTML5 (SVG y MathML, por ejemplo). También debes considerar complementos o llamadas al sistema para manejar Flash, video , audio, etc.

Cualquier lenguaje de programación funcionará. Los navegadores web no requieren mucho procesador si está trabajando en HTML “normal”. Java o C # creo. También necesita un marco gráfico para mostrar su página y manejar los objetos de la interfaz de usuario (menús, barra de direcciones, botones de retroceso / avance / marcador, etc.) Me inclinaría por C # si estuviera trabajando con Windows, simplemente porque no necesita hacer mucho trabajo para la interfaz de usuario, gráficos, video y audio, pero, de nuevo, si está usando .NET, simplemente puede crear un nuevo control de navegador web y dejar que Windows lo haga todo por usted.

Crear su propio navegador web es una tarea muy difícil. Utilizamos muchos lenguajes de programación de computadoras para crear el navegador web y el desarrollo de aplicaciones web. Si pertenece a la computadora, entonces usa este tipo de idiomas y crea su propio navegador web.

Lenguaje de marcado de hipertexto (HTML)

Hojas de estilo en cascada (CSS)

JavaScript

PHP

VB.Script,

ÁSPID

JSP

Perl

DO#

Pitón,

Ruby on Rails

Para obtener más información sobre cómo crear su propio navegador web, visite Servicios de desarrollo de sitios web

  1. Un navegador consta de dos motores: (1) motor de diseño y (2) motor de JavaScript. Primero cree estos dos motores y luego necesita construir una interfaz de usuario.
  2. La forma más fácil sería comenzar desde motores de código abierto, por ejemplo, WebKit (utilizado por Chrome, Safari, Opera) o Gecko (Firefox).
  3. Lo más fácil sería crear un proyecto de aplicación de Windows en Visual Studio y tiene un control en la caja de herramientas llamado WebBrowser. Esto usa los motores de Internet Explorer. Puede modificar la interfaz de usuario como lo desee en su aplicación de Windows.

He hecho el mío usando Java. tiene una funcionalidad básica como:
1) Retroceder y avanzar
2) Botón de recarga
3) Botón de inicio
4) Establecer un nuevo botón de Inicio
5) historia
6) Marcadores
7) cuadro de búsqueda
Una guía paso a paso es simple, lo que debe hacer es aplicar ingeniería inversa a una existente.
Descomponerlo. comience con la funcionalidad básica y agréguela como desee.
Primero lo que me ayudó fue un dibujo. “ok que necesito”
Necesito un rectángulo Ok, entonces, ¿qué tendrá ese rectángulo (mi pantalla)?
Bueno de acuerdo a. Véase más arriba..
Ok..hmm..Necesito un cuadro de búsqueda, así que claramente es un cuadro de texto. Ok cuadro de texto de Google Java.
hmm Jtextfield es lo que necesito.
Ok, entonces necesito botones … mmm … botones de Google en Java, Jbutton parece ser el indicado.
Su parece ser un patrón aquí, ¿no? ¿Por qué todo comienza con una J?
Aaahhh aquí estamos J (ava) Swing es lo que necesito aprender. Swing Se utiliza para crear aplicaciones GUI en Java.
Debido a la falta de tiempo, dejaré esta respuesta tal como está. Si necesita que me expanda y lo encuentra útil, hágamelo saber 🙂
Subiré mi código en algún momento la próxima semana en GitHub.
Solo para dejar esto en claro, si está buscando crear un navegador como Chrome, Firefox, etc., necesitará mucho más trabajo que este. Pero esto le dará una muy buena idea por dónde comenzar y practicar.

Puede usar el lenguaje C ++ con una biblioteca para crear una interfaz gráfica como Qt o GTK +

Encontrarás algunos tutoriales sobre C ++ y administrarás las ventanas y sus elementos buscando en internet

Primera pregunta. ¿POR QUÉ? ¿Por qué te harías esto a ti mismo?

Supongo que son dos preguntas. Si es solo por diversión, esta es una cosa. Puede llegar a un lugar donde obtiene un navegador mínimamente funcional que puede mostrar algunas páginas divertidas. Los convierte en elementos de la GUI creando controles. Por ejemplo, conviértete en una clase HtmlDiv, hereda de control, place y paint.

Pero si está haciendo esto porque WebBrowser no satisface las necesidades de sus productos, sin embargo, probablemente sea mucho mejor elegir otro producto OTS (por ejemplo, WebKit .NET).

Las especificaciones Html / CSS no son triviales. Si desea utilizar esto como un navegador real honesto que le brindará la mayor parte de lo que sabe y tolera de IE, Firefox, Chrome o Safari, le espera mucho trabajo. Estos productos fueron construidos por grandes equipos a lo largo de los años. No vas a obtener algo completo en unas pocas semanas.

Bueno, si quieres crear tu propio sitio web, entonces necesitas aprender HTML. Puedes encontrar todo tipo de tutoriales de video, desde básico hasta avanzado, en YouTube.

Para crear aplicaciones de Android, debe tener fluidez en Java, Java avanzado y básico. Para estos también encontrará tutoriales, desde básicos hasta avanzados, en YouTube.

Quizás Java o C ++. Python también sería genial porque la mayoría de las funciones de JavaScript se escribieron en Python (especialmente HTML 5 CANVAS), por lo que podría ahorrarle más tiempo si trabaja en este lenguaje.

Puedes pasar por el curso de Udacity aquí Aula – Udacity.
Buena suerte !

Sugeriría revisar el motor de webkit … No tiene mucho sentido reinventar la rueda y pasar por todos los errores y cuellos de botella de rendimiento que otros ya han pasado …

puedes ver esto como referencia

De todas maneras, asegúrese de no importar ningún paquete que haga todo el trabajo. No uses paquetes de python.