JavaRush /Blog Java /Random-VI /Phần 1. Những điều bạn cần biết trước khi học Spring và J...

Phần 1. Những điều bạn cần biết trước khi học Spring và JavaEE

Xuất bản trong nhóm
Nếu bạn đã hoàn thành việc học Java SE hoặc sắp học xong, đã đến lúc suy nghĩ về các bước tiếp theo để chinh phục nghề nhà phát triển Java. Phần 1. Những điều bạn cần biết trước khi học Spring và JavaEE - 1Một mặt, bạn đã hiểu rõ về Java: bạn biết cách làm việc với IDE, viết chương trình và hơn thế nữa. Nhưng chúng ta nên làm gì tiếp theo với chúng, các chương trình? Làm thế nào để khiến chúng ngầu hơn và “thả chúng ra thế giới”? Rõ ràng đã đến lúc bắt đầu nghiên cứu các công nghệ Doanh nghiệp. Và đây là nơi niềm vui bắt đầu. Việc bạn quyết định bắt đầu với công nghệ nào không quan trọng. Cho dù đó là JavaEE hay Spring, có thể bạn sẽ gặp rất nhiều thứ vẫn nằm ngoài tầm hiểu biết của bạn. Giữa những điều cơ bản về Java và các công nghệ tiên tiến, vẫn còn một mức độ kiến ​​​​thức trung cấp sẽ giúp bạn không mất đi sự tự chủ và tự tin còn sót lại khi đọc tài liệu đồ sộ. Vì vậy, mục đích của loạt bài này là cung cấp cho bạn những kiến ​​thức lý thuyết tối thiểu cần thiết để nghiên cứu sâu hơn về JavaEE hoặc Spring. Tất cả các tài liệu được chia thành 7 phần:
  1. Hãy nói một chút về mạng.
  2. Hãy xem xét cấu trúc của máy khách-máy chủ và kiến ​​trúc ba cấp độ.
  3. Hãy xem các giao thức HTTP/HTTPS.
  4. Hãy tìm hiểu mọi thứ bạn cần biết về Maven.
  5. Hãy nói về servlet.
  6. Các thùng chứa servlet.
  7. Và cuối cùng - về MVC.

Phần 1. Nói một chút về mạng

Hãy bắt đầu với điều quan trọng nhất và nói về cơ sở xây dựng tất cả các mạng xã hội, dịch vụ và ứng dụng web, tin nhắn tức thời và các trang web đơn giản - về mạng ( trong bối cảnh của loạt bài viết này, thuật ngữ “mạng” có nghĩa là Internet toàn cầu ). Mạng bao gồm một số lượng lớn các máy tính: chúng được kết nối với nhau và có khả năng giao tiếp. Điều quan trọng là phải hiểu cách chúng thực hiện điều này, bởi vì các ứng dụng web chính xác là những gì chúng làm để truyền thông tin từ máy tính này sang máy tính khác.

Mô hình mạng OSI

Mô hình OSI (Kết nối hệ thống mở) tạo ra cách tiếp cận theo lớp để xây dựng mạng. Nó cho thấy rõ ràng các thành viên trong cùng một mạng có thể tương tác với nhau ở cấp độ nào và như thế nào. Tổng cộng, mô hình này có 7 cấp độ:
7 Đã áp dụng
6 đại diện
5 Phiên họp
4 Chuyên chở
3 Mạng
2 ống dẫn
1 Thuộc vật chất
Việc chia nhỏ thành các lớp trừu tượng cho phép các chuyên gia làm việc, chẳng hạn như trên lớp truyền tải, không phải suy nghĩ về các chi tiết triển khai mạng ở lớp mạng và lớp phiên. Cách tiếp cận này cũng được sử dụng trong lập trình. Chúng ta hãy xem xét tất cả các lớp của mô hình OSI và tìm ra lớp nào thú vị đối với chúng ta:
  1. 1. Cấp độ vật lý - ở đây các định luật vật lý thực hiện công việc của chúng và nhiệm vụ của con người là sử dụng và chỉ đạo điều này cho mục đích riêng của mình. Ví dụ: tạo cáp và đặt chúng cho các thành viên mạng.

    Chúng tôi không quan tâm.

  2. Lớp liên kết dữ liệu - chịu trách nhiệm truyền dữ liệu đến các nút mạng và tạo các kênh truyền dữ liệu trên các đối tượng vật lý.

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

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

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

    Nếu một ứng dụng liên lạc đồng thời với nhiều người dùng thì số lượng kết nối thích hợp và do đó các phiên sẽ được thiết lập. Mỗi phiên có một mã định danh (ID) duy nhất , cho phép ứng dụng phân biệt giữa những người dùng thực hiện giao tiếp.

  6. Lớp trình bày - chịu trách nhiệm mã hóa/giải mã dữ liệu. Rõ ràng, nếu chúng ta cần gửi chuỗi “Xin chào web” cho người dùng khác, thì trước tiên chuỗi đó sẽ được chuyển đổi (mã hóa) thành mã nhị phân và chỉ sau đó mới được gửi đi. Khi đến đích, tin nhắn sẽ được chuyển đổi trở lại (được giải mã) và người nhận có thể nhìn thấy chuỗi gốc. Những hành động này xảy ra ở cấp độ trình bày.

  7. Lớp ứng dụng là lớp thú vị nhất đối với chúng tôi. Nó cho phép các ứng dụng tương tác với mạng. Ở cấp độ này, chúng tôi sẽ nhận, gửi tin nhắn, đưa ra yêu cầu tới các dịch vụ và cơ sở dữ liệu từ xa.

    Có nhiều giao thức được sử dụng ở cấp độ này: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET và tất nhiên là HTTP/HTTPS. Giao thức là một thỏa thuận chung mà chúng ta tuân thủ khi soạn tin nhắn. Chắc chắn chúng ta sẽ nói về các giao thức HTTP/HTTPS một cách riêng biệt và chi tiết hơn.

Phần 1. Những điều bạn cần biết trước khi học Spring và JavaEE - 2 Chúng ta không cần biết từng cấp độ của mô hình này hoạt động như thế nào. Điều chính là phải hiểu nguyên tắc hoạt động của các phần tử mà chúng ta sẽ phải xử lý khi viết ứng dụng web, cụ thể là:
  • Địa chỉ IP—địa chỉ của thuê bao trên mạng;
  • Cổng - địa chỉ ứng dụng của một thuê bao cụ thể;
  • Phiên là một thực thể tồn tại trong toàn bộ quá trình giao tiếp giữa hai người đăng ký;
  • Các giao thức ứng dụng (HTTP/HTTPS) là các quy tắc sẽ hướng dẫn chúng ta khi soạn và gửi tin nhắn.
Ví dụ: khi chúng tôi đến một cửa hàng trực tuyến, chúng tôi cho biết địa chỉ vị trí và cổng của cửa hàng đó. Trong lần truy cập đầu tiên của bạn, một phiên sẽ được tạo trong đó cửa hàng có thể ghi lại thông tin. Ví dụ, về hàng hóa mà chúng tôi đã để lại trong xe đẩy. Nếu chúng ta đóng tab cửa hàng trực tuyến rồi quay lại tab đó, các sản phẩm của chúng ta sẽ vẫn còn trong giỏ hàng vì chúng được lưu trong phiên. Tất nhiên, chúng tôi nhận được tất cả thông tin mà chúng tôi nhận được từ cửa hàng thông qua giao thức HTTP/HTTPS và trình duyệt của chúng tôi có thể xử lý thông tin đó. Bạn có thể phản đối và nói rằng bạn chưa bao giờ nhập địa chỉ và cổng vào trình duyệt, và bạn sẽ đúng một phần vì bạn đã nhập tên miền đã được chuyển đổi trên máy chủ DNS. Nhưng ở đây, chúng ta hãy xem xét kỹ hơn cái gì là cái gì.

DNS (Hệ thống tên miền)

Như chúng ta đã biết, mỗi thuê bao trên mạng có một địa chỉ duy nhất. Nếu chúng ta đang nói về một ứng dụng, địa chỉ duy nhất của nó sẽ là IPv4:port . Biết địa chỉ này, bạn có thể truy cập trực tiếp vào ứng dụng. Hãy tưởng tượng rằng chúng ta đã viết một ứng dụng web hiển thị nhiệt độ không khí trung bình ở tất cả các quốc gia theo thời gian thực. Chúng tôi đã triển khai nó trên máy chủ có địa chỉ 226.69.237.119 và trên cổng 8080. Để người dùng nhận được thông tin từ chúng tôi, người dùng cần nhập 5 số vào trình duyệt: 226.69.237.119:8080. Mọi người không thực sự thích nhớ các dãy số: không phải tất cả chúng ta đều nhớ nhiều hơn hai số điện thoại. Đó là lý do tại sao hệ thống tên miền được phát minh . Chúng tôi có thể tạo “bí danh” cho địa chỉ của mình—ví dụ: world-temps.com—và thay vì tìm kiếm chúng tôi bằng địa chỉ gồm năm chữ số, người dùng có thể nhập tên miền của chúng tôi vào thanh địa chỉ của trình duyệt. Để khớp tên miền và địa chỉ thực, có máy chủ DNS . Ví dụ: khi người dùng nhập javarush.ru vào trình duyệt, yêu cầu của anh ta sẽ được gửi đến máy chủ DNS, nơi nó sẽ chuyển thành địa chỉ thực. Phần 1. Những điều cần biết trước khi học Spring và JavaEE - 4Điều quan trọng là chúng ta phải hiểu điều này, vì trong các ứng dụng của mình, chúng ta sẽ gọi các dịch vụ từ xa bằng cả tên miền và địa chỉ thực và đây sẽ là các dịch vụ giống nhau. Đó là tất cả! Trong bài viết này, chúng ta đã xem xét những kiến ​​thức cơ bản về thiết kế mạng, điều này sẽ hữu ích trước khi bạn bắt đầu học lập trình web. Lần tới chúng ta sẽ xem kiến ​​trúc client-server là gì và tại sao việc hiểu nó lại quan trọng đến vậy. Phần 2. Hãy nói một chút về kiến ​​trúc phần mềm Phần 3. Giao thức HTTP/HTTPS Phần 4. Kiến thức cơ bản về Maven Phần 5. Servlets. Viết một ứng dụng web đơn giản Phần 6. Thùng chứa Servlet Phần 7. Giới thiệu mẫu MVC (Model-View-Controller) Phần 8. Viết một ứng dụng spring-boot nhỏ
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION