JavaRush /مدونة جافا /Random-AR /الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE

الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE

نشرت في المجموعة
إذا كنت قد أكملت بالفعل دراسة Java SE أو كنت قريبًا منها، فقد حان الوقت للتفكير في الخطوات التالية في غزو مهنة مطور Java. الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE - 1من ناحية، لديك بالفعل فهم جيد لجافا: أنت تعرف كيفية العمل مع IDE، وكتابة البرامج، وأكثر من ذلك بكثير. ولكن ماذا يجب أن نفعل بعد ذلك معهم، البرامج؟ كيف تجعلها أكثر برودة و"تطلقها للعالم"؟ يصبح من الواضح أن الوقت قد حان لبدء دراسة تقنيات المؤسسات. وهذا هو المكان الذي تبدأ فيه المتعة. لا يهم مجموعة التكنولوجيا التي قررت البدء بها. سواء أكان ذلك JavaEE أو Spring، فمن المحتمل أن تصادف الكثير من الأشياء التي لا تزال خارج نطاق فهمك. بين أساسيات Java والتقنيات المتقدمة، لا يزال هناك مستوى متوسط ​​من المعرفة سيساعدك على عدم فقدان بقايا ضبط النفس والثقة بالنفس عند قراءة الوثائق الضخمة. ولذلك، فإن الغرض من هذه السلسلة من المقالات هو إعطائك الحد الأدنى من المعرفة النظرية اللازمة لمزيد من الدراسة لـ JavaEE أو Spring. جميع المواد مقسمة إلى 7 أجزاء:
  1. دعونا نتحدث قليلا عن الشبكة.
  2. دعونا نفكر في هيكل خادم العميل والبنية ثلاثية المستويات.
  3. دعونا نلقي نظرة على بروتوكولات HTTP/HTTPS.
  4. دعنا نتعلم كل ما تحتاج لمعرفته حول Maven.
  5. دعونا نتحدث عن السيرفلتس.
  6. حاويات سيرفلت.
  7. وأخيرا - حول MVC.

الجزء 1. دعونا نتحدث قليلا عن الشبكة

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

نموذج شبكة OSI

ينشئ نموذج OSI (الربط البيني للأنظمة المفتوحة) نهجًا متعدد الطبقات لبناء الشبكة. إنه يوضح بوضوح كيف وعلى أي مستوى يمكن لأعضاء نفس الشبكة التفاعل مع بعضهم البعض. في المجمل، يحتوي هذا النموذج على 7 مستويات:
7 مُطبَّق
6 التمثيل
5 حصة
4 ينقل
3 شبكة
2 قناة
1 بدني
يسمح التقسيم إلى طبقات مجردة للمتخصصين الذين يعملون، على سبيل المثال، في طبقة النقل، بعدم التفكير في تفاصيل تنفيذ الشبكة في طبقات الشبكة والجلسة. ويستخدم هذا النهج أيضا في البرمجة. دعونا نلقي نظرة على جميع طبقات نموذج OSI ونكتشف أي منها يثير اهتمامنا:
  1. 1. المستوى المادي – هنا تقوم قوانين الفيزياء بعملها، ومهمة الإنسان هي أن يستخدم ذلك ويوجهه لأغراضه الخاصة. على سبيل المثال، إنشاء الكابلات وتمديدها لأعضاء الشبكة.

    نحن لسنا مهتمين.

  2. طبقة ربط البيانات - المسؤولة عن نقل البيانات إلى عقد الشبكة وإنشاء قنوات نقل البيانات على الأشياء المادية.

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

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

  6. طبقة العرض - المسؤولة عن تشفير/فك تشفير البيانات. من الواضح أننا إذا أردنا إرسال السلسلة "Hello web" إلى مستخدم آخر، فسيتم تحويلها (تشفيرها) أولاً إلى رمز ثنائي، وبعد ذلك فقط يتم إرسالها. بمجرد وصولها إلى الوجهة، يتم تحويل الرسالة مرة أخرى (فك تشفيرها) ويمكن للمستلم رؤية السلسلة الأصلية. تحدث هذه الإجراءات على مستوى العرض.

  7. طبقة التطبيق هي الطبقة الأكثر إثارة للاهتمام بالنسبة لنا. يسمح للتطبيقات بالتفاعل مع الشبكة. على هذا المستوى سوف نتلقى ونرسل الرسائل ونقدم الطلبات إلى الخدمات وقواعد البيانات البعيدة.

    هناك العديد من البروتوكولات المستخدمة على هذا المستوى: POP3، FTP، SMTP، XMPP، RDP، SIP، TELNET وبالطبع HTTP/HTTPS. البروتوكول هو اتفاق عالمي نلتزم به عند كتابة الرسائل. سنتحدث بالتأكيد عن بروتوكولات HTTP/HTTPS بشكل منفصل وبمزيد من التفاصيل.

الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE - 2 لا نحتاج إلى معرفة كيفية عمل كل مستوى من هذا النموذج. الشيء الرئيسي هو فهم مبادئ تشغيل العناصر التي سيتعين علينا التعامل معها عند كتابة تطبيقات الويب، وهي:
  • عنوان IP — عنوان المشترك على الشبكة؛
  • المنفذ — عنوان التطبيق لمشترك معين؛
  • الجلسة هي كيان موجود طوال الاتصال بأكمله بين مشتركين؛
  • بروتوكولات التطبيق (HTTP/HTTPS) هي القواعد التي سترشدنا عند إنشاء الرسائل وإرسالها.
عندما نذهب إلى متجر عبر الإنترنت، على سبيل المثال، نشير إلى عنوان موقعه والمنفذ. في زيارتك الأولى، يتم إنشاء جلسة يمكن للمتجر من خلالها تسجيل المعلومات. على سبيل المثال، حول البضائع التي تركناها في العربة. إذا أغلقنا علامة تبويب المتجر عبر الإنترنت ثم عدنا إليها، فستبقى منتجاتنا في سلة التسوق لأنه يتم حفظها في الجلسة. حسنًا، بالطبع، نحن نتلقى جميع المعلومات التي نتلقاها من المتجر عبر بروتوكول HTTP/HTTPS، ويمكن لمتصفحنا معالجتها. يمكنك الاعتراض والقول أنك لم تقم مطلقًا بإدخال العنوان والمنفذ في المتصفح، وستكون على حق جزئيًا، لأنك أدخلت اسم المجال، الذي تم تحويله على خادم DNS. ولكن هنا، دعونا نلقي نظرة أفضل على ما هو.

DNS (نظام اسم المجال)

كما اكتشفنا بالفعل، فإن كل مشترك في الشبكة لديه عنوان فريد. إذا كنا نتحدث عن تطبيق ما، فسيكون عنوانه الفريد هو IPv4:port . بمعرفة هذا العنوان، يمكنك الوصول مباشرة إلى التطبيق. لنتخيل أننا كتبنا تطبيق ويب يعرض متوسط ​​درجة حرارة الهواء في جميع البلدان في الوقت الفعلي. قمنا بنشره على خادم بعنوان 226.69.237.119 وعلى المنفذ 8080. لكي يتلقى المستخدم معلومات منا، يحتاج إلى إدخال 5 أرقام في المتصفح: 226.69.237.119:8080. لا يحب الناس حقًا تذكر مجموعات من الأرقام: لا يتذكر كل منا أكثر من رقمين للهاتف. ولهذا السبب تم اختراع نظام اسم النطاق . يمكننا إنشاء "اسم مستعار" لعنواننا - على سبيل المثال، world-temperature.com - وبدلاً من البحث عنا باستخدام عنوان مكون من خمسة أرقام، يمكن للمستخدم كتابة اسم النطاق الخاص بنا في شريط عنوان المتصفح. لمطابقة أسماء النطاقات والعناوين الحقيقية، توجد خوادم DNS . عندما يدخل المستخدم، على سبيل المثال، javarush.ru في المتصفح، يتم إرسال طلبه إلى خادم DNS، حيث يتحول إلى عنوان حقيقي. الجزء 1. ما تحتاج إلى معرفته قبل تعلم Spring وJavaEE - 4من المهم بالنسبة لنا أن نفهم ذلك، لأنه في تطبيقاتنا سوف نتصل بالخدمات البعيدة حسب اسم المجال والعنوان الحقيقي، وستكون هذه هي نفس الخدمات. هذا كل شئ! في هذه المقالة، استعرضنا أساسيات تصميم الشبكة، والتي ستكون مفيدة قبل البدء في تعلم برمجة الويب. في المرة القادمة سنلقي نظرة على ماهية بنية خادم العميل وسبب أهمية فهمها. الجزء 2. لنتحدث قليلاً عن هندسة البرمجيات الجزء 3. بروتوكولات HTTP/HTTPS الجزء 4. أساسيات Maven الجزء 5. Servlets. كتابة تطبيق ويب بسيط الجزء 6. حاويات Servlet الجزء 7. تقديم نمط MVC (Model-View-Controller) الجزء 8. كتابة تطبيق صغير للتمهيد الربيعي
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION