Menu
CoddyTech

Cấu tạo của một yêu cầu

Bài học 20 trên 47 trong khóa học Mạng máy tính với terminal của Coddy.

Bên dưới curl, một yêu cầu HTTP là văn bản thuần được gửi qua socket. Yêu cầu bắt đầu bằng một dòng cho biết bạn muốn gì:

GET /index.html HTTP/1.1

Có ba phần: phương thức (loại thao tác), đường dẫn (thứ bạn muốn truy cập) và phiên bản. Tiếp theo là các header, mỗi header trên một dòng, rồi một dòng trống và cuối cùng là phần thân không bắt buộc.

Dòng trống không phải để trang trí. Nhờ nó, máy chủ biết phần tiêu đề đã kết thúc và phần nội dung, nếu có, bắt đầu. Yêu cầu không có dòng này sẽ bị treo vì máy chủ vẫn chờ nhận phần còn lại.

Bạn có thể tự gửi dòng này. nc mở một kết nối thô, và mọi thứ bạn nhập sẽ được gửi thẳng qua đường truyền:

printf 'GET / HTTP/1.0\r\n\r\n' | nc 127.0.0.1 9110

\r\n là ký tự kết thúc dòng mà HTTP yêu cầu, còn cặp thứ hai tạo thành dòng trống đó.

challenge icon

Thử thách

Khó

Bỏ qua curl hoàn toàn và tự gửi yêu cầu HTTP.

  1. Tạo tệp index.html chứa raw
  2. Chạy máy chủ cho thư mục trên cổng 9110
  3. Gửi yêu cầu GET /index.html HTTP/1.0 thô qua nc và chỉ in dòng đầu tiên trong phản hồi

Dòng đầu tiên đó là dòng trạng thái của máy chủ. Đầu ra dự kiến:

HTTP/1.0 200 OK

Nhớ dòng trống: printf 'GET /index.html HTTP/1.0\r\n\r\n'.

Tự làm thử

Terminal
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Mạng máy tính với terminal

Tự luyện tập: Playground Terminal