CodeGym /Blog Java /Ngẫu nhiên /Phần 1. Những điều cần biết trước khi học Spring và JavaE...
John Squirrels
Mức độ
San Francisco

Phần 1. Những điều 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 (hoặc sắp) học Java SE, thì đã đến lúc nghĩ về các bước tiếp theo để chinh phục nghề lập trình viên Java. Phần 1. Những điều cần biết trước khi học Spring và JavaEE - 1 Mộ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.v. Nhưng bạn nên làm gì tiếp theo với các chương trình của mình? Làm thế nào để bạn làm cho chúng mát hơn và "giải phóng chúng trên thế giới"? Rõ ràng là đã đến lúc bắt đầu nghiên cứu về công nghệ doanh nghiệp. Và bây giờ niềm vui bắt đầu. Việc bạn quyết định bắt đầu với ngăn xếp công nghệ nào không quan trọng. Cho dù đó là JavaEE hay Spring, bạn có thể bắt gặp rất nhiều thứ vượt xa tầm hiểu biết của bạn. Giữa những kiến ​​thức cơ bản về Java và các công nghệ nâng cao, vẫn còn một bước trung gian về kiến ​​thức cần phải thực hiện để duy trì những gì còn lại của sự tự chủ và tự tin của bạn khi bạn đọc tài liệu đồ sộ. Vì thế,là cung cấp cho bạn kiến ​​thức lý thuyết tối thiểu cần thiết để bạn nghiên cứu sâu hơn về JavaEE hoặc Spring. Tài liệu này được chia thành 7 phần:
  1. Chúng ta sẽ nói một chút về mạng.
  2. Chúng ta sẽ kiểm tra kiến ​​trúc client-server và ba tầng.
  3. Chúng ta sẽ khám phá các giao thức HTTP/HTTPS.
  4. Chúng ta sẽ tìm hiểu mọi thứ bạn cần biết về Maven.
  5. Chúng ta đang nói về đăng nhập.
  6. Giới thiệu về thùng chứa servlet.
  7. Và cuối cùng, về MVC.

Phần 1. Chúng ta sẽ nói một chút về mạng.

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

mô hình OSI

Mô hình Kết nối Hệ thống Mở (OSI) tạo ra cách tiếp cận theo tầng để xây dựng mạng. Nó chỉ rõ cách thức và ở tầng nào các thực thể của cùng một mạng có thể tương tác với nhau. Nói chung, mô hình này bao gồm 7 lớp:
7 Ứng dụng
6 Bài thuyết trình
5 Phiên họp
4 Chuyên chở
3 Mạng
2 Liên kết dữ liệu
1 Thuộc vật chất
Ví dụ, việc chia mô hình thành các lớp trừu tượng cho phép các nhà phát triển làm việc trên lớp vận chuyển không phải suy nghĩ về các chi tiết triển khai ở cấ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. Hãy xem xét tất cả các lớp của mô hình OSI và xác định xem chúng ta quan tâm đến lớp nào:
  1. Lớp vật lý — Lớp này xử lý các định luật vật lý và cách sử dụng chúng cho các mục đích của chúng ta. Ví dụ: tạo cáp và đặt chúng cho các thực thể trong mạng.

    Lớp này không quan tâm đến chúng tôi.

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

    Chúng tôi không quan tâm đến lớp này trừ khi bạn muốn viết chương trình cơ sở cho phần cứng thiết lập liên kết dữ liệu.

  3. Lớp mạng — Lớp này dùng để xác định địa chỉ của người dùng mạng riêng lẻ và các tuyến đường đến họ. Có giá trị trong việc tìm hiểu thêm về các chi tiết của lớp này, cụ thể là địa chỉ mạng.

    Địa chỉ mạng được xác định bởi một giao thức đặc biệt: phổ biến nhất là IPv4 (Giao thức Internet phiên bản 4). Đây là giao thức mà một lập trình viên web cần sử dụng để liên hệ với một người dùng mạng khác.

    Địa chỉ IPv4 bao gồm bốn giá trị byte được phân tách bằng dấu chấm, ví dụ: 192.0.2.235. Bạn nên nhớ rằng những giá trị này là byte, có nghĩa là chúng nằm trong phạm vi 0..255.

    Ngược lại, địa chỉ IP được chia thành các lớp. Chúng ta không thể đơn giản gán cho mình một tổ hợp số đẹp mà chúng ta sẽ không đi sâu lắm ở đây. Đủ để hiểu rằng một địa chỉ IP xác định duy nhất một người dùng mạng và có thể được sử dụng để liên hệ với người dùng đó.

  4. Tầng vận chuyển — Tầng này xử lý việc gửi thông tin đến người nhận. Các giao thức khác nhau được sử dụng để thực hiện điều này. Hiện tại, chúng tôi không quan tâm đến chúng. Chúng tôi quan tâm nhiều hơn đến khái niệm cổng xuất hiện ở lớp này.

    Các cổng chịu trách nhiệm xác định một ứng dụng cụ thể trên máy tính. Ví dụ: giả sử bạn viết ứng dụng trò chuyện bằng Java, cài đặt ứng dụng đó trên 2 máy tính và muốn gửi tin nhắn cho bạn của mình. Tin nhắn của bạn được đóng gói, gửi đến một địa chỉ IP cụ thể và được gửi đến bạn của bạn, nhưng máy tính của anh ta không biết phải làm gì với thông tin nhận được vì nó không hiểu ứng dụng nào sẽ xử lý tin nhắn của bạn. Khi các thực thể mạng giao tiếp, các cổng được sử dụng để chỉ ra ứng dụng nào sẽ xử lý thông tin.

    Cổng là một số trong phạm vi từ 0 đến 65535. Nó được thêm vào địa chỉ IP sau dấu hai chấm: 192.0.2.235:8080 . Nhưng bạn không thể sử dụng tất cả các cổng trong phạm vi đã chỉ định: một số trong số chúng được dành riêng cho hệ điều hành, những cổng khác thường được sử dụng cho các mục đích cụ thể. Chúng tôi sẽ không đi sâu vào mục đích của các cổng khác nhau. Đến đây cũng đủ hiểu vai trò của chúng trong quá trình giao tiếp trên mạng.

  5. Lớp phiên — Lớp này tạo và quản lý các phiên giao tiếp. Ở lớp này, các ứng dụng có thể tương tác, gửi các yêu cầu cấp dịch vụ. Điều chúng ta cần biết là ở lớp này, một phiên được mở giữa hai người dùng và chúng ta phải làm việc với phiên đó.

    Phiên là một thực thể được tạo khi kết nối được thiết lập giữa hai người dùng . Nó có thể lưu trữ thông tin cần thiết về người dùng và về lịch sử tương tác với người dùng. Một chi tiết quan trọng là khi ngừng trao đổi thông tin, phiên sẽ không biến mất. Thay vào đó, nó duy trì trạng thái của nó trong một khoảng thời gian nhất định, vì vậy người dùng có thể tiếp tục trao đổi thông tin sau khi nghỉ.

    Nếu một ứng dụng đang giao tiếp với nhiều người dùng cùng một lúc, thì số lượng kết nối tương ứng (và do đó là 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 mà nó đang giao tiếp.

  6. Lớp trình bày — Lớp nà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 này được chuyển đổi thành mã nhị phân (được mã hóa dưới dạng) và chỉ sau đó chuỗi này mới được gửi. Khi đến tay người nhận, tin nhắn được chuyển đổi ngược 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 diễn ra ở lớ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 giao tiếp với mạng. Ở lớp này, chúng tôi nhận và gửi tin nhắn cũng như đưa ra yêu cầu đối với các dịch vụ và cơ sở dữ liệu từ xa.

    Có nhiều giao thức được sử dụng ở tầng này: POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET và tất nhiên là cả HTTP/HTTPS. Một giao thức là một thỏa thuận chung mà chúng tôi tuân thủ khi giao tiếp. Chúng tôi chắc chắn sẽ cung cấp một cuộc thảo luận chi tiết riêng về HTTP/HTTPS.

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

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

Như chúng ta đã biết, mỗi người dùng mạng có một địa chỉ duy nhất. Nếu chúng ta đang nói về ứng dụng, thì địa chỉ duy nhất của nó sẽ là IPv4-address:port . Nếu bạn 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 tôi đã 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 trong 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, trên cổng 8080. Để có thể nhận thông tin từ chúng tôi, người dùng phải nhập 5 số vào trình duyệt: 226.69.237.119:8080. Mọi người không thích ghi nhớ các bộ số: nhiều người trong chúng ta không thể 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 một "bí danh" cho địa chỉ của mình, ví dụ: world-Temperature.com. Thay vì tìm kiếm chúng tôi bằng một địa chỉ bao gồm năm số khó nhớ, 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. Có các máy chủ DNS ánh xạ tên miền tới địa chỉ thực. Ví dụ: khi người dùng nhập codegym.cc trong trình duyệt, yêu cầu của cô ấy sẽ được gửi đến máy chủ DNS, máy chủ này sẽ chuyển đổi 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 này rất quan trọng đối với chúng tôi, bởi vì các ứng dụng của chúng tôi sẽ gọi các dịch vụ từ xa theo cả tên miền và địa chỉ thực. Chúng ta cần hiểu rằng trong cả hai trường hợp, các dịch vụ đều giống nhau. Đó là nó cho bây giờ! Trong bài viết này, chúng ta đã xem xét kiến ​​thức cơ bản về mạng, sẽ hữu ích khi bạn bắt đầu học lập trình web.Lần tới chúng ta sẽ xem xét kiến ​​trúc máy khách-máy chủ là gì và tại sao nó lại quan trọng đến vậy để hiểu. Phần 2. Hãy nói một chút về kiến ​​trúc phần mềm Phần 3. HTTP/HTTPS Phần 4. Khái niệm cơ bản về Maven Phần 5. Servlet và Java Servlet API. Viết một ứng dụng web đơn giản Phần 6. Bộ chứa Servlet Phần 7. Giới thiệu mẫu MVC (Model-View-Controller)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION