Front end dan back end
Diperkenalkan| English | Makna |
|---|---|
| request/rɪˈkwest/ | permintaan |
| front end/frʌnt end/ | antarmuka depan |
| back end/bæk end/ | antarmuka belakang |
| server/ˈsɜːvə/ | server |
| response/rɪˈspɒns/ | respons |
| API/ˌeɪ piː ˈaɪ/ | API |
| JSON/ˈdʒeɪsn/ | JSON |
Seorang peserta mengubah angka dalam URL
- Halaman kursus meminta
/students/42/courses. Pengunjung mengubah 42 menjadi 43. Menyembunyikan tautan tersebut di layar tidak mencegah permintaan. - Front end menampilkan antarmuka. Back end berjalan pada server dan memproses permintaan sebelum mengirimkan respons.
Setujui makna setiap permintaan
- API mendefinisikan bagaimana perangkat lunak berkomunikasi. Kontrak menyatakan metode, jalur, input, pemanggil yang diizinkan, bidang respons, dan perilaku kegagalan.
- Untuk daftar kursus hanya untuk siswa, server harus mengidentifikasi pemanggil dan memeriksa izin. Nomor yang disediakan oleh browser bukan bukti identitas.
Browser meminta 43 mahasiswa. Apa yang membuktikan bahwa pemanggil mungkin membaca daftar tersebut?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ID memilih sumber daya; ini bukan bukti identitas atau izin.
Baca respons sebagai data
- JSON dapat merepresentasikan objek, array, string, angka, boolean, dan null. JSON umum digunakan dalam API web, namun tidak semua respons menggunakannya.
- Daftar sukses mungkin berupa
[{"course_id":7,"title":"Robotics"}]. Daftar yang diizinkan kosong dapat berupa[]; kedua hasil tersebut tidak memerintahkan browser untuk mengeksekusi kode.
Format data umum manakah yang diwakili oleh [{"course_id":7,"title":"Robotics"}]?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Ini ialah JSON: satu senarai yang mengandungi objek.
Tempatkan setiap aturan di tempat yang dapat ditegakkan
- Validasi browser memberikan umpan balik cepat, tetapi server harus memeriksa input dan izin secara independen. Pemanggil dapat mengirim permintaan tanpa menggunakan formulir Anda.
- Simpan password database dan kredensial API pribadi di server. Pengguna mungkin memasukkan password login ke dalam browser; transmisi dengan aman dan jangan pernah menyematkan kredensial layanan pribadi dalam kode yang dapat diunduh.
Di mana kata laluan database peribadi yang digunakan oleh aplikasi sepatutnya disimpan?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Kod yang boleh dimuat turun boleh diperiksa. Simpan kredensial perkhidmatan peribadi pada pelayan.
Pelayan memerlukan semakan input bebas walaupun formulir mengesahkan input.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Pemanggil dapat mengelakkan formulir dan menghantar permintaan secara langsung.
Jelaskan mengapa validasi browser tidak dapat menggantikan pemeriksaan server.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Pemanggil dapat mengirim permintaan tanpa formulir, sehingga server memeriksanya secara independen.
Tampilkan pemuatan, keberhasilan, dan kegagalan secara jujur
- Selama permintaan sedang diproses, tampilkan status pemuatan. Setelah berhasil, tampilkan kursus yang dikembalikan atau pesan daftar kosong.
- Permintaan yang gagal memerlukan status kegagalan yang bermanfaat. Jangan beri label kegagalan jaringan “tidak ada kursus”: server belum mengkonfirmasi hasil kosong.
Cocokkan setiap hasil dengan tampilan jujur.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Hasil yang belum dikonfirmasi tidak boleh ditampilkan sebagai daftar sukses kosong.
Lacak seluruh interaksi
- Lacak: permintaan browser → pemeriksaan input dan izin server → pencarian data yang diizinkan → respons → tampilan browser. Hentikan pencarian ketika pemeriksaan yang diperlukan gagal.
- Uji pemanggil yang diizinkan, pemanggil yang ditolak, hasil kosong, dan permintaan yang gagal dengan fixture lokal. Jangan tampilkan data siswa lain untuk uji akses.
Browser membantu pengguna; server menegakkan aturan. Identitas, izin, input valid, dan pencarian sukses adalah pemeriksaan terpisah.
Perintahkan carian dibenarkan yang berjaya ini.
Difficulty 3/5 · 200 coins + a small bonus on first completion today
Pelayan强制执行 peraturan sebelum mengembalikan data peribadi.
Setiap respons API web harus menggunakan JSON.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
JSON umum, tetapi API dapat menggunakan format lain yang didokumentasikan.