Seperti judulnya, saya ingin menulis server HTTP. Pertanyaan saya adalah ini, bagaimana saya melakukan ini? Saya tahu ini terdengar SANGAT umum dan terlalu "tingkat tinggi", tetapi ada metode untuk kegilaan saya. Saya yakin, jawaban atas pertanyaan ini adalah agnostik bahasa; artinya, tidak peduli bahasa apa yang saya gunakan (misalnya, C, C ++, Java, dll.) jawabannya harus sama. Saya memiliki ide umum tentang bagaimana ini seharusnya bekerja:
- Buka soket pada port 80.
- Tunggu klien untuk membuat permintaan.
- Baca permintaan (yaitu, orang ini ingin halaman "contact-us.html").
- Temukan dan baca "contact-us.html".
- Kirim tajuk html, lalu kirim konten "contact-us.html"
- Selesai
Seperti yang saya katakan, saya percaya ini adalah prosesnya, tetapi saya tidak 100% yakin. Ini menuntun saya ke inti pertanyaan saya. Bagaimana atau di mana seseorang mengetahui informasi ini?
Bagaimana jika saya tidak ingin menulis hanya server HTTP, bagaimana jika saya ingin menulis server FTP, server obrolan, penampil gambar, dll.? Bagaimana cara seseorang mengetahui langkah-langkah / proses yang dibutuhkan untuk membuat server HTTP yang berfungsi?
Seorang rekan kerja memberi tahu saya tentang tajuk html, jadi saya tidak akan pernah tahu ini tanpa dia. Dia juga mengatakan sesuatu tentang menyerahkan setiap permintaan ke utas baru. Apakah ada buku besar tentang cara kerja? Adakah manual yang diperlukan untuk menjadi server HTTP?
Saya mencoba googling "bagaimana cara kerja server HTTP", tetapi satu-satunya jawaban yang dapat saya temukan adalah diarahkan ke rata-rata Joe Anda, dan tidak terhadap orang yang ingin memprogram server HTTP.