محاكات الإتصال بين المتصفح و الويب سرفر


بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته


محاكات الإتصال بين المتصفح و الويب سرفر .



شرح بعض الأشياء وبشكل بسيط جدا.


1-صفحة الويب فلنقل صفحة html ويب بسيطة هي عبارة عن ملف نصي موجود في جهاز السرفر (إقرأ قليلا عن ملفات html ) .

2- السرفر ببساطة هو غالبا جهاز بعيد قد يكون بأي دولة ,يحتوي هذا الجهاز خدمة أو برنامج خاص يأخذ الطلبات ويرد عليها مثلا اريد الصورة الفلانية أو ملف html الفلاني الموجود عندك إن تحققت كل الشروط يرد بالمحتوى المطلوب إن لم تتحقق يرد بأن هناك خطأ ما (السرفرات الجدية أي المستخدمة من المواقع الفعليه هي أجهزة ذات كفائة عالية وتستخدم غالبا لينكس او ويندوز كنظام تشغيل ويكون عليها الخدمة أو البرنامج الذي سبق وتم ذكره مثلا apache و غيره ) .

3-يقوم المتصفح كزبون client بالإتصال بالسرفر ويطلب ملف ما موجود عنده مثلا ملف صفحة ويب html, إن وجد يرد السرفر بمحتوى الملف المطلوب ثم يحول المتصفح بطريقة ما محتويات هذا الملف من ال tags وh1 h2 ...إلخ إلى شيء مرئي أي مثلا يعمل النص الفلاني bold أو مائل و...إلخ ويعرضه.


 الأن بشكل بسيط كيف تتم هذه العملية؟

لنأخذ مثلا تصفح http://arfedora.com/index.html .


1-يقوم المتصفح بالإتصال بالسرفر وعنوانه arfedora.com (بطريقة ما يتم تحويل الإسم إلى رقم هو ip السرفر أي عنوان السرفر, على العموم هذا ليس موضوعنا ) .

2-البروتوكول المستخدم هو http والإتصال عن طريق TCP/IP (للمزيد إدرس شبكات) ,إذا لم ينجح الإتصال يعطي الخطأ المشهور وعدة إحتمالات على حسب المتصفح مثلا تأكد من أن الإنترنت يعمل لديك و...إلخ.

3-بعد نجاح الإتصال بالسرفر ,الملف أو المستند المطلوب هو index.html ,إن وجد الملف يقوم السرفر بالرد بمحتوى هذا الملف ويقوم المتصفح بعرضه ,وإن لم يكن موجود غالبا يتم إرجاع محتوى صفحة html تحتوى جمل تدل ان هناك خطأ ما حصل وبعض المعلومات.

4-ال web server إفتراضيا يتلقى طلبات http من خلال منفذ إفتراضي الذي هو 80 ,يعني إذا كان الip هو العنوان , المنفذ port تخيله شيء مثل رقم الباب لتلقي منه الطلبات .

5-المتصفح إذا لم يذكر المنفذ سيحدد المنفذ الإفتراضي للبروتوكول المذكور في اول رابط المطلوب مثلا http المنفذ 80 وhttps المنفذ 443 و...إلخ .

6-يطلب المتصفح الإتصال بالسرفر عبر البروتوكول و المنفذ والعنوان الصحيح ,لاكن إذا صح التعبير المنفذ الذي يتصل هو منه منفذ عشوائي يحدده له نظام التشغيل شيء كهذا :

-المتصفح  192.168.1.2 ومنفذ عشوائي 5643 .

-السرفر 192.168.1.1  ومنفذ 80 .

-فإذا هناك عنوان ومنفذ لل client و عنوان ومنفذ لل web server ,السرفر يتلقى الطلبات على المنفذ رقم مثلا 80 في حالة http و يرد على منفذ ال client.



الأن نأتي للشرح بالصور سأضع الصورة وفي أسفلها الشرح .



 للتجارب فقط قمت بإنشاء ملف html و دخلت على المسار الموجود فيه وشغلت سرفر http بسيطة من خلال مفسر بايثون إصدار ثلاثة ,الان هذا سيمثل السرفر البعيد (ملاحظة حددت المنفذ 8080 أي غيرت الإفتراضي لبروتوكول http) .



 إستخدمت nc لمحاكات إتصال المتصفح بالسرفر ,الإتصال على منفذ 8080 و localhost تعني بطريقة ما عنوان الجهاز الذي أعمل منه, الأن إذا نجح الإتصال سيظهر مثل الذي في الصورة إذا لم يظهر ساحصل على خطأ أن الإتصال فشل.
(إستخدمت localhost في الclient لأني أجرب على ذات الجهاز الذي يشغل السرفر  بالمناسبة ممكن تحديد رقم ال ip بشكل صريح )


 إستخدمت شيء يسمى http method بإختصار وبشكل بسيط أمر لجلب ملف index.html .

نلاحظ النتجية إرجاع أولا ما يسمى ال header أي معلومات عن السرفر والملف و...إلخ

ثانيا إرجاع محتوى الملف وهنا لو كان nc لديه إمكانيات المتصفح لكان عرضها بالشكل المطلوب .

من  جهت السرفر يعرض بعض المعلومات الرقم 200 يسمى http status code وهذا الرقم يعني ان كل شيء تم من دون مشاكل وهو مذكور أيضا في ال header.


 طلبت مسار غير موجود نلاحظ النتيجة .

 ال code 404 يعني بشكل بسيط الملف أو المسار المطلوب غير موجود .



 نجرب من المتصفح مع تحديد المنفذ المطلوب إن لم يكن المستخدم إفتراضي نلاحظ النتيجة جلب محتوى index.html و عرض كل شيء كما حدد .


ذات الشيء لاكن هذه صفحت الخطأ وهي تتغير من موقع لأخر يعني على حسب .




 هذا كان شرح ببساطة للمزيد أدرس شبكات إقرأ عن الأشياء المذكورة في الشرح مثل  port socket http html tcp ip و غيرهم .



شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)