1. Message Queue (ví dụ: Apache Kafka, RabbitMQ) được sử dụng để làm gì trong kiến trúc ứng dụng web Java?
A. Quản lý kết nối cơ sở dữ liệu
B. Tối ưu hóa hiệu suất của cơ sở dữ liệu
C. Cho phép giao tiếp không đồng bộ giữa các thành phần của ứng dụng, giúp tăng tính linh hoạt và khả năng mở rộng
D. Quản lý bộ nhớ cache
2. Trong mô hình MVC (Model-View-Controller), thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với cơ sở dữ liệu?
A. View
B. Controller
C. Model
D. DispatcherServlet
3. Microservices là gì và nó khác gì so với kiến trúc monolithic trong phát triển ứng dụng web Java?
A. Microservices là một loại cơ sở dữ liệu NoSQL
B. Microservices là một kiến trúc phần mềm mà ứng dụng được cấu trúc như một tập hợp các dịch vụ nhỏ, tự trị, giao tiếp với nhau thông qua các API, trong khi kiến trúc monolithic là một ứng dụng duy nhất, lớn, được xây dựng như một đơn vị
C. Microservices chỉ sử dụng XML, trong khi kiến trúc monolithic sử dụng JSON
D. Microservices nhanh hơn kiến trúc monolithic gấp nhiều lần
4. JSON Web Token (JWT) là gì và nó được sử dụng để làm gì trong ứng dụng web Java?
A. Một loại cơ sở dữ liệu NoSQL
B. Một tiêu chuẩn mở dựa trên JSON để truyền tải thông tin một cách an toàn giữa các bên như một đối tượng JSON, thường được sử dụng cho xác thực và ủy quyền
C. Một công cụ để tạo ra các tài liệu API tự động
D. Một phương pháp để mã hóa dữ liệu
5. Spring Security là gì và nó cung cấp những tính năng chính nào trong việc bảo vệ ứng dụng web Java?
A. Một thư viện để tạo ra các giao diện người dùng (UI) đẹp mắt
B. Một framework mạnh mẽ và tùy biến cao để cung cấp các dịch vụ xác thực (authentication) và ủy quyền (authorization), cũng như bảo vệ chống lại các tấn công phổ biến như CSRF và XSS
C. Một công cụ để quản lý các phiên làm việc của người dùng
D. Một kỹ thuật để tối ưu hóa hiệu suất của ứng dụng
6. Để tạo một RESTful API trong Java, framework nào sau đây thường được sử dụng?
A. Java Swing
B. JavaFX
C. Spring Boot
D. Java AWT
7. CDN (Content Delivery Network) là gì và nó giúp ích như thế nào cho ứng dụng web Java?
A. Một loại cơ sở dữ liệu NoSQL
B. Một mạng lưới các server phân tán trên toàn cầu, lưu trữ bản sao của nội dung tĩnh (như hình ảnh, CSS, JavaScript) và phân phối chúng đến người dùng từ server gần nhất, giúp giảm độ trễ và tăng tốc độ tải trang
C. Một công cụ để quản lý mã nguồn
D. Một phương pháp để mã hóa dữ liệu
8. AOP (Aspect-Oriented Programming) là gì và nó giúp ích như thế nào trong phát triển ứng dụng web Java?
A. Một kỹ thuật để tối ưu hóa hiệu suất cơ sở dữ liệu
B. Một phương pháp để quản lý các transaction trong ứng dụng
C. Một phương pháp lập trình cho phép tách các mối quan tâm cắt ngang (cross-cutting concerns) như logging, bảo mật, transaction management ra khỏi logic nghiệp vụ chính, giúp mã nguồn dễ bảo trì hơn
D. Một công cụ để tạo ra các giao diện người dùng (UI) đẹp mắt
9. Load balancing là gì và tại sao nó quan trọng trong kiến trúc ứng dụng web Java quy mô lớn?
A. Một kỹ thuật để tối ưu hóa mã nguồn Java
B. Một phương pháp để quản lý các kết nối cơ sở dữ liệu
C. Một kỹ thuật phân phối tải công việc trên nhiều server để đảm bảo không có server nào bị quá tải, giúp tăng hiệu suất và khả năng mở rộng
D. Một công cụ để tạo ra các tài liệu API tự động
10. Kubernetes là gì và nó được sử dụng để làm gì trong việc quản lý ứng dụng web Java?
A. Một loại cơ sở dữ liệu NoSQL
B. Một hệ thống điều phối container (container orchestration) mã nguồn mở, cho phép tự động triển khai, mở rộng và quản lý các ứng dụng containerized
C. Một công cụ để quản lý mã nguồn
D. Một phương pháp để mã hóa dữ liệu
11. Dependency Injection (DI) là gì và nó mang lại lợi ích gì trong phát triển ứng dụng web Java?
A. Một kỹ thuật để tối ưu hóa hiệu suất của ứng dụng
B. Một phương pháp để quản lý các phiên làm việc của người dùng
C. Một mẫu thiết kế cho phép cung cấp các dependency (phụ thuộc) của một đối tượng từ bên ngoài thay vì để đối tượng tự tạo hoặc tìm kiếm chúng, giúp tăng tính linh hoạt và khả năng kiểm thử
D. Một công cụ để tạo ra các tài liệu API tự động
12. Thư viện nào của Java thường được sử dụng để phân tích cú pháp (parse) và tạo (generate) JSON?
A. Log4j
B. JUnit
C. Jackson hoặc Gson
D. Hibernate
13. RESTful API là gì và nó khác gì so với SOAP API?
A. RESTful là một kiến trúc thiết kế API sử dụng các phương thức HTTP (GET, POST, PUT, DELETE) để thao tác với tài nguyên, trong khi SOAP là một giao thức truyền thông dựa trên XML
B. RESTful là một giao thức bảo mật, trong khi SOAP là một kiến trúc thiết kế
C. RESTful chỉ sử dụng XML, trong khi SOAP sử dụng JSON
D. RESTful nhanh hơn SOAP gấp nhiều lần
14. JSP (JavaServer Pages) được biên dịch thành gì trước khi thực thi?
A. HTML
B. JavaScript
C. Servlet
D. XML
15. Servlet container có vai trò gì trong kiến trúc ứng dụng web Java?
A. Biên dịch mã nguồn Java thành bytecode
B. Cung cấp môi trường runtime cho các servlet, quản lý vòng đời của servlet và xử lý các yêu cầu HTTP
C. Quản lý kết nối cơ sở dữ liệu
D. Xử lý các tác vụ liên quan đến bảo mật
16. XSS (Cross-Site Scripting) là gì và làm thế nào để phòng tránh nó trong ứng dụng web Java?
A. Một loại tấn công từ chối dịch vụ (DoS)
B. Một loại tấn công mà kẻ tấn công chèn mã JavaScript độc hại vào trang web, thường phòng tránh bằng cách kiểm tra và làm sạch dữ liệu đầu vào/đầu ra
C. Một loại tấn công đánh cắp thông tin người dùng
D. Một loại tấn công giả mạo yêu cầu
17. Session trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu trên phía client
B. Lưu trữ dữ liệu tạm thời trên server để theo dõi trạng thái của người dùng giữa các request
C. Quản lý kết nối cơ sở dữ liệu
D. Xử lý các yêu cầu bảo mật
18. ORM (Object-Relational Mapping) là gì và nó giúp ích như thế nào trong phát triển ứng dụng web Java?
A. Một kỹ thuật để tối ưu hóa hiệu suất của cơ sở dữ liệu
B. Một phương pháp để chuyển đổi dữ liệu giữa các định dạng khác nhau
C. Một kỹ thuật ánh xạ dữ liệu giữa các đối tượng Java và các bảng trong cơ sở dữ liệu, giúp giảm thiểu việc viết mã SQL
D. Một công cụ để quản lý các phiên làm việc của người dùng
19. WebSockets là gì và nó khác gì so với HTTP trong giao tiếp giữa client và server?
A. WebSockets là một giao thức truyền thông song công (full-duplex) cho phép giao tiếp thời gian thực giữa client và server, trong khi HTTP là một giao thức yêu cầu-phản hồi (request-response)
B. WebSockets chỉ sử dụng XML, trong khi HTTP sử dụng JSON
C. WebSockets nhanh hơn HTTP gấp nhiều lần
D. WebSockets là một giao thức bảo mật, trong khi HTTP thì không
20. Framework nào sau đây của Java hỗ trợ phát triển ứng dụng web theo kiến trúc MVC?
A. Java Swing
B. JavaFX
C. Spring MVC
D. Java AWT
21. Trong ngữ cảnh của bảo mật ứng dụng web Java, `Salt` có vai trò gì khi lưu trữ mật khẩu?
A. Tăng tốc độ truy vấn cơ sở dữ liệu
B. Làm cho mật khẩu dễ nhớ hơn
C. Ngăn chặn tấn công Rainbow Table bằng cách thêm dữ liệu ngẫu nhiên vào mật khẩu trước khi băm (hash)
D. Mã hóa toàn bộ cơ sở dữ liệu
22. Continuous Integration (CI) và Continuous Delivery (CD) là gì và chúng giúp ích như thế nào trong quá trình phát triển ứng dụng web Java?
A. Một phương pháp để mã hóa dữ liệu
B. CI là một quy trình tự động hóa việc tích hợp mã nguồn từ nhiều nhà phát triển vào một repository chung, còn CD là một quy trình tự động hóa việc triển khai ứng dụng lên môi trường production, giúp phát hiện lỗi sớm, giảm rủi ro và tăng tốc độ phát hành
C. Một công cụ để quản lý mã nguồn
D. Một kỹ thuật để tối ưu hóa hiệu suất cơ sở dữ liệu
23. Docker container là gì và nó giúp ích như thế nào trong việc triển khai ứng dụng web Java?
A. Một loại cơ sở dữ liệu NoSQL
B. Một công nghệ ảo hóa cấp hệ điều hành cho phép đóng gói một ứng dụng và tất cả các dependency của nó vào một đơn vị có thể triển khai một cách dễ dàng trên bất kỳ môi trường nào
C. Một công cụ để quản lý mã nguồn
D. Một phương pháp để mã hóa dữ liệu
24. Cookie trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu trên server
B. Lưu trữ dữ liệu nhỏ trên phía client (trình duyệt) để theo dõi thông tin người dùng hoặc tùy chỉnh trải nghiệm
C. Quản lý kết nối cơ sở dữ liệu
D. Xử lý các yêu cầu bảo mật
25. Annotation nào trong Spring MVC được sử dụng để ánh xạ một phương thức xử lý yêu cầu HTTP đến một URL cụ thể?
A. @Component
B. @Service
C. @RequestMapping
D. @Repository
26. CSRF (Cross-Site Request Forgery) là gì và làm thế nào để phòng tránh nó trong ứng dụng web Java?
A. Một loại tấn công từ chối dịch vụ (DoS)
B. Một loại tấn công mà kẻ tấn công thực hiện các yêu cầu thay mặt cho người dùng mà không được phép của họ, thường phòng tránh bằng cách sử dụng token đồng bộ hóa
C. Một loại tấn công chèn mã độc vào trang web
D. Một loại tấn công đánh cắp thông tin người dùng
27. Trong Java Web, `ServletContext` là gì?
A. Một đối tượng đại diện cho cấu hình của một servlet.
B. Một interface cho phép servlet giao tiếp trực tiếp với trình duyệt web.
C. Một đối tượng đại diện cho ứng dụng web, cung cấp thông tin về môi trường của ứng dụng và cho phép chia sẻ dữ liệu giữa các servlet.
D. Một lớp tiện ích để quản lý session của người dùng.
28. Transaction management trong ứng dụng web Java là gì và tại sao nó quan trọng?
A. Một kỹ thuật để tối ưu hóa hiệu suất của ứng dụng
B. Một phương pháp để quản lý các phiên làm việc của người dùng
C. Một cơ chế đảm bảo tính toàn vẹn của dữ liệu bằng cách xử lý một loạt các thao tác cơ sở dữ liệu như một đơn vị duy nhất (hoặc tất cả thành công, hoặc tất cả thất bại), quan trọng để tránh mất dữ liệu hoặc dữ liệu không nhất quán
D. Một công cụ để tạo ra các tài liệu API tự động
29. Trong Spring MVC, annotation nào được sử dụng để đánh dấu một class là một controller?
A. @Bean
B. @Component
C. @Controller
D. @Service
30. EL (Expression Language) trong JSP được sử dụng để làm gì?
A. Định nghĩa cấu trúc trang web
B. Thực hiện các phép toán số học
C. Truy cập và hiển thị dữ liệu từ các bean Java
D. Xử lý các sự kiện trên trang web