
قبل التاريخ
لديّ قرص رخيص رديء على نظام التشغيل Windows 10 مع غيغابايت واحدة من ذاكرة الوصول العشوائي و 16 غيغابايت من المساحة التي تم تثبيت Windows 10. ضمنها ، بحيث يمكن لنظام التشغيل Windows 10 تنزيل التحديثات وتثبيتها بطريقة أو بأخرى - قمت بلف حجم ملف ترحيل الصفحات إلى الصفر وملف ترحيل الصفحات. توقف النظام عن تناول غيغابايت الثمينة.
بعد ذلك ، تفاجأت عندما وجدت أنه من المستحيل استخدام Chrome أو Internet Explorer أو حتى Opera 12 القديم لعرض أكثر أو أقل من المواقع الكبيرة على هذا الجهاز اللوحي. كلهم يحاولون إظهار الموقع عدة مرات وإعادة تشغيله مرة أخرى (يبدو أنه لا يتلاءم مع ذاكرة الوصول العشوائي الحقيقية بدون ملف المبادلة) ، وبعد المحاولة الثانية لتنزيله يعرض رسالة فشل.
لماذا ، عندما يكون حجم رمز HTML المصدر للموقع هو عدة مئات من الكيلوبايت ، لا يمكن لجهاز كمبيوتر به غيغابايت من ذاكرة الوصول العشوائي رسمه؟
على ما يبدو ، لأن الموقع يتكون من عناصر متنافسة ، بما في ذلك نصوص JavaScript (أو حتى VB) (التي يجب تنفيذها بعد التحميل وفي أحداث مثل "حرك الماوس فوق عنصر" ، إلخ) ، أنماط CSS ، الإطارات مع الصفحات الأخرى ، الوسائط (الصور ، الموسيقى ، الفيديو ، إلخ). عند تحميل الموقع ، يقوم المتصفح بتحميل رمز الموقع الرئيسي ، ثم يبدأ في تحميل الملفات ذات الصلة ، وتنفيذ وإعداد البرامج النصية للتنفيذ ، وتحميل الصور وعرضها ، وتحميل الأنماط ، وحساب النمط النهائي لكل عنصر من عناصر الصفحة بعد تطبيق عدة أنماط ، ووضع جميع العناصر على الصفحة و عندها فقط يعطي المستخدم رؤية الموقع.
أود أن أرى الموقع بسرعة وفوراً (قم بتنزيل كود HTML الخاص به فقط) ، والعناصر التي تهمني فقط:
- في صفحة واحدة أريد أن أرى النص فقط
- إلى نص آخر مع الروابط
- في الصور الثالثة فقط ، ولكن ليس كلها ، ولكن بشكل انتقائي واحد تلو الآخر تحميلها يدويا
- في الرابع أريد أن أقرأ في إضافة التعليقات
- في الخامس ، اقرأ رمز جافا النصي ، وإيقاف عرض كل شيء آخر.
وفي بعض الحالات ، لا أرغب عند تصفح المواقع:
- شاهد النوافذ / اللوحات مع الإعلان على شكل صور ورسوم متحركة بسيطة لمقاطع الفيديو الصوتية الكاملة ،
- رؤية نوافذ "الاشتراك في النشرة الإخبارية من موقعنا" ،
- شاهد النوافذ "قم بتشغيل الإشعارات من موقعنا" أو ، بالطريقة القديمة ، "اجعل صفحتنا الرئيسية" ،
- رؤية النوافذ "اسمح بتحديد الموقع الجغرافي لمعرفة مكانك ، عميلنا ،"
- رؤية النوافذ "آسف ، نحن نستخدم ملفات تعريف الارتباط على هذا الموقع" ،
- نقل ملفات تعريف الارتباط.
كيف نفعل ذلك؟ من الواضح أنك تحتاج إلى كتابة متصفح آخر واستخدامه!
في البداية بدا لي أن كل شيء سيكون بسيطًا. خذ وكتب محلل كود HTML. نقوم بتحميل العلامات وتقسيمها إلى أجزاء وعرض النص خارج العلامات كنص ، وإذا قابلت ، على سبيل المثال ، href = "
habr.com " ، ثم
نعرضه كارتباط. "العمل بالنسبة لك!" فكرت ، وجلست في دلفي.
تنفيذ مجموعة مختارة من العناصر لعرضها
نمت قائمة العناصر التي يمكن تشغيلها للعرض أو إيقاف التشغيل أثناء تطوير المتصفح.

يظهر هنا نص الموقع نفسه ، وحدود جداول الجداول / طبقات div ، والنص المنفصل مع "لهجات" (غامق ، مائل وعلامات تمييز أخرى) ، روابط ومراسيم الإشارة المرجعية ، الوسائط (الصور ، الموسيقى ، الفيديو) ، والملفات ذات الصلة "link ..." ، وعلامات التعليق "! - ... -" ، وكذلك البرامج النصية ، وأنماط النمط ، وأشكال النماذج ، والبيانات الوصفية الوصفية مع إمكانية عرض الكود الخاص بهم. لكل نوع من العناصر ، يمكنك تحديد لون ونص الخط. يمكنك أيضًا اختيار سمة جاهزة ، تتضمن تلوينًا معينًا للعناصر ، بالإضافة إلى نمط النص.
تطبيق الإعدادات العامة
في النهاية أصبح الجزء العلوي من نافذة المتصفح مغطىًا بالإعدادات وبدأ يشبه اللوحات بأزرار MS Office. كانت هناك علامات وقوائم منسدلة وأزرار لاستدعاء وظائف مثل الإشارات المرجعية أو السجل.

هناك ، على سبيل المثال ، يمكنك اختيار اسم وحجم الخط الذي تريد عرضه كما هو الحال في محرر النصوص. أصبح من الممكن أيضًا تنزيل خط PCF نقطي لجهة خارجية (خط PaintCAD) ورسم صورة بهذا الخط. في لقطة الشاشة ، يتم تحميل الخط sc60micro.pcf ، الذي تم نسخه يدويًا من مستعرض الهاتف القديم ، وربما لا يزال شخص ما يتذكر مستعرض الواب من سيمنز منذ 15 عامًا:




تطبيق إعدادات الخصوصية
مباشرة تحت الإعدادات العامة هي إعدادات الخصوصية:

باستخدام خانة الاختيار الإحالة ، يمكنك تعطيل نقل العنوان من أين أتيت إلى صفحة الويب. ملف تعريف الارتباط - تعطيل ملفات تعريف الارتباط.
وباستخدام حقل User-Agent ، يمكنك اختيار من يدعي أنه - أحد أجهزة الكمبيوتر أو متصفحات الجوال ، أو يمكنك حتى google / bing / yandex / mailru-bot. إذا قمت بتحديد أحد الخيارات ، فسيقوم النص الموجود على اليمين بعرض النص الخاص برأس http الذي تم إرساله إلى خادم وكيل المستخدم. في هذا الحقل ، يمكنك أيضًا إدخال وكيل المستخدم يدويًا بدلاً من اختيار أحد الخيارات التي يوفرها المتصفح.

العمل مع الملفات القابلة للتحميل: لوحة الكائن ولوحة الملفات
إذا واجه المستعرض ، على سبيل المثال ، رابطًا لصورة ، فإنه يكتب رابطًا للنموذج "صورة: عنوان". بالضغط عليه - يتم نقل الرابط إلى لوحة الكائن.
بناءً على ما إذا كان قد تم تضمين حفظ كامل لحركة المرور أو توفير حركة المرور على التنزيلات ، يتم عرض معلومات الملف في حقل معلومات الكائن.

يقرر المستخدم تنزيل الملف أو لا (على سبيل المثال ، إذا كان يجلس عبر الإنترنت عبر الهاتف المحمول ويشعر بالأسف لحركة المرور ، وقد أصبح الملف كبيرًا - ثم لا يمكنك تنزيله). يمكنك تنزيل الملف باستخدام زر التنزيل على يمين حقل الكائن.
في حالة إيقاف التشغيل ، سيتم تنزيل الملف تلقائيًا إلى مجلد التنزيل بجوار EXE للمتصفح و:
- فتح في البرنامج بشكل افتراضي إذا كان ملفًا آمنًا (صورة ، موسيقى ، فيديو) ،
- نقل إلى حقل الملف وإبرازه في نافذة Explorer التي تفتح إذا كان الملف خطيرًا أو غير معروف للمتصفح.
لوحة الملف:

يتضمن حقلًا باسم الملف المحفوظ والأزرار:
- فتحات في البرنامج بشكل افتراضي ،
- فتح مجلد مع ملف مع التركيز على الملف ،
- فتح ملف في متصفح JustCode نفسه ،
- فتح ملف في notepad.exe المفكرة.
القائمة الرئيسية لشاشة تعمل باللمس
يؤدي النقر فوق أيقونة المستعرض في الزاوية العلوية اليمنى إلى فتح قائمة بأيقونات 32 × 32 بكسل ، مما يؤدي إلى تكرار العديد من وظائف النافذة الرئيسية. تحتوي هذه القائمة على عناصر ذات ارتفاع كبير جدًا ، مما يجعل الضغط عليها بإصبعك أسهل بكثير من التركيز على العلامات الصغيرة مثل ترميز UTF-8 أو خيار تحديد وضع توفير حركة المرور.

العمل مع شفرة المصدر للموقع والأتمتة
إذا ضغطت على Ctrl + E أو حددت أمرًا مشابهًا في القائمة الرئيسية ، فسيتم وضع التعليمات البرمجية المصدر الكاملة للموقع في منطقة معلومات الكائن.
هناك ، في سطر "البحث" ، يمكنك إدخال نص والبحث عنه باستخدام الأزرار المزودة بزجاج مكبرة (التكرار الأول ، التكرار التالي ، التكرار الأخير) في الكود المصدر.

تسمح الأزرار الملونة الأخرى الموجودة أسفل مربع البحث (تحتوي العديد من أزرار JustCode على تلميحات أدوات تصف وظائفها):
- حذف كل ما سبق أو أسفل النص المحدد / الموجود ،
- تحويل رموز٪ xx إلى أحرف ،
- تحويل رموز جافا سكريبت مثل \ n إلى أحرف ،
- إدراج الواصلات قبل / بعد كل نص موجود ، على غرار النص الذي تم إدخاله في سطر "البحث" ،
- حذف جميع الأسطر التي لا تحتوي على نص تم إدخاله في سطر "البحث"
- التحقق من كل ما تبقى في منطقة الخط كروابط HTTP للملفات ،
- تحميل شفرة مصدر الموقع المعدلة إلى JustCode للعرض ،
- وحتى افتح محرر البرنامج (البرامج النصية) (Ctrl + F5) ، والذي يسمح لك تلقائيًا "بالضغط" على الأزرار الموصوفة بطريقة الأوامر.
محرر برامج JustCode الخاصة

في نافذة هذا المحرر ، على سبيل المثال ، يتم فتح قالب يأخذ رمز الصفحة من فيديو YouTube إلى روابط فردية إلى الفيديو والصوت.
من الواضح أن هناك خدمات عبر الإنترنت تفعل الشيء نفسه. لكن المحرر يسمح لك بتنفيذ مثل هذا النص دون استخدام خدمات الجهة الخارجية و "مشاهدة youtube" دون تشغيل برامج جافا النصية لصفحة الفيديو.
يمكن حفظ البرامج النصية المكتوبة في الملفات ويمكن "ربط" هذه الملفات (تعيين) بأزرار التشغيل السريع بحيث يمكن إطلاقها من نافذة المتصفح الرئيسية بواسطة Alt + 1 و Alt + 2 ... Alt + 0 دون فتح نافذة محرر البرنامج.
العمل مع النماذج
عند استيفاء نموذج ما في العلامات ، يعرض المستعرض النموذج كارتباط "نموذج":

عند الضغط عليه ، يتم فتح نافذة خاصة تعرض محتويات النموذج (يتم عرض نموذج تسجيل الدخول mail.ru):

إذا قمت بتمكين مربع الاختيار "الوضع المتقدم" في الأعلى ، فبإمكانك رؤية رمز النموذج نفسه ، ولن يرسل زر "إرسال" الصفحة ، ولكنه سيعد عنوان URL و (إذا لزم الأمر) بيانات POST لإرسالها وعرضها في الحقول المناسبة. ويمكنك تصحيحها يدويًا ، إذا لزم الأمر ، وبعد النقر فوق "إرسال وتذهب" ، أرسل البيانات المحددة إلى الخادم.

إذا قمت بالنقر فوق الزر "إنشاء برنامج لإرسال البيانات" ، فسيتم إنشاء برنامج نصي يحدد عنوان URL الحالي ويتسبب في إرسال البيانات - أي ، محاكاة إدخال البيانات على صفحة ويب في نموذج وإرسالها.

في الوقت نفسه ، تتم الإشارة إلى بيانات POST أيضًا داخل عنوان URL ، ولكن يتم فصلها بواسطة علامة استفهام مزدوجة. أي واحد "؟" هو الحصول على ، ومضاعفة "؟" هو وظيفة.
يمكن الحصول على "رابط" مماثل لإرسال بيانات النموذج المُدخلة باستخدام طريقة GET (مع "مفردة"؟ ") أو يمكن الحصول على طريقة POST (مع علامة مزدوجة" ؟؟ ") بالنقر فوق الزر" نسخ عنوان URL وبيانات POST إلى الحافظة كارتباط "في محرر النماذج .
عرض الملفات في المتصفح
بعد تنزيل ملف غير مفهوم ، قد تحتاج إلى رؤية "ما بداخله". لذلك ، يحتوي المستعرض على ثلاثة أوضاع عرض:
- كرمز HTML مع تحليل وعرض (F12) ،
- كنص في ترميز Windows / DOS (Shift + F12) ،
- كتمثيل سداسي عشري مع الرموز والنص (Ctrl + F12).
يتم تحديدهم في القائمة أو اختصارات لوحة المفاتيح المذكورة أعلاه مع Shift / Ctrl + F12.

إذا قمت بتحديد سمة MonoDOS / MonoDOS2 أو قمت بتحميل خط DOS PCF (وتمكين مربع الاختيار "ترميز DOS" في قائمة خطوط PCF) ، أو حدد ترميز OEM_CHARSET بأي خط ، يمكنك عرض ملفات نصية قديمة مع رسومات زائفة مباشرة في المستعرض.

باستخدام Ctrl + F12 ، يمكنك رؤية التمثيل السداسي للملف ، على سبيل المثال ، من الرأس لفهم ما قمنا بتنزيله أو معرفة كيفية عمله في الداخل ، على سبيل المثال ، ملف exe لملف المفكرة.

استنتاج
اتضح أن عمل متصفح ليس مجرد كتابة محلل. هذا المتصفح لا يزال يفتقر إلى الكثير.
على سبيل المثال ، فك ضغط البيانات المستلمة من الخادم. لذلك ، على سبيل المثال ، يبدو موقع games.mail.ru وكأنه مجموعة من وحدات البايت العشوائية لأن لا يستمع الموقع ويرسل بيانات معبأة حتى عندما يُطلب منه إرسال بيانات غير معبأة فقط في رؤوس http.

أيضًا ، لا يعرف المستعرض كيفية إرسال الملفات في النماذج ، يمكنه فقط تكوين بيانات كـ "application / x-www-form-urlencoded".
أيضا مع أنك لن تذهب إلى المواقع النصية مثل instagram. لن يكون هناك سوى البرامج النصية التي يجب أن تحمل المحتوى.

ولكن مع ذلك ، يمكنك قراءة مواقع الأخبار والجلوس في المنتديات حتى على جهاز كمبيوتر لوحي ضعيف وعلى أي نظام Windows (95 ، 98 ، 2k ، XP ، Vista ، 7 ، 8 ، 10 ، على الرغم من أن مواقع HTTPS على Windows القديمة قد لا تفشل إذا لم تنجح خوارزميات مثل SHA2 لا يدعمها نظام التشغيل ، لأنها لم تكن معروفة في وقت تطويره) ، قم بتحميل الصور بشكل انتقائي ومشاهدتها على الفور في عارض الصور المفضل لديك ، وعرض البرامج النصية للموقع ، وقراءة التعليقات المضحكة أحيانًا من مطوريهم ، ومراقبة بنية المواقع (أنت لاحظ على الفور أن بعض كتلة من الإعلانات قد أضيفت أو راية ishny، إذا كل يوم قراءة نفس بوابة الأخبار).

(لم يتم تسليم الواصلة بعد).
تحميل اختبار القياس
يزن حوالي 500 كيلو بايت.
يمكنك تنزيل الرابط
blackstrip.ru/jc.zip