Như tiêu đề đã nói, tôi muốn viết một máy chủ HTTP. Câu hỏi của tôi là này, làm thế nào để tôi làm điều này? Tôi biết điều này nghe có vẻ RẤT chung chung và quá "cao cấp", nhưng có một phương pháp cho sự điên rồ của tôi. Một câu trả lời cho câu hỏi này là, tôi tin, ngôn ngữ bất khả tri; nghĩa là, bất kể tôi sử dụng ngôn ngữ nào (ví dụ: C, C ++, Java, v.v.), câu trả lời phải giống nhau. Tôi có một ý tưởng chung về cách thức hoạt động của nó:
- Mở một ổ cắm trên cổng 80.
- Chờ một khách hàng đưa ra yêu cầu.
- Đọc yêu cầu (nghĩa là người này muốn trang "contact-us.html").
- Tìm và đọc "contact-us.html".
- Gửi một tiêu đề html, sau đó gửi nội dung của "contact-us.html"
- Làm xong
Như tôi đã nói, tôi tin rằng đây là quá trình, nhưng tôi không chắc chắn 100%. Điều này dẫn tôi đến trung tâm của câu hỏi của tôi. Làm thế nào hoặc ở đâu một người tìm ra thông tin này?
Điều gì sẽ xảy ra nếu tôi không muốn chỉ viết một máy chủ HTTP, nếu tôi muốn viết một máy chủ FTP, máy chủ trò chuyện, trình xem hình ảnh, v.v. thì sao? Làm thế nào để một người tìm ra các bước / quy trình chính xác cần thiết để tạo một máy chủ HTTP hoạt động?
Một đồng nghiệp đã nói với tôi về tiêu đề html, vì vậy tôi KHÔNG BAO GIỜ biết điều này nếu không có anh ta. Ông cũng nói điều gì đó về việc đưa ra từng yêu cầu cho một chủ đề mới. Có một số cuốn sách lớn về cách mọi thứ hoạt động? Có một số hướng dẫn về những gì nó cần để trở thành một máy chủ HTTP?
Tôi đã thử googling "máy chủ HTTP hoạt động như thế nào", nhưng câu trả lời duy nhất tôi có thể tìm được là hướng tới Joe trung bình của bạn chứ không phải hướng tới một người muốn lập trình máy chủ HTTP.