JavaRush /Java Blog /Random-ID /Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari...

Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari Spring dan JavaEE

Dipublikasikan di grup Random-ID
Jika Anda sudah atau hampir menyelesaikan studi Java SE, inilah saatnya memikirkan langkah selanjutnya dalam menaklukkan profesi pengembang Java. Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari Spring dan JavaEE - 1Di satu sisi, Anda sudah memiliki pemahaman yang baik tentang Java: Anda tahu cara bekerja dengan IDE, menulis program, dan banyak lagi. Tapi apa yang harus kita lakukan selanjutnya dengan program-program tersebut? Bagaimana cara membuatnya lebih keren dan “melepaskannya ke dunia”? Jelaslah bahwa inilah saatnya untuk mulai mempelajari teknologi Perusahaan. Dan disinilah kesenangan dimulai. Tidak masalah tumpukan teknologi mana yang Anda putuskan untuk memulai. Baik itu JavaEE atau Spring, Anda mungkin akan menemukan banyak hal yang masih di luar pemahaman Anda. Antara dasar-dasar Java dan teknologi canggih, masih ada pengetahuan tingkat menengah yang akan membantu Anda tidak kehilangan sisa-sisa pengendalian diri dan kepercayaan diri saat membaca dokumentasi yang banyak. Oleh karena itu, tujuan dari rangkaian artikel ini adalah untuk memberi Anda pengetahuan teoritis minimum yang diperlukan untuk studi lebih lanjut tentang JavaEE atau Spring. Semua materi dibagi menjadi 7 bagian:
  1. Mari kita bicara sedikit tentang jaringan.
  2. Mari kita pertimbangkan struktur client-server dan arsitektur tiga tingkat.
  3. Mari kita lihat protokol HTTP/HTTPS.
  4. Mari pelajari semua yang perlu Anda ketahui tentang Maven.
  5. Mari kita bicara tentang servlet.
  6. Wadah servlet.
  7. Dan akhirnya - tentang MVC.

Bagian 1. Mari kita bicara sedikit tentang jaringan

Mari kita mulai dengan hal yang paling penting dan berbicara tentang dasar di mana semua jejaring sosial, layanan web dan aplikasi, pesan instan, dan situs sederhana dibangun - tentang jaringan ( dalam konteks rangkaian artikel ini, istilah "jaringan" berarti Internet Global ). Sebuah jaringan terdiri dari sejumlah besar komputer: mereka saling berhubungan dan mampu berkomunikasi. Penting untuk memahami bagaimana mereka melakukan hal ini, karena aplikasi web bertanggung jawab untuk mentransfer informasi dari satu komputer ke komputer lain.

model jaringan OSI

Model OSI (Open Systems Interconnection) menciptakan pendekatan berlapis untuk membangun jaringan. Ini dengan jelas menunjukkan bagaimana dan pada tingkat apa anggota jaringan yang sama dapat berinteraksi satu sama lain. Secara total, model ini berisi 7 level:
7 Terapan
6 Perwakilan
5 Sidang
4 Mengangkut
3 Jaringan
2 Saluran
1 Fisik
Pemecahan menjadi lapisan abstraksi memungkinkan spesialis yang bekerja, misalnya, pada lapisan transport, tidak memikirkan detail implementasi jaringan pada lapisan jaringan dan sesi. Pendekatan ini juga digunakan dalam pemrograman. Mari kita lihat semua lapisan model OSI dan cari tahu mana yang menarik bagi kita:
  1. 1. Tingkat fisik - di sini hukum fisika melakukan tugasnya, dan tugas manusia adalah menggunakan dan mengarahkannya untuk tujuannya sendiri. Misalnya membuat kabel dan meletakkannya ke anggota jaringan.

    Kami tidak tertarik.

  2. Lapisan data link - bertanggung jawab untuk mengirimkan data ke node jaringan dan membuat saluran transmisi data pada objek fisik.

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

  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), с которой нам часто придется работать.

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

    Jika suatu aplikasi berkomunikasi dengan beberapa pengguna secara bersamaan, jumlah koneksi yang sesuai, dan sesi, akan dibuat. Setiap sesi memiliki pengidentifikasi unik (ID) , yang memungkinkan aplikasi membedakan pengguna yang melakukan komunikasi.

  6. Lapisan presentasi - bertanggung jawab untuk pengkodean/dekode data. Jelasnya, jika kita perlu mengirim string “Halo web” ke pengguna lain, string tersebut terlebih dahulu diubah (dikodekan) menjadi kode biner, dan baru kemudian dikirim. Setelah mencapai tujuan, pesan diubah kembali (didekode) dan penerima dapat melihat string aslinya. Tindakan ini terjadi pada tingkat presentasi.

  7. Lapisan aplikasi adalah lapisan yang paling menarik bagi kami. Ini memungkinkan aplikasi untuk berinteraksi dengan jaringan. Pada level ini kita akan menerima, mengirim pesan, membuat permintaan ke layanan dan database jarak jauh.

    Ada banyak protokol yang digunakan pada level ini: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET dan, tentu saja, HTTP/HTTPS. Protokol adalah perjanjian universal yang kami patuhi saat menulis pesan. Kami pasti akan membicarakan protokol HTTP/HTTPS secara terpisah dan lebih detail.

Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari Spring dan JavaEE - 2 Kita tidak perlu mengetahui cara kerja setiap level model ini. Yang utama adalah memahami prinsip pengoperasian elemen-elemen yang harus kita hadapi saat menulis aplikasi web, yaitu:
  • Alamat IP—alamat pelanggan di jaringan;
  • Port — alamat aplikasi pelanggan tertentu;
  • Sesi adalah entitas yang ada di seluruh komunikasi antara dua pelanggan;
  • Protokol aplikasi (HTTP/HTTPS) adalah aturan yang akan memandu kita saat membuat dan mengirim pesan.
