1. Firewall (tường lửa) có chức năng chính là gì trong mạng máy tính?
A. Tăng tốc độ truyền dữ liệu mạng.
B. Phân tích và sửa lỗi giao thức mạng.
C. Kiểm soát và lọc lưu lượng mạng, ngăn chặn truy cập trái phép.
D. Cấp phát địa chỉ IP tự động.
2. Trong lập trình mạng, 'localhost′ hoặc '127.0.0.1′ thường dùng để chỉ điều gì?
A. Một server từ xa trên Internet.
B. Địa chỉ IP của router.
C. Máy tính cục bộ đang chạy chương trình.
D. Địa chỉ IP của DNS server.
3. HTTP header 'Content-Type′ cho biết điều gì?
A. Địa chỉ IP của server.
B. Kích thước của dữ liệu phản hồi.
C. Loại dữ liệu (MIME type) của phần thân (body) của HTTP message.
D. Ngôn ngữ của nội dung phản hồi.
4. Giao thức SMTP được sử dụng cho mục đích gì?
A. Truy cập website.
B. Truyền tải file.
C. Gửi email.
D. Xem video trực tuyến.
5. Cơ chế 'Three-way handshake′ (bắt tay ba bước) được sử dụng trong giao thức nào?
A. UDP.
B. HTTP.
C. TCP.
D. DNS.
6. Phương thức `POST` trong HTTP thường được sử dụng khi nào?
A. Để lấy thông tin từ server.
B. Để gửi dữ liệu lớn lên server, ví dụ như tải file hoặc submit form.
C. Để cập nhật một tài nguyên hiện có trên server.
D. Để kiểm tra kết nối đến server.
7. HTTP status code '404 Not Found′ có nghĩa là gì?
A. Server gặp lỗi nội bộ.
B. Yêu cầu thành công.
C. Tài nguyên được yêu cầu không tồn tại trên server.
D. Server từ chối yêu cầu vì lý do bảo mật.
8. Trong mô hình client-server, server có vai trò gì?
A. Khởi tạo kết nối và yêu cầu dịch vụ.
B. Cung cấp tài nguyên và dịch vụ theo yêu cầu từ client.
C. Chỉ hiển thị giao diện người dùng.
D. Không có vai trò cụ thể.
9. HTTP method 'PUT′ thường được sử dụng để làm gì?
A. Lấy dữ liệu từ server.
B. Xóa dữ liệu trên server.
C. Thay thế toàn bộ tài nguyên hiện có bằng dữ liệu mới.
D. Gửi dữ liệu lên server để tạo tài nguyên mới.
10. Trong ngữ cảnh lập trình mạng, 'serialization′ (tuần tự hóa) là gì?
A. Mã hóa dữ liệu để bảo mật.
B. Nén dữ liệu để giảm kích thước.
C. Chuyển đổi đối tượng dữ liệu thành một chuỗi byte để truyền qua mạng hoặc lưu trữ.
D. Phân tích gói tin mạng.
11. Trong lập trình socket, hàm `accept()` có vai trò gì?
A. Gửi dữ liệu đến client.
B. Đóng kết nối socket.
C. Chấp nhận một kết nối đến từ client và tạo một socket mới để giao tiếp với client đó.
D. Thiết lập địa chỉ IP cho socket server.
12. Socket là gì trong lập trình mạng?
A. Một loại cáp mạng.
B. Một giao thức truyền dữ liệu.
C. Điểm cuối của một kết nối mạng, cho phép ứng dụng giao tiếp qua mạng.
D. Một thiết bị phần cứng mạng.
13. Mục đích của việc sử dụng 'timeout′ trong socket programming là gì?
A. Tăng tốc độ truyền dữ liệu.
B. Giảm tải cho server.
C. Ngăn chặn chương trình bị treo khi chờ đợi phản hồi vô thời hạn.
D. Bảo mật kết nối socket.
14. Mục đích chính của việc sử dụng load balancer (cân bằng tải) trong hệ thống server là gì?
A. Tăng tốc độ xử lý của một server đơn lẻ.
B. Phân phối lưu lượng truy cập đến nhiều server để cải thiện hiệu suất và khả năng chịu lỗi.
C. Bảo mật dữ liệu trên server.
D. Giảm chi phí phần cứng server.
15. Giao thức TCP đảm bảo độ tin cậy bằng cách nào?
A. Sử dụng giao thức UDP làm nền tảng.
B. Không yêu cầu xác nhận gói tin.
C. Sử dụng cơ chế bắt tay ba bước và cơ chế xác nhận, truyền lại gói tin.
D. Chỉ truyền dữ liệu theo một chiều.
16. Nguyên tắc hoạt động của giao thức HTTP là gì?
A. Mô hình ngang hàng (peer-to-peer).
B. Mô hình client-server dựa trên yêu cầu và phản hồi.
C. Truyền dữ liệu liên tục không cần yêu cầu.
D. Chỉ truyền tải file.
17. Điểm yếu chính của giao thức UDP so với TCP là gì?
A. Tốc độ truyền dữ liệu chậm hơn.
B. Không hỗ trợ truyền multicast.
C. Không đảm bảo độ tin cậy và thứ tự của gói tin.
D. Khó cấu hình hơn TCP.
18. Port (cổng) trong lập trình mạng được sử dụng để làm gì?
A. Địa chỉ vật lý của máy tính.
B. Địa chỉ IP của máy tính.
C. Xác định ứng dụng hoặc dịch vụ cụ thể trên một máy chủ.
D. Tốc độ truyền dữ liệu mạng.
19. Địa chỉ IP phiên bản IPv6 có độ dài bao nhiêu bit?
A. 32 bit.
B. 64 bit.
C. 128 bit.
D. 256 bit.
20. Trong lập trình socket, hàm `bind()` được sử dụng để làm gì?
A. Đóng kết nối socket.
B. Thiết lập kết nối đến một máy chủ từ xa.
C. Gán địa chỉ IP và số cổng cụ thể cho socket.
D. Nghe các kết nối đến.
21. SSL∕TLS được sử dụng để cung cấp bảo mật gì cho truyền thông mạng?
A. Tăng tốc độ truyền dữ liệu.
B. Nén dữ liệu để giảm băng thông.
C. Mã hóa dữ liệu và xác thực để bảo vệ tính riêng tư và toàn vẹn.
D. Phân phối tải cho server.
22. Giao thức nào được sử dụng để phân giải tên miền (domain name) thành địa chỉ IP?
A. HTTP.
B. FTP.
C. DNS.
D. SMTP.
23. Điểm khác biệt chính giữa TCP và UDP là gì?
A. TCP nhanh hơn UDP.
B. UDP đảm bảo độ tin cậy, TCP thì không.
C. TCP là giao thức hướng kết nối, UDP là giao thức không kết nối.
D. UDP sử dụng bắt tay ba bước, TCP thì không.
24. Trong lập trình mạng, 'blocking socket′ có nghĩa là gì?
A. Socket chỉ cho phép gửi dữ liệu.
B. Socket hoạt động ở chế độ bảo mật cao.
C. Các hoạt động I∕O trên socket sẽ tạm dừng chương trình cho đến khi hoàn thành.
D. Socket chỉ nhận dữ liệu từ một client duy nhất.
25. Giao thức FTP được sử dụng cho mục đích gì?
A. Truy cập website.
B. Gửi và nhận email.
C. Truyền tải file giữa client và server.
D. Phân giải tên miền.
26. Phương thức giao tiếp nào thường được sử dụng cho các ứng dụng thời gian thực như video streaming hoặc game online?
A. TCP.
B. HTTP.
C. UDP.
D. FTP.
27. Ưu điểm chính của việc sử dụng thread (luồng) trong lập trình mạng server là gì?
A. Tăng cường bảo mật cho server.
B. Cho phép server xử lý đồng thời nhiều kết nối client mà không bị block.
C. Giảm độ trễ mạng.
D. Đơn giản hóa việc quản lý địa chỉ IP.
28. Hàm `listen()` trong socket server có chức năng gì?
A. Gửi dữ liệu đến client.
B. Đóng kết nối socket.
C. Bắt đầu lắng nghe các kết nối đến từ client.
D. Thiết lập địa chỉ IP cho socket.
29. Phương thức `GET` trong HTTP được sử dụng để làm gì?
A. Gửi dữ liệu lên server để tạo tài nguyên mới.
B. Xóa tài nguyên trên server.
C. Lấy dữ liệu từ server.
D. Cập nhật tài nguyên trên server.
30. Khái niệm 'non-blocking socket′ khác biệt với 'blocking socket′ như thế nào?
A. Non-blocking socket hoạt động nhanh hơn blocking socket.
B. Non-blocking socket không thể gửi dữ liệu.
C. Non-blocking socket cho phép chương trình tiếp tục thực hiện các công việc khác trong khi chờ hoạt động I∕O hoàn thành.
D. Non-blocking socket chỉ hoạt động với giao thức UDP.