Node.js ialah sumber terbuka, persekitaran masa jalan merentas platform untuk pengaturcaraan JavaScript sebelah pelayan. Ia mengendalikan dengan cara yang didorong oleh peristiwa yang cekap dan oleh itu berfungsi dengan baik apabila mengendalikan sejumlah besar sambungan serentak.
Dalam Node.js, kami boleh menggunakan modul http untuk mencipta aplikasi sebelah pelayan. Modul ini membolehkan kami mendengar permintaan HTTP dan menyediakan antara muka yang mudah untuk bertindak balas kepada permintaan pelanggan.
Dalam artikel ini, kami akan meneroka masa http permintaan HTTP individu dalam Node.js. Masa ini termasuk masa carian DNS, masa sambungan TCP, masa permintaan dan respons serta masa tutup sambungan.
Masa carian DNS
Masa carian DNS ialah ukuran berapa lama masa yang diperlukan untuk menterjemah nama domain kepada alamat IP. Dalam Node.js, resolusi DNS agak perlahan, jadi kita mesti merancang lebih awal dan mengetahui alamat IP URL yang ingin kita minta.
Masa Sambungan TCP
Sebaik sahaja kami mengetahui alamat IP URL yang diminta, kami perlu mewujudkan sambungan TCP. Proses ini termasuk jabat tangan tiga hala, iaitu, menghantar permintaan SYN, menerima respons SYN dan menghantar permintaan ACK dan menerima respons ACK. Semasa tiga langkah ini, masa perjalanan pergi dan balik akan menjadi sebahagian daripada masa sambungan TCP.
Masa permintaan dan respons
Apabila sambungan TCP diwujudkan, kami boleh menghantar permintaan HTTP ke pelayan. Proses ini melibatkan menghantar permintaan dan menunggu jawapan. Semasa menunggu pelayan bertindak balas, kita perlu mempertimbangkan faktor seperti kependaman rangkaian dan beban pelayan.
Setelah kami menerima respons HTTP daripada pelayan, kami juga perlu membaca respons ke dalam penimbal. Proses ini juga mengambil masa, bergantung pada saiz tindak balas.
Tutup masa sambungan
Selepas kami melengkapkan semua permintaan HTTP dan interaksi tindak balas, kami perlu menutup sambungan TCP. Proses ini termasuk menghantar isyarat FIN, menunggu pelayan menghantar isyarat ACK, dan menerima isyarat ACK. Seperti masa sambungan TCP, menutup sambungan TCP juga perlu mengambil kira masa pergi balik.
Ringkasan
Dalam Node.js, masa http bagi setiap permintaan HTTP terutamanya terdiri daripada masa carian DNS, masa sambungan TCP, masa permintaan dan respons serta masa tutup sambungan. Untuk memaksimumkan prestasi, kita perlu meminimumkan kesan masa ini sebanyak mungkin.
Contohnya, kami boleh menggunakan caching peringkat aplikasi untuk mengurangkan masa carian DNS, atau menggunakan HTTP/2 untuk mengelakkan kos sambungan TCP dan sambungan penutupan. Kami juga boleh menggunakan pemprosesan strim Node.js dan pengaturcaraan tak segerak untuk memaksimumkan pemprosesan serentak dan mengurangkan masa menunggu.
Ringkasnya, memahami masa http permintaan HTTP individu dalam Node.js boleh membantu kami mengoptimumkan aplikasi bahagian pelayan kami dengan lebih baik.
Atas ialah kandungan terperinci Teroka masa http setiap permintaan HTTP dalam Node.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!