Saat kami mengunjungi, katakanlah, toko online, kami menunjukkan alamat lokasi dan portnya. Pada kunjungan pertama Anda, sebuah sesi dibuat di mana toko dapat mencatat informasi. Misalnya saja tentang barang yang kita tinggalkan di troli. Jika kita menutup tab toko online lalu kembali ke sana, produk kita akan tetap ada di keranjang karena disimpan di sesi tersebut. Tentu saja, kami menerima semua informasi yang kami terima dari toko melalui protokol HTTP/HTTPS, dan browser kami dapat memprosesnya. Anda dapat menolak dan mengatakan bahwa Anda belum pernah memasukkan alamat dan port di browser, dan Anda sebagian benar, karena Anda memasukkan nama domain yang dikonversi di server DNS. Tapi di sini, mari kita lihat lebih dekat apa itu.

DNS (Sistem Nama Domain)

Seperti yang telah kita ketahui, setiap pelanggan di jaringan memiliki alamat unik. Jika kita berbicara tentang suatu aplikasi, alamat uniknya adalah IPv4:port . Mengetahui alamat ini, Anda dapat langsung mengakses aplikasinya. Bayangkan kita membuat aplikasi web yang menampilkan suhu udara rata-rata di semua negara secara real time. Kami menyebarkannya di server dengan alamat 226.69.237.119 dan pada port 8080. Agar pengguna dapat menerima informasi dari kami, ia harus memasukkan 5 nomor di browser: 226.69.237.119:8080. Orang tidak terlalu suka mengingat rangkaian angka: tidak semua dari kita mengingat lebih dari dua nomor telepon. Itu sebabnya sistem nama domain diciptakan . Kita dapat membuat “alias” untuk alamat kita—misalnya, world-temperature.com—dan alih-alih mencari kita menggunakan alamat lima digit, pengguna dapat mengetikkan nama domain kita di bilah alamat browser. Untuk mencocokkan nama domain dan alamat asli, ada server DNS . Ketika pengguna memasukkan, misalnya, javarush.ru di browser, permintaannya dikirim ke server DNS, yang kemudian diubah menjadi alamat sebenarnya. Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari Spring dan JavaEE - 4Penting bagi kami untuk memahami hal ini, karena dalam aplikasi kami, kami akan memanggil layanan jarak jauh baik dengan nama domain maupun alamat asli, dan ini akan menjadi layanan yang sama. Itu saja! Pada artikel ini, kita melihat dasar-dasar desain jaringan, yang akan berguna sebelum Anda mulai mempelajari pemrograman web. Lain kali kita akan melihat apa itu arsitektur client-server dan mengapa memahaminya sangat penting. Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak Bagian 3. Protokol HTTP/HTTPS Bagian 4. Dasar-dasar Maven Bagian 5. Servlet. Menulis aplikasi web sederhana Bagian 6. Kontainer servlet Bagian 7. Memperkenalkan pola MVC (Model-View-Controller) Bagian 8. Menulis aplikasi spring-boot kecil
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION