1. WebSocket là gì?
A. Một giao thức truyền tải dữ liệu một chiều.
B. Một giao thức truyền tải dữ liệu hai chiều, thời gian thực giữa máy khách và máy chủ.
C. Một giao thức mã hóa dữ liệu.
D. Một giao thức định tuyến gói tin.
2. Sự khác biệt giữa authorization (ủy quyền) và authentication (xác thực) là gì?
A. Authentication là quá trình xác định người dùng là ai, còn authorization là quá trình xác định người dùng có quyền làm gì.
B. Authorization là quá trình xác định người dùng là ai, còn authentication là quá trình xác định người dùng có quyền làm gì.
C. Authentication và authorization là hai thuật ngữ đồng nghĩa.
D. Authentication là quá trình mã hóa dữ liệu, còn authorization là quá trình giải mã dữ liệu.
3. Trong lập trình mạng, socket là gì?
A. Một loại biến toàn cục dùng để chia sẻ dữ liệu giữa các luồng.
B. Một giao diện lập trình ứng dụng (API) để tạo và quản lý các tiến trình.
C. Một điểm cuối (endpoint) của một kết nối mạng, cho phép các ứng dụng giao tiếp với nhau.
D. Một giao thức mạng được sử dụng để mã hóa dữ liệu trước khi truyền.
4. Trong lập trình mạng, thuật ngữ `deadlock` (bế tắc) đề cập đến tình huống nào?
A. Một lỗi trong chương trình dẫn đến việc chương trình bị treo.
B. Một tình huống trong đó hai hoặc nhiều luồng (threads) hoặc tiến trình (processes) chờ đợi lẫn nhau để giải phóng tài nguyên, dẫn đến việc không có tiến trình nào có thể tiếp tục.
C. Một cuộc tấn công mạng khiến hệ thống bị quá tải.
D. Một tình huống trong đó dữ liệu bị mất trong quá trình truyền.
5. OAuth là gì?
A. Một giao thức mã hóa dữ liệu.
B. Một framework để xây dựng giao diện người dùng.
C. Một giao thức ủy quyền cho phép ứng dụng của bên thứ ba truy cập vào tài nguyên của người dùng trên một dịch vụ khác mà không cần biết thông tin đăng nhập của người dùng.
D. Một giao thức định tuyến gói tin.
6. Hàm `accept()` trong lập trình socket dùng để làm gì?
A. Để gửi dữ liệu qua socket.
B. Để nhận dữ liệu từ socket.
C. Để chấp nhận một kết nối đến từ một máy khách, tạo ra một socket mới cho kết nối đó.
D. Để đóng kết nối socket.
7. JSON (JavaScript Object Notation) là gì?
A. Một ngôn ngữ lập trình.
B. Một định dạng dữ liệu nhẹ, dễ đọc và dễ phân tích cú pháp, thường được sử dụng để truyền dữ liệu giữa máy chủ và máy khách.
C. Một giao thức mạng.
D. Một hệ quản trị cơ sở dữ liệu.
8. Phương pháp nào sau đây được sử dụng để chuyển đổi tên miền (ví dụ: google.com) thành địa chỉ IP?
A. ARP (Address Resolution Protocol)
B. DNS (Domain Name System)
C. ICMP (Internet Control Message Protocol)
D. DHCP (Dynamic Host Configuration Protocol)
9. Trong lập trình socket, hàm `bind()` được sử dụng để làm gì?
A. Để thiết lập một kết nối mới với một máy chủ từ xa.
B. Để lắng nghe các kết nối đến.
C. Để gán một địa chỉ IP và cổng cho một socket.
D. Để gửi dữ liệu qua socket.
10. Sự khác biệt chính giữa TCP và UDP là gì?
A. TCP nhanh hơn UDP.
B. TCP cung cấp kết nối hướng (connection-oriented) và đảm bảo dữ liệu đến nơi, trong khi UDP không đảm bảo.
C. UDP cung cấp kết nối hướng (connection-oriented), trong khi TCP thì không.
D. TCP sử dụng ít tài nguyên hơn UDP.
11. Khi thiết kế một hệ thống phân tán, CAP theorem phát biểu điều gì?
A. Một hệ thống phân tán chỉ có thể đảm bảo tối đa hai trong ba thuộc tính: Consistency (tính nhất quán), Availability (tính khả dụng) và Partition tolerance (tính chịu phân vùng).
B. Một hệ thống phân tán luôn phải đảm bảo cả ba thuộc tính: Consistency, Availability và Partition tolerance.
C. Consistency, Availability và Partition tolerance là ba thuộc tính không liên quan đến nhau.
D. CAP theorem chỉ áp dụng cho cơ sở dữ liệu quan hệ.
12. RESTful API là gì?
A. Một loại cơ sở dữ liệu.
B. Một kiến trúc thiết kế API tuân theo các nguyên tắc của REST (Representational State Transfer), sử dụng các phương thức HTTP để thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên tài nguyên.
C. Một ngôn ngữ lập trình mạng.
D. Một giao thức bảo mật.
13. Phương thức GET trong HTTP được sử dụng để làm gì?
A. Để gửi dữ liệu lên máy chủ để tạo hoặc cập nhật tài nguyên.
B. Để yêu cầu một tài nguyên từ máy chủ.
C. Để xóa một tài nguyên trên máy chủ.
D. Để cập nhật một phần của tài nguyên trên máy chủ.
14. MQTT (Message Queuing Telemetry Transport) là gì?
A. Một giao thức truyền tải email.
B. Một giao thức truyền tải tin nhắn nhẹ, được thiết kế cho các thiết bị IoT (Internet of Things) và các ứng dụng có băng thông hạn chế.
C. Một giao thức mã hóa dữ liệu.
D. Một giao thức định tuyến gói tin.
15. Firewall (tường lửa) hoạt động ở tầng nào trong mô hình OSI?
A. Tầng Vật lý (Physical Layer)
B. Tầng Liên kết dữ liệu (Data Link Layer)
C. Tầng Mạng (Network Layer) và Tầng Giao vận (Transport Layer)
D. Tầng Ứng dụng (Application Layer)
16. Phương thức POST trong HTTP thường được sử dụng để làm gì?
A. Để yêu cầu một tài nguyên từ máy chủ.
B. Để gửi dữ liệu lên máy chủ để tạo hoặc cập nhật một tài nguyên.
C. Để xóa một tài nguyên trên máy chủ.
D. Để lấy thông tin về một tài nguyên mà không cần tải toàn bộ tài nguyên đó.
17. gRPC là gì?
A. Một ngôn ngữ lập trình mới.
B. Một framework RPC (Remote Procedure Call) hiệu suất cao, được phát triển bởi Google, sử dụng Protocol Buffers làm ngôn ngữ định nghĩa giao diện.
C. Một hệ quản trị cơ sở dữ liệu.
D. Một giao thức bảo mật.
18. Trong mô hình OSI, tầng nào chịu trách nhiệm cho việc thiết lập, duy trì và kết thúc kết nối giữa các ứng dụng?
A. Tầng Vật lý (Physical Layer)
B. Tầng Mạng (Network Layer)
C. Tầng Giao vận (Transport Layer)
D. Tầng Ứng dụng (Application Layer)
19. Giao thức TCP (Transmission Control Protocol) cung cấp đặc tính nào sau đây?
A. Truyền dữ liệu không đáng tin cậy, tốc độ cao.
B. Truyền dữ liệu theo thứ tự, đáng tin cậy và có kiểm soát lỗi.
C. Truyền dữ liệu quảng bá đến tất cả các máy trong mạng.
D. Truyền dữ liệu không kết nối, không cần thiết lập kết nối trước.
20. NAT (Network Address Translation) được sử dụng để làm gì?
A. Để mã hóa dữ liệu trước khi truyền qua mạng công cộng.
B. Để ẩn địa chỉ IP riêng của các thiết bị trong mạng nội bộ đằng sau một địa chỉ IP công cộng.
C. Để tăng tốc độ truyền dữ liệu trên mạng.
D. Để phân tích lưu lượng mạng và phát hiện các cuộc tấn công.
21. Nguyên tắc cơ bản của kiến trúc client-server là gì?
A. Tất cả các máy tính trong mạng đều có vai trò ngang hàng.
B. Một máy chủ cung cấp tài nguyên hoặc dịch vụ, và các máy khách yêu cầu tài nguyên hoặc dịch vụ đó.
C. Dữ liệu được chia sẻ trực tiếp giữa các máy khách mà không cần máy chủ.
D. Mỗi máy tính hoạt động như cả máy khách và máy chủ.
22. Công cụ nào thường được sử dụng để kiểm tra khả năng kết nối đến một máy chủ từ xa?
A. netstat
B. ping
C. traceroute
D. ipconfig
23. CORS (Cross-Origin Resource Sharing) là gì?
A. Một giao thức mã hóa dữ liệu.
B. Một cơ chế bảo mật trình duyệt cho phép các trang web từ một nguồn gốc (domain) khác nhau truy cập tài nguyên của nhau.
C. Một giao thức định tuyến gói tin.
D. Một phương pháp nén dữ liệu.
24. SSL/TLS (Secure Sockets Layer/Transport Layer Security) được sử dụng để làm gì?
A. Để nén dữ liệu trước khi truyền.
B. Để tạo một kênh truyền thông an toàn và mã hóa giữa máy khách và máy chủ.
C. Để kiểm soát luồng dữ liệu trên mạng.
D. Để định tuyến các gói tin qua mạng.
25. Trong lập trình mạng, luồng (thread) được sử dụng để làm gì?
A. Để mã hóa dữ liệu trước khi truyền.
B. Để xử lý đồng thời nhiều kết nối hoặc tác vụ mạng.
C. Để kiểm soát luồng dữ liệu trên mạng.
D. Để định tuyến các gói tin qua mạng.
26. Giao thức HTTP (Hypertext Transfer Protocol) được sử dụng để làm gì?
A. Để gửi email.
B. Để truyền tải siêu văn bản (HTML) và các tài nguyên web khác giữa máy khách và máy chủ.
C. Để quản lý cơ sở dữ liệu.
D. Để mã hóa dữ liệu trước khi truyền.
27. Địa chỉ IP (Internet Protocol) được sử dụng để làm gì?
A. Để mã hóa dữ liệu trước khi truyền.
B. Để định danh duy nhất một thiết bị trên mạng.
C. Để kiểm soát luồng dữ liệu giữa các thiết bị.
D. Để nén dữ liệu trước khi truyền.
28. Long Polling là gì?
A. Một kỹ thuật để giảm độ trễ mạng.
B. Một kỹ thuật trong đó máy khách gửi một yêu cầu đến máy chủ và máy chủ giữ kết nối mở cho đến khi có dữ liệu mới để gửi về.
C. Một phương pháp mã hóa dữ liệu nâng cao.
D. Một giao thức để quản lý phiên người dùng.
29. Hàm `listen()` trong lập trình socket có chức năng gì?
A. Chấp nhận một kết nối đến từ một máy khách.
B. Gửi dữ liệu đến một máy chủ.
C. Đặt socket vào trạng thái lắng nghe các kết nối đến.
D. Đóng kết nối socket.
30. Cookie HTTP được sử dụng để làm gì?
A. Để mã hóa dữ liệu trước khi truyền.
B. Để lưu trữ thông tin về người dùng trên máy chủ.
C. Để lưu trữ thông tin về người dùng trên máy khách (trình duyệt) và được gửi kèm theo các yêu cầu HTTP.
D. Để kiểm soát luồng dữ liệu trên mạng.