Rumah > Artikel > hujung hadapan web > Asas Pengehadan Kadar: Cara Ia Berfungsi dan Cara Menggunakannya
Penghadan kadar ialah konsep penting dalam pembangunan web. Ia memastikan kestabilan pelayan, peruntukan sumber yang cekap, dan perlindungan terhadap serangan berniat jahat. Jadi Dalam artikel ini, kita akan menyelidiki intipati pengehadan kadar, kepentingannya, pelbagai kaedah pelaksanaan dan contoh praktikal untuk menunjukkan kefungsiannya. jom terjun terus ke dalam ?
Penghadan kadar ialah strategi yang digunakan untuk mengawal jumlah permintaan atau trafik masuk ke perkhidmatan web atau pelayan. ia membantu melindungi aplikasi anda daripada penyalahgunaan, memastikan pengagihan sumber yang adil dan mengekalkan kestabilan perkhidmatan.
Berikut ialah beberapa sebab mengapa anda perlu menggunakan pengehadan kadar ??
? Saya juga tidak akan berbohong kerana saya tidak tahu banyak tentang algoritma Token Bucket dan Leaky Bucket, kerana saya tidak memerlukannya untuk projek semasa saya. Walau bagaimanapun, Tetingkap Tetap dan Tetingkap Gelongsor ialah jenis yang paling biasa anda temui. Sebagai contoh, GPT-4 OpenAI menggunakan pengehadan kadar Tetingkap Tetap dengan had berperingkat—peringkat pertama mereka membenarkan 500 permintaan seminit Pendekatan ini boleh menyebabkan trafik pecah, kerana pengguna mungkin mencapai had mereka sejurus sebelum tetingkap ditetapkan semula.
Proses biasanya melibatkan:
Sekarang anda mempunyai pemahaman asas tentang pengehadan kadar dan cara ia berfungsi, mari kita mengotorkan tangan kita dengan melaksanakannya dalam projek yang akan kita buat.
Kami akan mencipta dua projek yang menunjukkan pengehadan kadar:
Buat folder dengan mana-mana nama pilihan anda dan buka pada kod VS atau apa sahaja editor kod yang anda gunakan.
Di dalam folder yang telah anda buat, buat dua lagi folder yang dipanggil bahagian hadapan dan bahagian belakang.
Selepas itu, cd ke dalam folder bahagian belakang dan masukkan arahan ini npm init -y untuk memulakan fail package.json
Selepas itu pasang pakej ikut npm di dalam folder belakang ??
npm install express cors express-rate-limit npm install -D nodemon
Apa yang mereka lakukan:
Selepas itu, buat fail index.js (anda boleh ini apa sahaja yang anda mahu) kerana kami akan menggunakannya untuk menyediakan pengehad kadar.
Selepas anda selesai salin dan tampal kod ini yang akan saya terangkan sebentar lagi
const express = require("express"); const rateLimit = require("express-rate-limit"); const app = express(); // Set up rate limiter: 100 requests per 15 minutes const limiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 5, // Limit each IP to 5 requests per `window` (here, per 15 minutes) message: "Too many requests from this IP, please try again later.", }); // Apply the rate limiting middleware to all requests app.use(limiter); app.get("/api/data", (req, res) => { res.send("Welcome to the API!"); }); app.listen(5000, () => { console.log("Server running on http://localhost:5000"); });
Berikut ialah perkara yang dilakukan oleh setiap bahagian:
Kemudian:
Apabila pengguna menekan API anda lebih daripada 100 kali dalam masa 15 minit daripada IP yang sama, mereka akan mendapat mesej ralat dan bukannya mengakses API.
Sekarang anda tahu cara ia berfungsi, kami mahu mendayakan semula automatik dengan menambah pada package.json ??
{ "scripts": { "dev": "nodemon index.js" } }
Itu sahaja untuk bahagian belakang.
Sudah tiba masanya untuk menyediakan bahagian hadapan.
npm install express cors express-rate-limit npm install -D nodemon
const express = require("express"); const rateLimit = require("express-rate-limit"); const app = express(); // Set up rate limiter: 100 requests per 15 minutes const limiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 5, // Limit each IP to 5 requests per `window` (here, per 15 minutes) message: "Too many requests from this IP, please try again later.", }); // Apply the rate limiting middleware to all requests app.use(limiter); app.get("/api/data", (req, res) => { res.send("Welcome to the API!"); }); app.listen(5000, () => { console.log("Server running on http://localhost:5000"); });
Berikut ialah perkara yang berlaku:
Itu sahaja tentang contoh permintaan GET. Mari kita beralih kepada contoh seterusnya
Untuk contoh ini, anda boleh memutuskan untuk mengulas kod contoh pertama dan menampal kod ini ??
{ "scripts": { "dev": "nodemon index.js" } }
Anda boleh melihat bahawa kebanyakan kod adalah sama dengan contoh pertama tetapi ini hanyalah beberapa perbezaan utama ??
Juga tampal kod ini pada bahagian hadapan juga
npm create vite@latest .
Di sini, kami hanya membuat permintaan kepada pelayan melalui borang. Mari lihat bagaimana ini berbeza daripada contoh GET:
Borang membenarkan 5 penyerahan dalam masa 15 minit - selepas itu, pengguna melihat mesej ralat had kadar.
Baiklah kawan-kawan, tahniah kerana sampai ke penghujung artikel ini ?. Saya harap anda kini mempunyai idea tentang cara pengehadan kadar berfungsi dan mengapa anda perlu menggunakannya pada projek anda terutamanya jika anda sedang mengusahakan projek yang lebih besar yang melibatkan wang. Jika anda mempunyai sebarang pertanyaan, jangan ragu untuk bertanya dalam komen. Selamat mengekod ?
Atas ialah kandungan terperinci Asas Pengehadan Kadar: Cara Ia Berfungsi dan Cara Menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!